getItem() public méthode

public getItem ( )
Exemple #1
0
 public function onBreak(BlockBreakEvent $event)
 {
     $player = $event->getPlayer();
     if ($player->isCreative()) {
         return;
     }
     $time = round(microtime(true) * 1000);
     if ($event->getBlock()->getBreakTime($event->getItem()) <= 0.2) {
         return;
     }
     if ($time - $this->tictock[$player->getName()] <= 200) {
         if (!isset($this->kick[$player->getName()])) {
             $this->kick[$player->getName()] = 1;
         } else {
             $this->kick[$player->getName()]++;
         }
         if ($this->kick > 2) {
             $player->kick("파괴자모드 감지");
             if (isset($this->kick[$player->getName()])) {
                 unset($this->kick[$player->getName()]);
             }
         }
         $event->setCancelled();
     } else {
         if (isset($this->kick[$player->getName()])) {
             unset($this->kick[$player->getName()]);
         }
     }
     $this->tictock[$player->getName()] = $time;
 }
 public function onBlockBreak(BlockBreakEvent $ev)
 {
     if ($ev->isCancelled()) {
         return;
     }
     $pl = $ev->getPlayer();
     if (!$this->getState($pl, false)) {
         return;
     }
     if (!$pl->isCreative() || !$this->creative) {
         if ($this->items && !isset($this->items[$ev->getItem()->getId()])) {
             echo "Not using an Axe\n";
             //##DEBUG
             return;
         }
     }
     if ($this->leaves) {
         $damage = $this->destroyTree($ev->getBlock());
     } else {
         $damage = $this->destroyTrunk($ev->getBlock());
     }
     if ($damage && $this->items && $this->itemwear) {
         $hand = $pl->getInventory()->getItemInHand();
         $hand->setDamage($hand->getDamage() + $this->itemwear * $damage);
         $pl->getInventory()->setItemInHand($hand);
         if ($this->broadcast) {
             $this->owner->getServer()->broadcastMessage(mc::_("%1% used TreeCapitator", $pl->getName()));
         } else {
             $pl->sendMessage(mc::_("Used TreeCapitator"));
         }
     }
 }
 public function blockBreak(BlockBreakEvent $event)
 {
     //1
     $id = $event->getItem()->getId();
     if ($id == $this->id) {
         $player = $event->getPlayer();
         $username = $player->getName();
         if (empty($this->data[$user][1])) {
             $x = $event->getBlock()->x;
             $y = $event->getBlock()->y;
             $z = $event->getBlock()->z;
             $this->data[$user][1] = array($x, $y, $z);
             $ms = "";
             if (isset($this->data[$user][2])) {
                 //片方がセットされていたら
                 $ms = "[FiredNubesco] Second position has been set to: {$x}, {$y}, {$z}";
                 $size = $this->countBlocks($player);
                 if ($num != false) {
                     $ms .= " (Size: " . $size[0] . "X" . $size[1] . ")";
                 }
             } else {
                 $ms = "[FiredNubesco] First position has been set to: {$x}, {$y}, {$z}";
             }
             $player->sendMessage($ms);
             $event->setCancelled(true);
         }
     }
     return true;
 }
Exemple #4
0
 public function onBlockBreak(BlockBreakEvent $event)
 {
     if ($event->isCancelled()) {
         return;
     }
     if ($this->chopTree($event->getPlayer(), $event->getBlock(), $event->getItem(), self::TYPE_BREAK)) {
         $event->setCancelled(true);
     }
 }
Exemple #5
0
 public function onBlockBreak(BlockBreakEvent $event)
 {
     $key = $event->getBlock()->x . "." . $event->getBlock()->y . "." . $event->getBlock()->z;
     foreach ($this->crops as $crop) {
         if ($event->getItem()->getId() == $crop["item"] and isset($this->farmData[$key])) {
             unset($this->farmData[$key]);
         }
     }
 }
