How to fix it? Does not work, please help xd PHP: <?phpnamespace mypluginxd;use pocketmine\plugin\PluginBase;use pocketmine\event\Listener;use pocketmine\event\player\PlayerPreLoginEvent;use pocketmine\Player;use pocketmine\Server;class main extends PluginBase implements Listener{ public function onEnable(){} public function onPlayerPreLogin(PlayerPreLoginEvent $event){ if($server->getPlayer($event->getPlayer()) !== null){ $event->getPlayer()->close("", "Gracz jest juz na serwerze/n Already logged in");}} }
Also, You're trying to get a player from a player or something? Huh? $server is undefined? $server->getPlayer() requires a string, not a player object.
PHP: < ?phpnamespace mypluginxd;use pocketmine\plugin\PluginBase;use pocketmine\event\Listener;use pocketmine\event\player\PlayerPreLoginEvent;use pocketmine\Player;use pocketmine\Server;class main extends PluginBase implements Listener{public function onEnable(){$this->getServer()->getPluginManager()->registerEvents($this, $this); }public function onPlayerPreLogin(PlayerPreLoginEvent $event){ if($event->getPlayer() !== null){ $event->getPlayer()->close("", "Gracz jest juz na serwerze/n Already logged in"); }} } You must use registerEvents function in PluginManager
You obviously don't understand what he wants. He wants to check if a player of the same name is already logged in. $event->getPlayer() always returns a Player object and using checking its nullity is unreasonable. @Martti16 Several problems in your code: You should pass the player name to the server. $server->getPlayer($event->getPlayer()->getName()) is more correct. You should use kick() instead of close(). To remove the "Kicked by admin" prefix, pass false as the second parameter. \n instead of /n.
PHP: <?phpnamespace mypluginxd;use pocketmine\plugin\PluginBase;use pocketmine\event\Listener;use pocketmine\event\player\PlayerPreLoginEvent;use pocketmine\Player;use pocketmine\Server;class main extends PluginBase implements Listener{ public function onEnable(){ $this->getServer()->getPluginManager()->registerEvents($this, $this); } public function onPlayerPreLogin(PlayerPreLoginEvent $event){ if($this->getServer()->getPlayer($event->getPlayer->getName()) == null) { return; } $event->setCancelled(); $event->setKickMessage("Gracz jest juz na serwerze\n Already logged in"); }}
Oh now I understand what you want. I using this: PHP: public function onPlayerPreLog(PlayerPreLoginEvent $e){if (($pl = $this->getServer()->getPlayer($p->getName())) instanceof Player){$e->setCancelled();$e->setKickMessage("§cHrac se stejnym jmenem jiz hraje!");}}