@SubscribeEvent
public void onEntityJoinWorld(EntityJoinWorldEvent event) {
if (event.getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getEntity();
if (!playerList.contains(player.getName())) {
throw new RuntimeException("ti kyda lezeth dyrak");
}
}
}
@SubscribeEvent
public void onEntityJoinWorld(EntityJoinWorldEvent event) {
if (event.getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getEntity();
if (!playerList.contains(player.getName())) {
throw new RuntimeException("ti kyda lezeth dyrak");
}
}
}
Ахах, ну и зачем крашить сервер? Это всё равно что взорвать кремль собственной системой безопасности, если она обнаружит постороннего.вариант с крашем не лучший тебя задодосят за 0.00000000001 секgavno kod:@SubscribeEvent public void onEntityJoinWorld(EntityJoinWorldEvent event) { if (event.getEntity() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.getEntity(); if (!playerList.contains(player.getName())) { throw new RuntimeException("ti kyda lezeth dyrak"); } } }
Подобные проверки должны производиться только на сервере, иначе что мешает клиенту со своей стороны модифицировать код и спокойно войти?ClientPlayerNetworkEvent.LoggedInEvent, но спасибо за шаблон, многим поможет.
посторонний не зайдет на сервер если сервера не будетАхах, ну и зачем крашить сервер?
Проверять всё необходимое только со стороны сервера и разрывать соединение с клиентом с указанием причины.как этого избежать?
Сервер не упадёт, ибо исключение будет в контексте подключения игрока к серверу, в таких случаях игра не останавливает сервер, а кикает игрока.Ахах, ну и зачем крашить сервер? Это всё равно что взорвать кремль собственной системой безопасности, если она обнаружит постороннего.
На очень старых версиях падал, это не миф. Одновременно с введением Netty этот момент переделали.Сервер не упадёт, ибо исключение будет в контексте подключения игрока к серверу, в таких случаях игра не останавливает сервер, а кикает игрока.