Как убрать возможность использоаание ника ниже 4 букв/цифр
В DataPacketReceiveEvent
проверять длину ника, отправленного игроком в LoginPacket
У меня готовый плагин есть могу дать
Запрещает заходить на сервер если у игрока больше 9 символов ник
Плагин нужен только тем у кого в табе или по вашему в меню игры
Вылезет текст если у игрока большой ник
public function onPreLogin(PlayerPreLoginEvent $e){
$nick = strlen($e->getPlayer()->getName());
if($nick < 4){ //Вместо 4 твое число
$e->setCancelled(true);
$e->getPlayer()->close("", "Твоё сообщение кика");
}
}
Вместо
$e->getPlayer()->close("", "Твоё сообщение кика");
следует использовать
$e->setKickReason(PlayerPreLoginEvent::KICK_REASON_PLUGIN, "Твоё сообщение кика");
тогда уж объясни почему
Потому что функционал кика предусмотрен в этом событии. Будет неправильно кикать игрока вручную. В некоторых случаях это может даже вызвать ошибки
ну это да.
а вообще, он ведь изначально не кикал игрока, а закрывал сессию же?
В PM4 функции close()
в классе игрока нет вовсе. Соответственно, игрока просто кикнет с причиной “Player destroyed”.
В PM3 игроку отправится DisconnectPacket (PocketMine-MP/Player.php at f33c19e77a87c33ba6818f02eedf9b1ef55ffeef · pmmp/PocketMine-MP · GitHub), а затем его сессия будет уничтожена.
В PM3 отличие между kick()
и close()
только в том, что kick()
перед киком вызывает PlayerKickEvent
, который может быть отменён плагином.
сорри не видел что отвечали)
Смысл? В майнкрафте лимит 14-16 стоит
Иди нахуй далбаеб
Эта тема была автоматически закрыта через 12 часов после последнего ответа. В ней больше нельзя отвечать.