Inheritance: extends BlockEvent, implements pocketmine\event\Cancellable
Example #1
11
 public function onPlace(BlockPlaceEvent $event)
 {
     if ($event->getBlock()->getId() != Block::CHEST) {
         return;
     }
     $block = $event->getBlock();
     if ($this->sideCheck($block->x + 1, $block->y, $block->z, $block->getLevel(), $event->getPlayer()->getName()) == Block::CHEST or $this->sideCheck($block->x - 1, $block->y, $block->z, $block->getLevel(), $event->getPlayer()->getName()) == Block::CHEST or $this->sideCheck($block->x, $block->y, $block->z + 1, $block->getLevel(), $event->getPlayer()->getName()) == Block::CHEST or $this->sideCheck($block->x, $block->y, $block->z - 1, $block->getLevel(), $event->getPlayer()->getName()) == Block::CHEST) {
         $event->getPlayer()->sendMessage(TextFormat::RED . "바로 옆에 다른사람의 상자가 있습니다, 설치 불가능 !");
         return;
     }
     $this->configData["{$block->x}:{$block->y}:{$block->z}"] = $event->getPlayer()->getName();
 }
 /**
  * @param BlockPlaceEvent $event
  * @priority LOWEST
  */
 public function l_onBlockPlace(BlockPlaceEvent $event)
 {
     $player = $event->getPlayer();
     $this->sessions[$offset = Session::offset($player)]->l_onBlockPlace($event);
     $this->sessions[$offset]->activity();
 }
Example #3
1
 public function onBlockPlace(BlockPlaceEvent $event)
 {
     $player = $event->getPlayer();
     $level = $player->getLevel();
     $spawn = $level->getSpawnLocation();
     $distance = $spawn->distance($player);
     if ($distance <= $this->cfg->get($level->getName())) {
         if (!$player->hasPermission("customradius.edit")) {
             $event->setCancelled(true);
         }
     }
 }
 /** 
  * @param BlockPlaceEvent $event 
  * @priority HIGHEST
  * @ignoreCancelled true
  */
 public function onBlockPlace(BlockPlaceEvent $event)
 {
     if (!$this->plugin->getStorage()->getShield($event->getPlayer()->getLevel())->isAllowed(Shield::PLACING)) {
         $event->setCancelled(true);
         $event->getPlayer()->sendTip($this->plugin->getConfig()->get("placeNotAllowed"));
     }
 }
Example #5
0
 public function onBlockPlace(BlockPlaceEvent $event)
 {
     $block = $event->getBlock()->getName();
     if ($block == "Chest") {
         $this->arenaManager->onChestPlaced($event);
     }
 }
 public function onPlayerPlaceBlock(BlockPlaceEvent $event)
 {
     if (!$event->getPlayer()->isOp()) {
         $event->setCancelled(true);
         $this->debug->onDebug('BlockPlaceEvent');
     }
 }
Example #7
0
 public function onBlockPlace(BlockPlaceEvent $event)
 {
     if ($this->plugin->isJailed($event->getPlayer())) {
         $event->getPlayer()->sendMessage("§eYou are not allowed to destroy the jail!\nAdded " . $this->getPlugin()->getConfig()->get("punish-additional-minutes") . " minutes as punishment.");
         $this->getPlugin()->punish($event->getPlayer(), $this->getPlugin()->getConfig()->get("punish-additional-minutes"));
         $event->setCancelled(true);
     }
 }
Example #8
0
 public function onBlockPlace(BlockPlaceEvent $event)
 {
     $player = $event->getPlayer();
     if (!$player->hasPermission("xperms.build")) {
         $player->sendMessage(TextFormat::RED . $this->plugin->getConfiguration()->getMSGonIBuildPerm());
         $event->setCancelled(true);
     }
 }
Example #9
0
 public function PlaceQueeue(BlockPlaceEvent $event)
 {
     $block = $event->getBlock();
     if ($block->getID() === Item::BED_BLOCK) {
         $player = $event->getPlayer();
         $this->placeQueeue[$player->getName()] = 1;
     }
 }
 public function onPlace(BlockPlaceEvent $event)
 {
     if ($event->getPlayer()->hasPermission("worldprotector.block.place")) {
         $event->setCancelled(false);
     } else {
         $event->setCancelled(true);
     }
 }
 public function onPlace(BlockPlaceEvent $event)
 {
     $username = $event->getPlayer()->getName();
     if (isset($this->PlacePrevent[$username])) {
         $event->setCancelled(true);
         unset($this->PlacePrevent[$username]);
     }
 }
