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

Помогите Как сделать так что бы предмет нельзя было выкинуть, но можно было перемещать в инвентаре?

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    AguRChek_TV
    Как сделать так что бы предмет нельзя было выкинуть, но можно было перемещать в инвентаре?
    Мне это нужно для игровых менюшек.
     
  2. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Эвентом PlayerDropItemEvent.

    Код:
        @EventHandler
        public void dropItem(PlayerDropItemEvent e){
            if(e.getItemDrop().getItemStack().getType() == Material.DIAMOND){
                e.setCancelled(true);
            }
        }
     
  3. ilya50

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

    Баллы:
    76
    Можно кстати обойти такой метод. Например если у тебя в инвентаре будут все слоты забиты, ты встанешь рядом с дропнутым предметом и возьмёшь курсором предмет который нельзя дропать. У тебя возьмётся предмет на земле и заполнит собой пустой слот. После этого можно спокойно дропать предмет
     
  4. Bars

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

    Баллы:
    173
    Есть workaround (обход) для этого бага?
     
  5. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Как вариант - при поднятии предмета проверять, заполнен ли инвентарь (кроме одного слота + слоты брони, второй руки, крафта), и есть ли у игрока на курсоре предмет Player#getItemOnCursor(), и, соответственно, отменять событие, если места нет.
     
  6. alexandrage

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

    Баллы:
    173
    Тогда бы все плагины сломались на запрет дропа. Кто то нагло гонит.
     

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