Помогите Разобраться с InventoryHolder

Bezobrazie

Активный участник
Пользователь
Баллы
46
Имя в Minecraft
MySoulIsCry
Пытаюсь отменить ивент клика по инвентарю путем проверки объекта через instanceof, а не через сравнивание тайтлов как делал раньше, но почему-то e.getInventory().getHolder() instanceof CaseHolder возвращает мне false, не могу понять почему оно думает что этот инвентарь не принадлежит моему классу.
PHP:
public class CaseHolder implements InventoryHolder{
   
    private Player player;
   
    public CaseHolder(Player player) {
        this.player = player;
    }
   
    @Override
    public Inventory getInventory() {
        Inventory casesInv = Bukkit.createInventory(null, 54, "");
        return casesInv;
    }
}
PHP:
                if(sender instanceof Player) {
                    Player player = (Player) sender;
                    CaseHolder caseHolder = new CaseHolder(player);
                    player.openInventory(caseHolder.getInventory());
                }
PHP:
    @EventHandler
    public void onClick(InventoryClickEvent e) {
        if(e.getInventory().getHolder() instanceof CaseHolder) {
            e.setCancelled(true);
        }
    }
 
Во время создания инвентаря указывай this
 
Ну потому что так и есть Inventory casesInv = Bukkit.createInventory(null, 54, "");
Смени на Inventory casesInv = Bukkit.createInventory(this, 54, "");
 
Назад
Верх