Вопрос Почему создаётся копия предмета в меню

Версия Minecraft
1.16.X

QuodLitee

Заблокирован
Сообщения
27
Первый баг: при покупке head1 предмет выдаётся в инвентарь игрока и каким-то образом если у игрока в инвентаре лежит head1 то при открытии меню он клонируется туда.
Второй баг: все предметы которые не указаны в коде (также предметы из инвентаря игрока) закрывают меню, но когда я оставляю в коде только 1 предмет, то этот баг пропадает.
Java:
public void onClick(InventoryClickEvent event) {
        Player player = (Player)event.getWhoClicked();
        PlayerInventory playerInventory = (PlayerInventory) event.getView().getBottomInventory();
        ItemStack item = event.getCurrentItem();
        if (event.getView().getTitle().equals(ColorUtil.color(Main.cfg.getString("title")))) {
            if (item != null && item
                    .getItemMeta() != null && item
                    .getItemMeta().getDisplayName().equalsIgnoreCase(ColorUtil.color(Main.cfg.getString("gui.item.1.name")))) {
                if(Main.ppAPI.look(player.getUniqueId()) >= Main.cfg.getInt("gui.item.1.cost")) {
                    Main.ppAPI.take(player.getUniqueId(), Main.cfg.getInt("gui.item.1.cost"));
                    for(String s : Main.cfg.getStringList("gui.item.1.purchase"))
                        player.sendMessage(s);
                    playerInventory.addItem(ItemSUtils.head1());
                    player.closeInventory();
                } else {
                    for(String s : Main.cfg.getStringList("noMoney"))
                        player.sendMessage(s);
                    player.closeInventory();
                }
            }
            else if (item != null && item
                    .getItemMeta() != null && item
                    .getItemMeta().getDisplayName().equalsIgnoreCase(ColorUtil.color(Main.cfg.getString("gui.item.2.name")))) {
                if(Main.ppAPI.look(player.getUniqueId()) >= Main.cfg.getInt("gui.item.2.cost")) {
                    Main.ppAPI.take(player.getUniqueId(), Main.cfg.getInt("gui.item.2.cost"));
                    for(String s : Main.cfg.getStringList("gui.item.2.purchase"))
                        player.sendMessage(s);
                    playerInventory.addItem(ItemSUtils.head2());
                    player.closeInventory();
                } else {
                    for(String s : Main.cfg.getStringList("noMoney"))
                        player.sendMessage(s);
                    player.closeInventory();
                }

            }
            else if (item != null && item
                    .getItemMeta() != null && item
                    .getItemMeta().getDisplayName().equalsIgnoreCase(ColorUtil.color(Main.cfg.getString("gui.item.3.name")))) {
                if(Main.ppAPI.look(player.getUniqueId()) >= Main.cfg.getInt("gui.item.3.cost")) {
                    Main.ppAPI.take(player.getUniqueId(), Main.cfg.getInt("gui.item.3.cost"));
                    for(String s : Main.cfg.getStringList("gui.item.3.purchase"))
                        player.sendMessage(s);
                    playerInventory.addItem(ItemSUtils.head3());
                    player.closeInventory();
                } else {
                    for(String s : Main.cfg.getStringList("noMoney"))
                        player.sendMessage(s);
                    player.closeInventory();
                }
            }
            else if (item != null && item
                    .getItemMeta() != null && item
                    .getItemMeta().getDisplayName().equalsIgnoreCase(ColorUtil.color(Main.cfg.getString("gui.item.4.name")))) {
                if(Main.ppAPI.look(player.getUniqueId()) >= Main.cfg.getInt("gui.item.4.cost")) {
                    Main.ppAPI.take(player.getUniqueId(), Main.cfg.getInt("gui.item.4.cost"));
                    for(String s : Main.cfg.getStringList("gui.item.4.purchase"))
                        player.sendMessage(s);
                    playerInventory.addItem(ItemSUtils.head4());
                    player.closeInventory();
                } else {
                    for(String s : Main.cfg.getStringList("noMoney"))
                        player.sendMessage(s);
                    player.closeInventory();
                }
            }
            else if (item != null && item
                    .getItemMeta() != null && item
                    .getItemMeta().getDisplayName().equalsIgnoreCase(ColorUtil.color(Main.cfg.getString("gui.item.5.name")))) {
                if(Main.ppAPI.look(player.getUniqueId()) >= Main.cfg.getInt("gui.item.5.cost")) {
                    Main.ppAPI.take(player.getUniqueId(), Main.cfg.getInt("gui.item.5.cost"));
                    for(String s : Main.cfg.getStringList("gui.item.5.purchase"))
                        player.sendMessage(s);
                    playerInventory.addItem(ItemSUtils.head5());
                    player.closeInventory();
                } else {
                    for(String s : Main.cfg.getStringList("noMoney"))
                        player.sendMessage(s);
                    player.closeInventory();
                }
            }
            else if (item != null && item
                    .getItemMeta() != null && item
                    .getItemMeta().getDisplayName().equalsIgnoreCase(ColorUtil.color(Main.cfg.getString("gui.item.6.name")))) {
                player.closeInventory();
                if(Main.ppAPI.look(player.getUniqueId()) >= Main.cfg.getInt("gui.item.6.cost")) {
                    Main.ppAPI.take(player.getUniqueId(), Main.cfg.getInt("gui.item.6.cost"));
                    for(String s : Main.cfg.getStringList("gui.item.6.purchase"))
                        player.sendMessage(s);
                    playerInventory.addItem(ItemSUtils.head6());
                } else {
                    for(String s : Main.cfg.getStringList("noMoney"))
                        player.sendMessage(s);
                }
            }
            else if (item != null && item
                    .getItemMeta() != null && item
                    .getItemMeta().getDisplayName().equalsIgnoreCase(ColorUtil.color(Main.cfg.getString("gui.item.7.name")))) {
                player.closeInventory();
            }
            event.setCancelled(true);
        }
    }
 
Последнее редактирование модератором:
Назад
Сверху Снизу