Помогите Гуи инвентарь

  • Автор темы Автор темы EugeneRu
  • Дата начала Дата начала

EugeneRu

Новичок
Пользователь
Баллы
11
Как сделать так чтобы если команда активирована, например fly - работает, то в гуи мы видем блок который я указал. И наоборот, fly - не работает, и в гуи другой блок который я так же указал.
 
Жесть, наверное сложно применить условный оператор?
 
Код:
if (player.getAllowFlight()) {
    inv.setItem....
} else {
    inv.setItem....
}

Я не знаю что ты имеешь под видом "активированная команда", такого собственно нет. Но в случае с флаем игрок получает возможность летать и это можно узнать примером кода выше.
 
Прошу выйти из темы, если можешь помочь только словами, а не примерным кодом.
[offtop]
Нет, слушай, ты просишь помощи, тебе предлагают вариант с условным оператором, который точно сработает. Но вместо того, чтобы самому что-то написать, ты просишь готовый код. Это как, нормально?
 
[offtop]
Нет, слушай, ты просишь помощи, тебе предлагают вариант с условным оператором, который точно сработает. Но вместо того, чтобы самому что-то написать, ты просишь готовый код. Это как, нормально?
Про условный оператор я знаю, но мне нужен пример гуи, возможно была тема на спиготе но я её не нашёл.
 
Про условный оператор я знаю, но мне нужен пример гуи, возможно была тема на спиготе но я её не нашёл.
Вот тебе пример GUI:
Вот пример условного оператора:
Код:
if (player.getAllowFlight()) {
    inv.setItem....
} else {
    inv.setItem....
}

Я не знаю что ты имеешь под видом "активированная команда", такого собственно нет. Но в случае с флаем игрок получает возможность летать и это можно узнать примером кода выше.
 
Ну все - сам нарвался.

Код:
package Example;

import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;

public class EventListener implements Listener {
    Main plugin;

    public EventListener(Main main) {
        this.plugin = main;
    }

    @EventHandler
    public void on(PlayerCommandPreprocessEvent e) {
        if (e.getMessage().equalsIgnoreCase("/menu")) {
            Player player = e.getPlayer();
            Menu menu = new Menu("Меню");
            if (player.getAllowFlight()) {
                Stack stack = new Stack(new ItemBuilder(Material.RED_WOOL).setName("off").build(), "fly");
                menu.addItem(stack);
            } else {
                Stack stack = new Stack(new ItemBuilder(Material.GREEN_WOOL).setName("on").build(), "fly");
                menu.addItem(stack);
            }
            player.openInventory(menu.getInventory());
        }
    }

    @EventHandler
    public void on(InventoryClickEvent e) {
        if (e.getClickedInventory().getHolder() instanceof Menu) {
            e.setCancelled(true);
            Menu menu = (Menu) e.getClickedInventory().getHolder();
            Stack stack = menu.getItem(e.getSlot());
            if (stack != null) {
                Player p = (Player) e.getWhoClicked();
                p.performCommand(stack.getommand());
                p.closeInventory();
            }
        }
    }
}
Дополнительные классы ниже.

https://hastebin.com/igicoxirin.cpp
https://hastebin.com/onicunoreg.cpp
https://hastebin.com/jopofogeyi.cpp
 
Последнее редактирование:
Назад
Верх