Example #12
0
 public function onBlockPlace(BlockPlaceEvent $event)
 {
     $player = $event->getPlayer();
     $block = $event->getBlock();
     if ($player->hasPermission('log.placed.block')) {
         $this->plugin->addPlacedBlock($block, $player);
         // ADD TIME
     }
 }
Example #13
0
 public function onPlace(BlockPlaceEvent $event)
 {
     foreach ($this->tntRun->arenas as $arena) {
         if ($arena->getPlayerManager()->isInArena($event->getPlayer())) {
             $event->setCancelled();
             return;
         }
     }
 }
Example #14
0
 public function onPlace(BlockPlaceEvent $event)
 {
     if (!isset($this->wands[$event->getPlayer()->getName()])) {
         $eventname = "Place";
         $this->regi($event, $eventname);
     } else {
         $this->chk($event);
         $event->setCancelled(true);
     }
 }
Example #15
0
 public function onBanblock(BlockPlaceEvent $event)
 {
     $blocklist = array("46", "327", "10", "11");
     foreach ($blocklist as $Bancode) {
         if ($event->getBlock()->getId() == $Bancode) {
             $event->setCancelled(true);
             $player = $event->getPlayer();
             $player->sendMessage(TextFormat::RED . $player->getName() . "님이 금지된 아이템을 사용하였습니다");
         }
     }
 }
Example #16
0
 /**
  * @priority HIGHEST
  */
 public function onBlockPlace(BlockPlaceEvent $event)
 {
     if (!$event->isCancelled()) {
         $block = $event->getBlock();
         if (isset($this->levelTickBlocks[$levelName = $block->getLevel()->getFolderName()]) && isset($this->randomTickBlocks[$levelName])) {
             if (in_array($block->getID(), $this->randomTickBlocks[$levelName]) && $block->getID() !== Block::GLASS && !isset($this->levelTickBlocks[$levelName][$posKey = $block->x . ":" . $block->y . ":" . $block->z])) {
                 $this->levelTickBlocks[$levelName][$posKey] = new Position($block->x, $block->y, $block->z, $block->level);
             }
         }
     }
 }
Example #17
0
 public function onPlace(BlockPlaceEvent $bpe)
 {
     $pl = $bpe->getPlayer();
     $name = $pl->getName();
     $bl = $bpe->getBlock();
     $blname = $bl->getName();
     $lvl = $pl->getLevel()->getName();
     $x = $pl->getX();
     $y = $pl->getY();
     $z = $pl->getZ();
     $this->getLogger()->info(C::YELLOW . "{$name}" . C::DARK_AQUA . " Placed/tried to Place (a)" . C::YELLOW . " {$blname}" . C::DARK_AQUA . " in World:" . C::YELLOW . " {$lvl}" . C::DARK_AQUA . " at Position:" . C::YELLOW . " {$x}, {$y}, {$z}");
 }
Example #18
0
 public function place(BlockPlaceEvent $place)
 {
     $block = $place->getBlock();
     $player = $place->getPlayer();
     if ($block->getId() === 46) {
         $place->setCancelled();
         $mot = (new Random())->nextSignedFloat() * M_PI * 2;
         $tnt = Entity::createEntity("PrimedTNT", $block->getLevel()->getChunk($block->x >> 4, $block->z >> 4), new Compound("", ["Pos" => new EnumTag("Pos", [new DoubleTag("", $block->x + 0.5), new DoubleTag("", $block->y), new DoubleTag("", $block->z + 0.5)]), "Motion" => new EnumTag("Motion", [new DoubleTag("", -sin($mot) * 0.02), new DoubleTag("", 0.2), new DoubleTag("", -cos($mot) * 0.02)]), "Rotation" => new EnumTag("Rotation", [new FloatTag("", 0), new FloatTag("", 0)]), "Fuse" => new ByteTag("Fuse", 100)]));
         $tnt->spawnToAll();
         $player->getLevel()->addSound(new AnviluseSound($player), array($player));
         return true;
     }
 }
