- Баллы
- 66
- Имя в Minecraft
- _Sweettie_
Есть у меня значит класс с ивентами (пока там только PlayerOnMoveEvent) *Класс - PlayerListener* который отменяет любые действия если игрок есть в HashMap<UUID, Listener>. Когда игрок заходить на сервер, я создаю PlayerListener listener = new PlayerListener(uuid); и добавляю его в это шехмап. Вопрос состоит в том, как можно убирать слежку за ивентами для игрока (В данном случае PlayerListener для этого игрока)
Если быть точнее
PlayerListener:
GlobalListener:
Если быть точнее
PlayerListener:
Код:
UUID uuid;
public PlayerListener(UUID uuid) {
this.uuid = uuid;
}
@EventHandler
public void move(PlayerMoveEvent event) {
UUID id = event.getPlayer().getUniqueId();
if (id.equals(uuid)) event.setCancelled(true);
}
GlobalListener:
Код:
Main main;
public Listeners(Main main) {
this.main = main;
}
@EventHandler
public void join(PlayerJoinEvent event) {
Player player = event.getPlayer();
if (!main.isNewUser(player.getUniqueId())) {
event.getPlayer().sendMessage("reg");
} else {
event.getPlayer().sendMessage("login");
}
GlobalListener listener = new GlobalListener(player.getUniqueId())
pluginManager.registerEvents(listener, main);
event.setJoinMessage("");
event.getPlayer().setWalkSpeed(0F);
event.getPlayer().setFlySpeed(0F);
}
