Помогите Добавление, удаление, замена предметов в инвентаре

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

Sergeo

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Solomka
У меня встал вопрос: Как сделать так, чтобы наличии игрока в map в инвентарь добавлялась его голова, но все остальные слоты, которые не заняты, оставались заполнены барьерами, если игрока удалили из map, то голова удаляется и заменяется барьером.

Создание отдельного меню каждый раз, когда игрок взаимодействует с предметом, если он находится не в этом меню, то она удаляется автоматически и так с каждым игроком, который будет добавлен в меню, а именно головы

Код:
public class BasicGUI {

    public static Inventory i;

    public static Inventory createInventoryDefault() {
        if (i == null) {
            i =  Bukkit.createInventory(null, 18, "Список");
        }
        return i;
    }

    public static Inventory createInventoryPersonal(Inventory personal, Player player_holder, Player player){
        if(personal.getHolder() != player_holder) {
            personal = Bukkit.createInventory(player_holder, 18, player_holder.getName());
        }
        player.openInventory(personal);
        return personal;
    }

    public static void addItem(ItemStack item, int slot) {
            i.setItem(slot, item);
    }

    @NotNull
    public static ItemMeta setMetaItem(ItemStack item, List<String> lore, String title){
        ItemMeta meta = item.getItemMeta();
        meta.setLore(lore);
        meta.setDisplayName(title);
        item.setItemMeta(meta);
        return meta;
    }

    public static void deleteItem(int slot){
        i.remove(slot);
    }

Меню:


Код:
           public static void inventory(Inventory inventory, Player p) {

            ItemStack NULL_SLOT = new ItemStack(Material.BARRIER);

            ItemStack HEAD_PLAYER = new ItemStack(Material.SKULL_ITEM);

            if(!p.getOpenInventory().equals(inventory)) return;

for (Player pl : Bukkit.getOnlinePlayers()) {
    UUID id = pl.getUniqueId();
    if (!map.contains(id)) {
        for (int i = 0; i == inventory.getSize(); i++) {
            inventory.setItem(i, NULL_SLOT);
        }
    }

                for(int i = 0; i == p.getInventory().getSize(); i++) {
                    if(inventory.getItem(i) != NULL_SLOT) {
                        i++;
                    }
                    SkullMeta meta = (SkullMeta) HEAD_PLAYER.getItemMeta();
                    meta.setOwner(pl.getName());
                    HEAD_PLAYER.setItemMeta(meta);
                    p.getInventory().setItem(i, HEAD_PLAYER);

                 
setMetaItem(HEAD_PLAYER, "Нажмите, чтобы узнать больше...", pl.getName());
                }

            }
        }
 
Последнее редактирование:
Назад
Верх