1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите НЕ Выпадение определенного предмета

Тема в разделе "Разработка плагинов для новичков", создана пользователем SaMEC, 26 май 2019.

Статус темы:
Закрыта.
  1. Автор темы
    SaMEC

    SaMEC Старожил Пользователь

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Пытаюсь сохранить определенный предмет в инвентаре, чтобы он не мог выпасть при смерти, однако происходят странности. Когда имеются только те предметы которые нужно сохранить(с меткой), они сохраняются. Но если в инвентаре есть хотя бы один предмет без метки, то не сохраняется ни чего.
    Код:
    private static final Map<Player, ItemStack[]> INVENTORIES = new HashMap<>();
        @EventHandler(priority = EventPriority.HIGHEST)
        public void onPlayerDeath(PlayerDeathEvent e) {
            Player p = e.getEntity();
            List<ItemStack> contents = new ArrayList<>();
            for (ItemStack drop : e.getDrops()) {
                if(drop.getItemMeta()==null)return;
                if(drop.getItemMeta().getDisplayName().equalsIgnoreCase(null))return;
                if (drop.getItemMeta().getDisplayName().endsWith("§b метка")) {
                    contents.add(drop);
                    e.getDrops().remove(drop);
                }
            }
            INVENTORIES.put(p, contents.toArray(new ItemStack[contents.size()]));
        }
        @EventHandler(priority = EventPriority.LOW)
        public void onPlayerRespawn(PlayerRespawnEvent e) {
            Player p = e.getPlayer();
            p.getInventory().addItem(INVENTORIES.get(p));
            INVENTORIES.remove(p);
        }
    
     
  2. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    В цикле нужен continue, а не return
     
  3. Автор темы
    SaMEC

    SaMEC Старожил Пользователь

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Код:
                if(!drop.getItemMeta()==null)continue;
                if(!drop.getItemMeta().getDisplayName().equalsIgnoreCase(null))continue;
    
    ?
     
  4. Автор темы
    SaMEC

    SaMEC Старожил Пользователь

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    В общем сделал по другому
     
Статус темы:
Закрыта.

Поделиться этой страницей