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

Помогите Как запретить чтобы воронка не загружала опр. предмет

Тема в разделе "Разработка плагинов для новичков", создана пользователем VladlenSSD, 22 окт 2023.

  1. Автор темы
    VladlenSSD

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

    Баллы:
    61
    Имя в Minecraft:
    vladoskin
    Доброго времени суток!

    Столкнулся с проблемой... В общем, у меня есть уникальный предмет:


    ItemStack TreasureItem() {
    ItemStack skullItem = new ItemStack(Material.PLAYER_HEAD, 1);
    SkullMeta skullMeta = (SkullMeta) skullItem.getItemMeta();
    skullMeta.setDisplayName(getConfig().getString("Skull.name"));

    List<String> loreList = getConfig().getStringList("Skull.lore");
    skullMeta.setOwner(getConfig().getString("Skull.skin"));
    skullMeta.setLore(loreList);

    skullItem.setItemMeta(skullMeta);
    return skullItem;
    }


    Данный предмет нельзя класть в шалкер, но столкнулся с проблемой что игроки смогут загружать данный предмет в шалкер через воронку, как такое можно предотвратить? (Именно чтобы когда игрок кидал на воронку сам предмет он не загружался и я уже сделал что нельзя сам предмет положить в воронку, проблема лишь в том что игроки могут кидать на воронку и тем самым загрузить его так в шалкер)

    Заранее спасибо!

    P.s Надеюсь всё понятно удалось разъяснить
     
  2. Beginov

    Beginov Участник

    Баллы:
    31
    Имя в Minecraft:
    Beginov
    Для того, чтобы предотвратить возможность загрузки предмета в шалкер через воронку, вы можете добавить проверку при сбросе предмета на воронку. Попробуйте использовать данное событие: "InventoryClickEvent".
    Пример:

    Код:
    @EventHandler
    public void onInventoryClick(InventoryClickEvent event) {
        if (event.getInventory().getType() == InventoryType.HOPPER) {
            ItemStack item = event.getCurrentItem();
            if (item != null && isYourUniqueItem(item)) {
                event.setCancelled(true);
                event.getWhoClicked().sendMessage("Увы, но так делать нельзя :)");
            }
        }
    }
     
  3. Ission

    Ission Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    lokivava
    InventoryPickupItemEvent в помощь.
     

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