Exemple #6
0
 public function onBlockBreak(BlockBreakEvent $event)
 {
     if ($event->isCancelled()) {
         return;
     } else {
         $event->setCancelled();
     }
     foreach ($event->getBlock()->getDrops($event->getItem()) as $i) {
         $event->getPlayer()->getInventory()->addItem(Item::get(...$i));
     }
 }
 public function onBreak(BlockBreakEvent $event)
 {
     $block = $event->getBlock();
     if ($block instanceof Crops and !$event->getItem()->isHoe()) {
         if ($block->getId() === Block::PUMPKIN_STEM or $block->getId() === Block::MELON_STEM) {
             $event->setCancelled();
         } else {
             $this->blocks[microtime(true) + mt_rand(1, 5) . "." . mt_rand(0, 5)] = $block;
             $this->runTask();
         }
     }
 }
Exemple #8
0
 public function onBreak(BlockBreakEvent $event)
 {
     if ($event->isCancelled()) {
         return;
     }
     $player = $event->getPlayer();
     $block = $event->getBlock();
     $drops = $block->getDrops($event->getItem());
     $x = $block->x + 0.5;
     $y = $block->y + 0.5;
     $z = $block->z + 0.5;
     $tile = $block->getLevel()->getTile($block);
     if ($tile instanceof Chest) {
         return;
     }
     if ($event->getItem() instanceof Item) {
         $event->getItem()->useOn($block);
         if ($event->getItem()->isTool() and $event->getItem()->getDamage() >= $event->getItem()->getMaxDurability()) {
             $event->getPlayer()->getInventory()->setItemInHand(Item::get(Item::AIR, 0, 0));
         }
     }
     if (!$player instanceof Player) {
         foreach ($drops as $drop) {
             if ($drop[2] > 0) {
                 $event->getBlock()->getLevel()->dropItem($event->getBlock()->add(0.5, 0.5, 0.5), Item::get(...$drop));
             }
         }
     } else {
         if ($player->isSurvival()) {
             $this->breakQueue["{$block->x}:{$block->y}:{$block->z}"]["drop"] = $drops;
             $this->breakQueue["{$block->x}:{$block->y}:{$block->z}"]["player"] = $player;
             $this->itemQueue["{$x}:{$y}:{$z}"] = $drops;
         }
     }
 }
Exemple #9
0
 public function onBlockBreak(BlockBreakEvent $event)
 {
     if ($event->isCancelled()) {
         return;
     }
     $b = $event->getBlock();
     foreach ($b->getDrops($event->getItem()) as $i) {
         $this->item[$i[0] . ":" . $i[1] . ":" . $i[2]] = true;
         for ($for = 0; $for < $this->getCount(); $for++) {
             $b->getLevel()->dropItem($b, Item::get($i[0], $i[1], $i[2]));
         }
     }
 }
Exemple #10
0
 public function onBlockBreak(BlockBreakEvent $event)
 {
     $block = $event->getBlock();
     $blockid = $block->getID();
     $itemid = $event->getItem()->getID();
     foreach ($this->growids as $index => $growid) {
         if ($itemid == $growid) {
             if (isset($this->farmdata[$block->x . "." . $block->y . "." . $block->z])) {
                 unset($this->farmdata[$block->x . "." . $block->y . "." . $block->z]);
             }
         }
     }
 }
 public function onBreak(BlockBreakEvent $event)
 {
     //ItemDamageBug
     $player = $event->getPlayer();
     $item = $event->getItem();
     if ($item->isTool() and !$event->isCancelled() and self::ENABLE_ITEM_DAMAGE_BUG) {
         if ($item->useOn($event->getBlock()) and $item->getDamage() >= $item->getMaxDurability()) {
             $player->getInventory()->setItemInHand(Item::get(Item::AIR, 0, 1));
         } else {
             $player->getInventory()->setItemInHand($item);
         }
     }
 }
