22declare(strict_types=1);
27use pocketmine\block\utils\FallableTrait;
28use pocketmine\block\utils\SupportType;
32use pocketmine\player\GameMode;
53 if($player !== null && $player->getGamemode() !== GameMode::CREATIVE){
60 public function teleport() : void{
61 $world = $this->position->getWorld();
62 for($tries = 0; $tries < 16; ++$tries){
63 $block = $world->getBlockAt(
64 $this->position->x + mt_rand(-16, 16),
65 max(World::Y_MIN, min(World::Y_MAX - 1, $this->position->y + mt_rand(-8, 8))),
66 $this->position->z + mt_rand(-16, 16)
68 if($block instanceof Air){
69 $ev =
new BlockTeleportEvent($this, $block->position);
71 if($ev->isCancelled()){
75 $blockPos = $ev->getTo();
76 $world->addParticle($this->position,
new DragonEggTeleportParticle($this->position->x - $blockPos->x, $this->position->y - $blockPos->y, $this->position->z - $blockPos->z));
77 $world->setBlock($this->position, VanillaBlocks::AIR());
78 $world->setBlock($blockPos, $this);
85 return SupportType::NONE;
getSupportType(int $facing)
onAttack(Item $item, int $face, ?Player $player=null)
onInteract(Item $item, int $face, Vector3 $clickVector, ?Player $player=null, array &$returnedItems=[])