Hi, my core plugin teleports the player to a certain world when he taps certain a sign. Here is my problem: it spams the console with world not found when tapping a not-world sign. Here is my code: PHP: public function playerBlockTouch(PlayerInteractEvent $event){ if($event->getBlock()->getID() == 323 || $event->getBlock()->getID() == 63 || $event->getBlock()->getID() == 68){ $sign = $event->getPlayer()->getLevel()->getTile($event->getBlock()); if(!($sign instanceof Sign)){ return; } $sign = $sign->getText(); $kpw = $sign[1]; $this->getServer()->loadLevel($kpw); $player = $event->getPlayer(); if($sign[0]=='[KitPVP]'){ $event->getPlayer()->sendMessage("-> Joining KitPVP match."); $event->getPlayer()->teleport(new Position("885", "65", "-358", $this->getServer()->getLevelByName($kpw))); }
Try it: PHP: public function playerBlockTouch(PlayerInteractEvent $event) { if($event->getBlock()->getID() == 323 || $event->getBlock()->getID() == 63 || $event->getBlock()->getID() == 68) { $player = $event->getPlayer(); $sign = $player->getLevel()->getTile($event->getBlock()); // Why not just use the event bock and cast it to sign? if(!($sign instanceof Sign)) return; $sign = $sign->getText(); if($sign[0]=='[KitPVP]') { $kpw = $sign[1]; $this->getServer()->loadLevel($kpw); $player->sendMessage("-> Joining KitPVP match."); $player->teleport(new Position(885, 65, -358, $this->getServer()->getLevelByName($kpw))); } } }
Fatal error: Cannot use object of type pocketmine\tile\Sign as array in C:\Users\*****\PocketMine-MP\plugins\SPECore\src\SuperPE\Main.php on line 43
Try this: PHP: public function playerBlockTouch(PlayerInteractEvent $event) { if($event->getBlock()->getID() == 323 || $event->getBlock()->getID() == 63 || $event->getBlock()->getID() == 68) { $player = $event->getPlayer(); $sign = $player->getLevel()->getTile($event->getBlock()); if(!($sign instanceof Sign)) return; $signText = $sign->getText(); if($signText[0] == "[KitPVP]") { $kpw = $signText[1]; $this->getServer()->loadLevel($kpw); $player->sendMessage("-> Joining KitPVP match."); $player->teleport(new Position(885, 65, -358, $this->getServer()->getLevelByName($kpw))); } } }