Вопрос Список арен в Gui menu

Spokers

Пользователь
Сообщения
70
Решения
1
Проблема в том что у итем стака создаётся 1 имя а количество предметов создаётся столько же сколько и арен

Java:
public class ArenaListGUI implements Listener {

    static Inventory inv = Bukkit.getServer().createInventory(null, 27, "Список Арен");

    public static void ArenaListgui(Player p) {
        Set<String> keys = Utils.Arena.keySet();
        for (String names : keys) {
                addListArena(Utils.Arena.get(names).getName(), Utils.Arena.get(names).getStatus(), keys.size());
        }
        p.openInventory(inv);
    }

    @EventHandler
    public void onInventoryClick(InventoryClickEvent event) {
        Player player = (Player) event.getWhoClicked();
        ItemStack clicked = event.getCurrentItem();
        Inventory inventory = event.getInventory();
        if (inventory.getName().equals(inv.getName())) {
            event.setCancelled(true);
        }
    }


    public static void addListArena(String name, GameStatus status, int index) {

        int color = 0;
        if (status.name() == GameStatus.ACTIVE.name()){
            color = 5;
        }
        if (status.name() == GameStatus.GAME.name()) {
            color = 4;
        }
        if (status.name() == GameStatus.END.name()) {
            color = 14;
        }
        for (int x = 0; x < index; x++) {
                ItemStack Arenas = new ItemStack(Material.WOOL, 1, (short)color);
                ItemMeta Arenas_meta = Arenas.getItemMeta();

                Arenas_meta.setDisplayName(name);
                Arenas.setItemMeta(Arenas_meta);

                inv.setItem(x, Arenas);
        }



    }
 
Название арен в таком списке
Arena1
arena2
arena3
...
...
Авто объединение сообщений:

Вопрос решил

Java:
    public static void ArenaListgui(Player p) {
        ArrayList<String> key = new ArrayList<>(Utils.Arena.keySet());
        int i = 0;
        for (String names : key) {
            inv.setItem(i, addListArena(Utils.Arena.get(names).getName(), Utils.Arena.get(names).getStatus(), Utils.Arena.get(names).getPower()));
            i++;
        }
        p.openInventory(inv);
    }
 
Последнее редактирование:
Назад
Сверху Снизу