- Баллы
- 173
- Имя в Minecraft
- fromgate
Есть объект location. В нем хранится ссылка на объект world. Объект world хранится где-то в ядре. С каждым тиком у объекта world вызывается метод .clone(), который создает новый объект world в ядре сервера и сервер далее уже взаимодействует с этим объектом ровно 1 тик. Когда проходит тик, все location продолжают ссылаться на устаревший world, в то время как сервер использует уже новый объект world. Когда вы пытаетесь телепортировать игрока по устаревшему location и попадаете на ссылку с устаревшим миром, соответственно вас никуда не телепортирует.
Когда вы создаете новый location констуктором:.
Т.е. если создать объект Location в одном тике, то во втором его уже использовать уже нельзя? У Вас откуда эта информация? Вы это проверяли?
Я столько раз заполнял массив состоящий из Location при старте плагина и использовал его на протяжении нескольких суток, что... и не знаю как относиться к выше изложенному.
Ну и по теме:
Мне кажется, я всё же угадал:
Код:
@EventHandler
public void onPlayerTeleport(PlayerTeleportEvent event) {
Player player = event.getPlayer();
if(HGAPI.getPlayerManager().getPlayers().containsKey(player.getName())){
HockeyPlayer hp = HGAPI.getPlayerManager().getHockeyPlayer(player.getName());
if(hp.getArena().isRunning()){
event.setCancelled(true);
}
}
}