Example #19
0
 public function playerBlockPlace(BlockPlaceEvent $event)
 {
     $id = $event->getBlock()->getID();
     $player = $event->getPlayer();
     if ($id == in_array($id, $this->config->get("banned-items"))) {
         if ($player->isOp()) {
             if (!$this->config->get("ops-can-use-items") == true) {
                 $player->sendMessage($this->config->get("msg-item-use"));
                 $event->setCancelled();
             }
         } else {
             $player->sendMessage($this->config->get("msg-item-use"));
             $event->setCancelled();
         }
     }
 }
Example #20
0
 /**
  * @param BlockPlaceEvent $event
  *
  * @priority        HIGH
  * @ignoreCancelled true
  */
 public function onBlockPlace(BlockPlaceEvent $event)
 {
     $player = $event->getPlayer();
     if ($player->isOp()) {
         return;
     }
     foreach ($this->plugin->getAllZones() as $zone) {
         if ($zone->isIn($event->getBlock())) {
             if ($player->hasPermission($zone->getName() . MEMBER)) {
                 break;
             }
             $event->setCancelled(true);
             $player->sendMessage("[iZone] This is a private area.");
             break;
         }
     }
 }
 public function blockPlace(BlockPlaceEvent $event)
 {
     //2
     $id = $event->getItem()->getId();
     if ($id == $this->id) {
         $player = $event->getPlayer();
         $username = $player->getName();
         if (empty($this->data[$user][2])) {
             $x = $event->getBlock()->x;
             $y = $event->getBlock()->y;
             $z = $event->getBlock()->z;
             $this->data[$user][2] = 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;
 }
Example #22
0
 public function onPlace(BlockPlaceEvent $event)
 {
     if (!$event->getPlayer()->hasPermission("customareas.bypass")) {
         foreach ($this->plugin->areas as $area) {
             if ($area->isInside($event->getBlock()) and !$area->canBuild($event->getPlayer())) {
                 $event->setCancelled();
                 $event->getPlayer()->sendMessage("This is " . $area->owner . "'s private area");
             }
         }
     }
 }
 public function onBlockPlace(BlockPlaceEvent $event)
 {
     if ($this->plugin->cfg->get("debugmode") == "true") {
         $this->plugin->getServer()->getLogger()->info(MT::GREEN . "CommandTest BPosition Place");
     }
     $id = $event->getPlayer()->getID();
     if (in_array($id, $this->schalter)) {
         $bl = $event->getBlock();
         $n = strtolower($event->getPlayer()->getName());
         $this->pos[$n] = new Vector3($bl->getX(), $bl->getY(), $bl->getZ());
         $event->getPlayer()->sendMessage(MT::GOLD . "Position(" . $this->pos[$n]->getX() . "," . $this->pos[$n]->getY() . "," . $this->pos[$n]->getZ() . ")");
         $event->setCancelled(true);
     }
 }
Example #24
0
 public function onBlockPlace(BlockPlaceEvent $event)
 {
     $b = $event->getBlock();
     $p = $event->getPlayer();
     $n = strtolower($p->getName());
     if (isset($this->sel1[$n])) {
         unset($this->sel1[$n]);
         $this->pos1[$n] = new Vector3($b->getX(), $b->getY(), $b->getZ());
         $p->sendMessage("Position 1 set to: (" . $this->pos1[$n]->getX() . ", " . $this->pos1[$n]->getY() . ", " . $this->pos1[$n]->getZ() . ")");
         $event->setCancelled();
     } else {
         if (isset($this->sel2[$n])) {
             unset($this->sel2[$n]);
             $this->pos2[$n] = new Vector3($b->getX(), $b->getY(), $b->getZ());
             $p->sendMessage("Position 2 set to: (" . $this->pos2[$n]->getX() . ", " . $this->pos2[$n]->getY() . ", " . $this->pos2[$n]->getZ() . ")");
             $event->setCancelled();
         } else {
             if (!$this->canEdit($p, $b)) {
                 $event->setCancelled();
             }
         }
     }
 }
Example #25
0
 /**
  * Uses a item on a position and face, placing it or activating the block
  *
  * @param Vector3 $vector
  * @param Item    $item
  * @param int     $face
  * @param float   $fx     default 0.0
  * @param float   $fy     default 0.0
  * @param float   $fz     default 0.0
  * @param Player  $player default null
  *
  * @return boolean
  */
 public function useItemOn(Vector3 $vector, Item &$item, $face, $fx = 0.0, $fy = 0.0, $fz = 0.0, Player $player = null)
 {
     $target = $this->getBlock($vector);
     $block = $target->getSide($face);
     if ($block->y > 127 or $block->y < 0) {
         return false;
     }
     if ($target->getId() === Item::AIR) {
         return false;
     }
     if ($player instanceof Player) {
         $ev = new PlayerInteractEvent($player, $item, $target, $face);
         if (!$player->isOp() and ($distance = $this->server->getConfigInt("spawn-protection", 16)) > -1) {
             $t = new Vector2($target->x, $target->z);
             $s = new Vector2($this->getSpawnLocation()->x, $this->getSpawnLocation()->z);
             if ($t->distance($s) <= $distance) {
                 //set it to cancelled so plugins can bypass this
                 $ev->setCancelled();
             }
         }
         $this->server->getPluginManager()->callEvent($ev);
         if (!$ev->isCancelled()) {
             $target->onUpdate(self::BLOCK_UPDATE_TOUCH);
             if ($target->canBeActivated() === true and $target->onActivate($item, $player) === true) {
                 return true;
             }
             if ($item->canBeActivated() and $item->onActivate($this, $player, $block, $target, $face, $fx, $fy, $fz)) {
                 if ($item->getCount() <= 0) {
                     $item = Item::get(Item::AIR, 0, 0);
                     return true;
                 }
             }
         }
     } elseif ($target->canBeActivated() === true and $target->onActivate($item, $player) === true) {
         return true;
     }
     if ($item->isPlaceable()) {
         $hand = $item->getBlock();
         $hand->position($block);
     } elseif ($block->getId() === Item::FIRE) {
         $this->setBlock($block, new Air(), true);
         return false;
     } else {
         return false;
     }
     if (!($block->canBeReplaced() === true or $hand->getId() === Item::SLAB and $block->getId() === Item::SLAB)) {
         return false;
     }
     if ($target->canBeReplaced() === true) {
         $block = $target;
         $hand->position($block);
         //$face = -1;
     }
     if ($hand->isSolid() === true and $hand->getBoundingBox() !== null) {
         $entities = $this->getCollidingEntities($hand->getBoundingBox());
         $realCount = 0;
         foreach ($entities as $e) {
             if ($e instanceof Arrow or $e instanceof DroppedItem) {
                 continue;
             }
             ++$realCount;
         }
         if ($realCount > 0) {
             return false;
             //Entity in block
         }
     }
     if ($player instanceof Player) {
         $ev = new BlockPlaceEvent($player, $hand, $block, $target, $item);
         if (!$player->isOp() and ($distance = $this->server->getConfigInt("spawn-protection", 16)) > -1) {
             $t = new Vector2($target->x, $target->z);
             $s = new Vector2($this->getSpawnLocation()->x, $this->getSpawnLocation()->z);
             if ($t->distance($s) <= $distance) {
                 //set it to cancelled so plugins can bypass this
                 $ev->setCancelled();
             }
         }
         $this->server->getPluginManager()->callEvent($ev);
         if ($ev->isCancelled()) {
             return false;
         }
     }
     if ($hand->place($item, $block, $target, $face, $fx, $fy, $fz, $player) === false) {
         return false;
     }
     if ($hand->getId() === Item::SIGN_POST or $hand->getId() === Item::WALL_SIGN) {
         $tile = Tile::createTile("Sign", $this->getChunk($block->x >> 4, $block->z >> 4), new Compound(false, ["id" => new String("id", Tile::SIGN), "x" => new Int("x", $block->x), "y" => new Int("y", $block->y), "z" => new Int("z", $block->z), "Text1" => new String("Text1", ""), "Text2" => new String("Text2", ""), "Text3" => new String("Text3", ""), "Text4" => new String("Text4", "")]));
         if ($player instanceof Player) {
             $tile->namedtag->Creator = new String("Creator", $player->getName());
         }
     }
     $item->setCount($item->getCount() - 1);
     if ($item->getCount() <= 0) {
         $item = Item::get(Item::AIR, 0, 0);
     }
     return true;
 }
 public function onBlockPlace(BlockPlaceEvent $ev)
 {
     if ($ev->isCancelled()) {
         return;
     }
     $pl = $ev->getPlayer();
     if ($this->checkBlockPlaceBreak($pl)) {
         return;
     }
     $this->owner->msg($pl, mc::_("You are not allowed to do that here"));
     $ev->setCancelled();
 }
Example #27
0
 public function onBlockPlace(BlockPlaceEvent $event)
 {
     $username = $event->getPlayer()->getName();
     if (isset($this->placeQueue[$username])) {
         $event->setCancelled(true);
         // No message to send cuz it is already sent by InteractEvent
         unset($this->placeQueue[$username]);
     }
 }
Example #28
0
 /**
  * Uses a item on a position and face, placing it or activating the block
  *
  * @param Vector3 $vector
  * @param Item    $item
  * @param int     $face
  * @param float   $fx     default 0.0
  * @param float   $fy     default 0.0
  * @param float   $fz     default 0.0
  * @param Player  $player default null
  *
  * @return boolean
  */
 public function useItemOn(Vector3 $vector, Item &$item, $face, $fx = 0.0, $fy = 0.0, $fz = 0.0, Player $player = null)
 {
     $target = $this->getBlock($vector);
     $block = $target->getSide($face);
     if ($block->y > 127 or $block->y < 0) {
         return false;
     }
     if ($target->getId() === Item::AIR) {
         return false;
     }
     if ($player !== null) {
         $ev = new PlayerInteractEvent($player, $item, $target, $face, $target->getId() === 0 ? PlayerInteractEvent::RIGHT_CLICK_AIR : PlayerInteractEvent::RIGHT_CLICK_BLOCK);
         if (!$player->isOp() and ($distance = $this->server->getSpawnRadius()) > -1) {
             $t = new Vector2($target->x, $target->z);
             $s = new Vector2($this->getSpawnLocation()->x, $this->getSpawnLocation()->z);
             if (count($this->server->getOps()->getAll()) > 0 and $t->distance($s) <= $distance) {
                 //set it to cancelled so plugins can bypass this
                 $ev->setCancelled();
             }
         }
         $this->server->getPluginManager()->callEvent($ev);
         if (!$ev->isCancelled()) {
             $target->onUpdate(self::BLOCK_UPDATE_TOUCH);
             if (!$player->isSneaking() and $target->canBeActivated() === true and $target->onActivate($item, $player) === true) {
                 return true;
             }
             if (!$player->isSneaking() and $item->canBeActivated() and $item->onActivate($this, $player, $block, $target, $face, $fx, $fy, $fz)) {
                 if ($item->getCount() <= 0) {
                     $item = Item::get(Item::AIR, 0, 0);
                     return true;
                 }
             }
         } else {
             return false;
         }
     } elseif ($target->canBeActivated() === true and $target->onActivate($item, $player) === true) {
         return true;
     }
     if ($item->canBePlaced()) {
         $hand = $item->getBlock();
         $hand->position($block);
     } elseif ($block->getId() === Item::FIRE) {
         $this->setBlock($block, new Air(), true);
         return false;
     } else {
         return false;
     }
     if (!($block->canBeReplaced() === true or $hand->getId() === Item::SLAB and $block->getId() === Item::SLAB)) {
         return false;
     }
     if ($target->canBeReplaced() === true) {
         $block = $target;
         $hand->position($block);
         //$face = -1;
     }
     if ($hand->isSolid() === true and $hand->getBoundingBox() !== null) {
         $entities = $this->getCollidingEntities($hand->getBoundingBox());
         $realCount = 0;
         foreach ($entities as $e) {
             if ($e instanceof Arrow or $e instanceof DroppedItem) {
                 continue;
             }
             ++$realCount;
         }
         if ($player !== null) {
             if ($diff = $player->getNextPosition()->subtract($player->getPosition()) and $diff->lengthSquared() > 1.0E-5) {
                 $bb = $player->getBoundingBox()->getOffsetBoundingBox($diff->x, $diff->y, $diff->z);
                 if ($hand->getBoundingBox()->intersectsWith($bb)) {
                     ++$realCount;
                 }
             }
         }
         if ($realCount > 0) {
             return false;
             //Entity in block
         }
     }
     $tag = $item->getNamedTagEntry("CanPlaceOn");
     if ($tag instanceof Enum) {
         $canPlace = false;
         foreach ($tag as $v) {
             if ($v instanceof String) {
                 $entry = Item::fromString($v->getValue());
                 if ($entry->getId() > 0 and $entry->getBlock() !== null and $entry->getBlock()->getId() === $target->getId()) {
                     $canPlace = true;
                     break;
                 }
             }
         }
         if (!$canPlace) {
             return false;
         }
     }
     if ($player !== null) {
         $ev = new BlockPlaceEvent($player, $hand, $block, $target, $item);
         if (!$player->isOp() and ($distance = $this->server->getSpawnRadius()) > -1) {
             $t = new Vector2($target->x, $target->z);
             $s = new Vector2($this->getSpawnLocation()->x, $this->getSpawnLocation()->z);
             if (count($this->server->getOps()->getAll()) > 0 and $t->distance($s) <= $distance) {
                 //set it to cancelled so plugins can bypass this
                 $ev->setCancelled();
             }
         }
         $this->server->getPluginManager()->callEvent($ev);
         if ($ev->isCancelled()) {
             return false;
         }
     }
     if ($hand->place($item, $block, $target, $face, $fx, $fy, $fz, $player) === false) {
         return false;
     }
     if ($hand->getId() === Item::SIGN_POST or $hand->getId() === Item::WALL_SIGN) {
         $nbt = new Compound("", ["id" => new String("id", Tile::SIGN), "x" => new Int("x", $block->x), "y" => new Int("y", $block->y), "z" => new Int("z", $block->z), "Text1" => new String("Text1", ""), "Text2" => new String("Text2", ""), "Text3" => new String("Text3", ""), "Text4" => new String("Text4", "")]);
         if ($player !== null) {
             $nbt->Creator = new String("Creator", $player->getRawUniqueId());
         }
         if ($item->hasCustomBlockData()) {
             foreach ($item->getCustomBlockData() as $key => $v) {
                 $nbt->{$key} = $v;
             }
         }
         Tile::createTile("Sign", $this->getChunk($block->x >> 4, $block->z >> 4), $nbt);
     }
     $item->setCount($item->getCount() - 1);
     if ($item->getCount() <= 0) {
         $item = Item::get(Item::AIR, 0, 0);
     }
     return true;
 }
Example #29
-1
 public function onBlockPlaceEvent(BlockPlaceEvent $ev)
 {
     $bl = $ev->getBlock();
     if ($bl->getId() == 39) {
         $event->setCancelled(true);
     }
     if ($bl->getId() == 32) {
         $event->setCancelled(true);
     }
     if ($ev->isCancelled()) {
         return;
     }
     if ($bl->getId() != Block::CHEST || $bl->getSide(Vector3::SIDE_DOWN)->getId() != Block::GLASS) {
         return;
     }
     $ev->getPlayer()->sendMessage("Placed Armour Crate...");
 }
 public function onPlayerPlaceBlock(BlockPlaceEvent $event)
 {
     $blockID = $event->getBlock()->getID();
     $bl = $event->getBlock();
     $pos = $event->getBlock(new Vector3($bl->x, $bl->y, $bl->z));
     if ($blockID == 54) {
         $block1 = $event->getBlock()->getLevel()->getBlock(new Vector3($bl->x + 1, $bl->y, $bl->z));
         $block2 = $event->getBlock()->getLevel()->getBlock(new Vector3($bl->x - 1, $bl->y, $bl->z));
         $block3 = $event->getBlock()->getLevel()->getBlock(new Vector3($bl->x, $bl->y, $bl->z + 1));
         $block4 = $event->getBlock()->getLevel()->getBlock(new Vector3($bl->x, $bl->y, $bl->z - 1));
         if ($block1->getID() == 54 || $block2->getID() == 54 || $block3->getID() == 54 || $block4->getID() == 54) {
             $event->getPlayer()->sendPopup(MT::RED . "Keine Doppelkisten! - no double chests!");
             $this->debug->onDebug('Doublechest placement');
             $event->setCancelled(true);
         }
     }
 }