1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Bezobrazie, 27 авг 2021.

  1. Автор темы
    Bezobrazie

    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(null54"");
            return 
    casesInv;
        }
    }
    PHP:
                    if(sender instanceof Player) {
                        
    Player player = (Playersender;
                        
    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);
            }
        }
     
  2. LOVEC3327

    LOVEC3327 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Во время создания инвентаря указывай this
     
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ну потому что так и есть Inventory casesInv = Bukkit.createInventory(null, 54, "");
    Смени на Inventory casesInv = Bukkit.createInventory(this, 54, "");
     

Поделиться этой страницей