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; }
public function onBlockBreak(BlockBreakEvent $event) { if ($event->isCancelled()) { return; } if ($this->chopTree($event->getPlayer(), $event->getBlock(), $event->getItem(), self::TYPE_BREAK)) { $event->setCancelled(true); } }
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]); } } }
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(); } } }
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; } } }
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])); } } }
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); } } }
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))); } } }
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; } }
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(); } }
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; } } }
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(); } } }
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(); }
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(); } }