Помогите Не работает GUI

ShitCoder

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
TheLastGapple
Код:
    public static void chooseGUI(Player p) {
        Inventory i = Bukkit.createInventory(null, 18, "§aAdminMenu");
        for (PotionEffect pe : p.getActivePotionEffects()) {
            if (pe.getType().equals(PotionEffectType.INVISIBILITY)) {
                i.setItem(0, ItemUtil.create(Material.REDSTONE_BLOCK, "Вам нельзя открыть этот пункт!"));
                i.setItem(9, ItemUtil.create(Material.REDSTONE_BLOCK, "Вам нельзя открыть этот пункт!"));
            }
            else {
              
        i.setItem(0, ItemUtil.create(Material.WOOL, 0, (byte) 1, "§aВанишМеню", "§fЦена: §c50$", null, null, null, null));
        i.setItem(9, ItemUtil.create(Material.WOOL, 0, (byte) 1, "§aВанишМеню New", null, null, null, null));
      
        p.openInventory(i);
    }
        }
    }
Вызываю с помощью команды
Код:
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(cmd.getName().equalsIgnoreCase("adminmenu")) {
            Player p = (Player) sender;
            GUI.chooseGUI(p);
        }
        return true;
    }
 
Команду в plugin.yml зарегал? Если команду консоль пропишет, тебе ошибку даст, проверяй.
 
onCommand в главном классе, или в зареганом через getCommand().setExecutor()?
 
Как понял проблема не в команде а в этих срочках:
Код:
        for (PotionEffect pe : p.getActivePotionEffects()) {
            if (pe.getType().equals(PotionEffectType.INVISIBILITY)) {
Но не могу понять как это исправить
 
Проверять в ванише ли игрок через эффект невидимости - тупо. Но если тебе и так подходит - проверь точно ли в игрока есть эффекты.
 
Проверять в ванише ли игрок через эффект невидимости - тупо. Но если тебе и так подходит - проверь точно ли в игрока есть эффекты.
Да мне так подходит, как именно точно проверить?
 
Вообще, проблема в том, что ТС не умеет пользоваться if else. У тебя если нет невидимости, только тогда откроет инвентарь, смотри внимательней.
 
Да и по сути, оно каждый раз будет обновлять ячейки 0 и 9, поэтому ТС вряд ли достигнет нужного содержимого инвентаря.
 
М-даа, сейчас бы дописывать мой плагин, какой зашквар :c
 
Код:
    public static void chooseGUI(Player p) {
        Inventory i = Bukkit.createInventory(null, 18, "§aAdminMenu");
        for (PotionEffect pe : p.getActivePotionEffects()) {
            if (pe.getType().equals(PotionEffectType.INVISIBILITY)) {
                i.setItem(0, ItemUtil.create(Material.REDSTONE_BLOCK, "Вам нельзя открыть этот пункт!"));
                i.setItem(9, ItemUtil.create(Material.REDSTONE_BLOCK, "Вам нельзя открыть этот пункт!"));
            }
            else {
            
        i.setItem(0, ItemUtil.create(Material.WOOL, 0, (byte) 1, "§aВанишМеню", "§fЦена: §c50$", null, null, null, null));
        i.setItem(9, ItemUtil.create(Material.WOOL, 0, (byte) 1, "§aВанишМеню New", null, null, null, null));
    
        p.openInventory(i);
    }
        }
    }
Вызываю с помощью команды
Код:
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(cmd.getName().equalsIgnoreCase("adminmenu")) {
            Player p = (Player) sender;
            GUI.chooseGUI(p);
        }
        return true;
    }
Попробуй этот код(без ваниша):
Код:
public static void chooseGUI(Player p) {
       Inventory i = Bukkit.createInventory(null, 18, "§aAdminMenu");
       i.setItem(0, ItemUtil.create(Material.WOOL, 0, (byte) 1, "§aВанишМеню", "§fЦена: §c50$", null, null, null, null));
       i.setItem(9, ItemUtil.create(Material.WOOL, 0, (byte) 1, "§aВанишМеню New", null, null, null, null));
       for (PotionEffect pe : p.getActivePotionEffects()) {
           if (pe.getType().equals(PotionEffectType.INVISIBILITY)) {
               i.setItem(0, ItemUtil.create(Material.REDSTONE_BLOCK, "Вам нельзя открыть этот пункт!"));
               i.setItem(9, ItemUtil.create(Material.REDSTONE_BLOCK, "Вам нельзя открыть этот пункт!"));
           }
       }
      p.openInventory(i);
   }
 
Назад
Верх