Exemple #12
0
 public function onBreak(BlockBreakEvent $ev)
 {
     $p = $ev->getPlayer();
     $block = $ev->getBlock();
     $item = $ev->getItem()->getId();
     $ev->setInstaBreak(true);
     foreach ($this->ores as $ore) {
         if ($block->getId() === $ore && !$ev->isCancelled()) {
             $ev->setDrops(array());
             $p->sendMessage("§l§dAUTO-SMELTED!");
             $p->getInventory()->addItem(Item::get($this->ingot[$ore]));
             $x = $p->getX();
             $y = $p->getY();
             $z = $p->getZ();
             $p->getLevel()->addSound(new FizzSound(new Vector3($x, $y, $z)));
         }
     }
 }
Exemple #13
0
 public function onBreak(BlockBreakEvent $event)
 {
     if (!$event->getPlayer()->hasPermission("TreeChopper")) {
         return;
     }
     if ($event->getBlock()->getId() == Block::LOG) {
         $block = $event->getBlock();
         $down = $block->getLevel()->getBlockIdAt($block->x, $block->y - 1, $block->z);
         if ($down != Block::GRASS and $down != Block::DIRT) {
             return;
         }
         $x = $block->x + 0.5;
         $y = $block->y + 0.5;
         $z = $block->z + 0.5;
         $drops = $block->getDrops($event->getItem());
         $this->breakQueue["{$block->x}:{$block->y}:{$block->z}"]["drop"] = $drops;
         $this->breakQueue["{$block->x}:{$block->y}:{$block->z}"]["player"] = $event->getPlayer();
         $this->itemQueue["{$x}:{$y}:{$z}"] = $drops;
     }
 }
Exemple #14
0
 public function onBreak(BlockBreakEvent $ev)
 {
     //echo __METHOD__.",".__LINE__."\n";//##DEBUG
     if ($ev->isCancelled()) {
         return;
     }
     $pl = $ev->getPlayer();
     if (!$this->getState($pl, false)) {
         return;
     }
     if ($ev->getBlock()->getId() == Block::AIR) {
         return;
     }
     if (!$pl->isCreative() || !$this->creative) {
         if ($this->items && !isset($this->items[$ev->getItem()->getId()])) {
             //echo "Not using an PickAxe\n"; //##DEBUG
             return;
         }
     }
     $ev->setInstaBreak(true);
 }
 public function snowShot(BlockBreakEvent $e)
 {
     $v3 = new Vector3($x, $y, $z);
     $player = $e->getPlayer();
     if ($e->getItem() == 256 && $this->isInArena($player)) {
         $this->spawnEnity = true;
     }
 }
 public function BlockBreakEvent(BlockBreakEvent $ev)
 {
     $item = $ev->getItem();
     $block = $ev->getBlock();
     $player = $ev->getPlayer();
     if ($player->hasPermission("worldedit.command.setpos1") && $item->getID() === $this->getData("tool-id", Item::IRON_HOE)) {
         $player->sendMessage("[WorldEditor]Pos1 지점을 선택했어요 ({$block->x}, {$block->y}, {$block->z})");
         self::$pos[$player->getName()][0] = $block->floor();
         $ev->setCancelled();
         return;
     }
 }
 /**
  * @param BlockPlaceEvent $event
  */
 public function onBlockBreak(BlockBreakEvent $event)
 {
     $player = $event->getPlayer();
     $item = $event->getItem();
     $target = new Position($event->getBlock()->x, $event->getBlock()->y, $event->getBlock()->z, $event->getBlock()->getLevel());
     $data = $this->getData($player);
     if ($data->get('wand-usage') && $item->getID() == Item::fromString($this->getConfig()->get("wand-item"))->getID()) {
         $this->setPosition1($player, $target);
         $player->sendMessage($this->output);
         $this->output = "";
         $event->setCancelled();
     }
 }
