- Баллы
- 76
- Имя в Minecraft
- SiRiuS_OSiRiuS
Добрый день. Spigot 1.11.2
Вот главный класс:
Вот метод registerHandlers():
И вот, например, код из класса Listener2:
Вот метод isOk():
Я твёрдо знаю, что и в tasks, и в invs есть ключ p, но этот метод не может их найти, поэтому всегда возвращает false. Событие PlayerMoveEvent "отлавливается", но оно не срабатывает только из-за этого. Почему? Ведь событие InventoryClickEvent прекрасно работает.
P.S. tasks и invs:
Вот главный класс:
Java:
public void onEnable() {
createFiles();
plugin = this;
registerHandlers();
try {
IO.load();
} catch (InvalidConfigurationException e) {
e.printStackTrace();
}
}
Вот метод registerHandlers():
Java:
private void registerHandlers() {
getCommand("case").setExecutor(new Executor());
getServer().getPluginManager().registerEvents(new Listener1(this), this);
getServer().getPluginManager().registerEvents(new Listener2(this), this);
}
И вот, например, код из класса Listener2:
Java:
public class Listener2 implements Listener {
Main instance;
public Listener2(Main plugin) {
instance = plugin;
}
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
if (Data.isOk((Player) e.getWhoClicked()))
e.setCancelled(true);
}
@EventHandler
public void onMove(PlayerMoveEvent e) {
if (Data.isOk(e.getPlayer()))
e.setCancelled(true);
}
}
Вот метод isOk():
Java:
public static boolean isOk(Player p) {
return tasks.containsKey(p) || invs.containsKey(p);
}
Я твёрдо знаю, что и в tasks, и в invs есть ключ p, но этот метод не может их найти, поэтому всегда возвращает false. Событие PlayerMoveEvent "отлавливается", но оно не срабатывает только из-за этого. Почему? Ведь событие InventoryClickEvent прекрасно работает.
P.S. tasks и invs:
Java:
public static HashMap<Player, Integer> tasks = new HashMap<>();
public static HashMap<Player, Inventory> invs = new HashMap<>();