I need help Guys I want to make Signportal with player counter . 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; } $s = $sign->getText(); if($s[0] == "[GAME]"){ $s2 = $s[2]; if($this->getOwner()->getServer()->isLevelLoaded($s2) == true){ $ol = count($this->getOwner()->getServer()->getLevelByName($t2)->getPlayers()); $tile->setText($s[0], "World:" , $s[2], "Players:" . $ol); $event->getPlayer()->sendMessage("[ADMIN] Preparing world '".$mapname."'"); //Prevents most crashes if(Server::getInstance()->loadLevel($mapname) != false){ $event->getPlayer()->teleport(Server::getInstance()->getLevelByName($mapname)->getSafeSpawn()); }else{ $event->getPlayer()->sendMessage("[ADMIN] World '".$mapname."' not found."); } } } } }
Well, first use PHP tags, we can't read your code properly... Code: [PHP] CODE [/PHP] Then If you want add a player counter, you should create a repeating task for update every x (I suggest, 20) ticks how many players are inside the map.
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;}$s = $sign->getText();if($s[0] == "[GAME]"){$s2 = $s[2];if($this->getOwner()->getServer()->isLevelLoaded($s2) == true){$ol = count($this->getOwner()->getServer()->getLevelByName($t2)->getPlayers());$tile->setText($s[0], "World:" , $s[2], "Players:" . $ol);$event->getPlayer()->sendMessage("[ADMIN] Preparing world '".$mapname."'");//Prevents most crashesif(Server::getInstance()->loadLevel($mapname) != false){$event->getPlayer()->teleport(Server::getInstance()->getLevelByName($mapname)->getSafeSpawn());}else{$event->getPlayer()->sendMessage("[ADMIN] World '".$mapname."' not found.");}}}}}
What's the point of a counter that never get updated? (Only when a player click the sign) Like I said before your post, he should use a task.
second, use [PLAIN][/PLAIN] for the BBCode and smiles to not show up. Create a task that will update it everytime. use the search bar for signs.