Exemple #18
0
 public function onBreak(BlockBreakEvent $event)
 {
     $area = $this->getArea($event->getBlock()->x, $event->getBlock()->y, $event->getBlock()->z);
     if ($area != false) {
         $time = round(microtime(true) * 1000);
         if ($time - $this->tictock[$event->getPlayer()->getName()] <= 450) {
             $event->setCancelled();
             return;
         }
         $this->tictock[$event->getPlayer()->getName()] = $time;
         $block = $event->getBlock();
         $x = $block->x + 0.5;
         $y = $block->y + 0.5;
         $z = $block->z + 0.5;
         if ($area["is-mine"] == true) {
             $drops = $event->getBlock()->getDrops($event->getItem());
             foreach ($drops as $drop) {
                 if ($drop[2] > 0) {
                     $event->getPlayer()->getInventory()->addItem(Item::get(...$drop));
                 }
             }
             $this->breakQueue["{$block->x}:{$block->y}:{$block->z}"] = Block::get($this->randomMine());
             $this->itemQueue["{$x}:{$y}:{$z}"] = $drops;
         } else {
             $drops = $event->getBlock()->getDrops($event->getItem());
             foreach ($drops as $drop) {
                 if ($drop[2] > 0) {
                     $event->getPlayer()->getInventory()->addItem(Item::get(...$drop));
                 }
             }
             $this->breakQueue["{$block->x}:{$block->y}:{$block->z}"] = $block;
             $this->itemQueue["{$x}:{$y}:{$z}"] = $drops;
         }
     }
 }
Exemple #19
0
 public function onBreak(BlockBreakEvent $ev)
 {
     echo __METHOD__ . "," . __LINE__ . "\n";
     //##DEBUG
     if ($ev->isCancelled()) {
         return;
     }
     $pl = $ev->getPlayer();
     echo __METHOD__ . "," . __LINE__ . "\n";
     //##DEBUG
     if (($m = $this->getState($pl, false)) === false) {
         return;
     }
     echo __METHOD__ . "," . __LINE__ . ":: m={$m}\n";
     //##DEBUG
     if ($m === "insta-break") {
         $ev->setInstaBreak(true);
         return;
     }
     echo __METHOD__ . "," . __LINE__ . "\n";
     //##DEBUG
     if ($ev->getBlock()->getId() == Block::AIR) {
         return;
     }
     if (!$pl->isCreative() || !$this->creative) {
         if ($this->items && !isset($this->items[$ev->getItem()->getId()])) {
             //echo "Not using an PickAxe\n"; //##DEBUG
             return;
         }
     }
     if (substr($ev->getBlock()->getName(), -4) !== " Ore") {
         return;
     }
     // This is an ore...
     $ev->setInstaBreak(true);
     $pl->sendMessage(mc::_("Using VeinMinger"));
     $this->setState($pl, "insta-break");
     //prevents infinite loops...
     $c = $this->veinsearch($ev->getBlock(), $this->blocklimit, $pl, $this->sides);
     $this->setState($pl, true);
     if ($c && $this->broadcast) {
         $this->owner->getServer()->broadcastMessage(mc::n(mc::_("%1% used VeinMiner (one block affected)", $pl->getDisplayName()), mc::_("%1% used VeinMiner (%2% blocks affected)", $pl->getDisplayName(), $c), $c));
     }
 }
 public function onBlockBreak(\pocketmine\event\block\BlockBreakEvent $event)
 {
     if (count($this->drops) > 0 && (!$event->isCancelled() || !$this->mb["Set"]["IsSafe"]) && $this->mb["Set"]["Mine"] == "On") {
         $block = $event->getBlock();
         $oreBlock = Item::fromString($this->mb["Set"]["Block"]);
         if ($oreBlock->getID() == $block->getID() && $oreBlock->getDamage() == $block->getDamage()) {
             $block->onBreak($item = $event->getItem());
             $count = explode("~", $this->mb["Set"]["Count"]);
             $player = $event->getPlayer();
             if (!$player->isCreative() && $item->isPickaxe()) {
                 $player->getInventory()->setItemInHand($item->getDamage() + 2 < $item->getMaxDurability() ? Item::get($item->getID(), $item->getDamage() + 2, 1) : Item::get(0, 0, 0));
             }
             for ($for = 0; $for < rand($count[0], isset($cnt[1]) ? $count[1] : $count[0]); $for++) {
                 shuffle($this->drops);
                 $d = $this->drops[0];
                 $dc = explode("~", $d[self::COUNT]);
                 if ($this->mb["Set"]["IsDrop"]) {
                     $block->getLevel()->dropItem($block->add(0.5, 0.25, 0.5), $this->getItem($d[self::ID], rand($dc[0], isset($dc[1]) ? $dc[1] : $dc[0])));
                 } else {
                     $player->getInventory()->addItem($this->getItem($d[self::ID], rand($dc[0], isset($dc[1]) ? $dc[1] : $dc[0])));
                 }
             }
             if ($this->mb["Set"]["Regen"] == "On") {
                 $t = explode("~", $this->mb["Set"]["Time"]);
                 $this->getServer()->getScheduler()->scheduleDelayedTask(new Task($this, [$block->getLevel(), "setBlock"], [$block, $block, false]), rand($t[0], isset($t[1]) ? $t[1] : $t[0]) * 20);
             }
             $event->setCancelled();
         }
     }
 }
Exemple #21
0
 public function onBlockBreak(BlockBreakEvent $event)
 {
     if ($event->isCancelled()) {
         return;
     }
     $b = $event->getBlock();
     if ($this->set->get("Mine") == "Off") {
         return;
     }
     $bb = Item::fromString($this->set->get("Block"));
     if ($bb->getID() !== $b->getID() || $bb->getDamage() !== $b->getDamage()) {
         return;
     }
     foreach ($b->getDrops($event->getItem()) as $i) {
         $this->item[$i[0] . ":" . $i[1] . ":" . $i[2]] = true;
     }
     if ($this->set->get("Regen") == "On") {
         $this->getServer()->getScheduler()->scheduleDelayedTask(new CallbackTask([$this, "mineRegen"], [clone $b]), $this->getTime());
     }
     for ($for = 0; $for < $this->getCount(); $for++) {
         $b->getLevel()->dropItem($b, $this->getDrop());
     }
     $event->setCancelled();
 }
Exemple #22
0
 public function onBlockBreak(BlockBreakEvent $event)
 {
     if ($event->isCancelled()) {
         return;
     }
     $b = $event->getBlock();
     $key = $this->getKey($b);
     if (!isset($this->mb[$key])) {
         return;
     }
     if (!$event->getPlayer()->hasPermission("debe.mineblock.break")) {
         return $event->setCancelled();
     }
     $mb = $this->mb[$key];
     $rand = $this->rand[$key];
     foreach ($b->getDrops($event->getItem()) as $i) {
         $this->item[$i[0] . ":" . $i[1] . ":" . $i[2]] = true;
     }
     if ($mb[0] == true) {
         $this->getServer()->getScheduler()->scheduleDelayedTask(new CallbackTask([$this, "mineRegen"], [clone $b]), $this->randStr($mb[1]));
     }
     for ($for = 0; $for < $this->randStr($mb[2]); $for++) {
         $b->getLevel()->dropItem($b, $this->getDrop($mb, $rand));
     }
     $event->setCancelled();
 }
 /**
  * @param BlockPlaceEvent $event
  */
 public function onBlockBreak(BlockBreakEvent $event)
 {
     $player = $event->getPlayer();
     $item = $event->getItem();
     $target = new Position($event->getBlock()->x, $event->getBlock()->y, $event->getBlock()->z, $event->getBlock()->getLevel());
     $data = $this->getData($player);
     if ($data['wand-usage'] && $item->getID() == Item::fromString($this->cfg["wand-item"])->getID()) {
         $m = $this->setPosition1($player, $target);
         if ($m) {
             $player->sendMessage($m);
         }
         $event->setCancelled();
     }
 }