Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Использование невидимого предмета в ивенте PlayerInteractEvent

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Всем снова привет. Столкнулся с проблемой, очень серьезной. Сделал я использование предмета, все работает, он отбирается, проверяется, но если выкинуть этот предмет и клацнуть ПКМ, то предмет таинственным образом используется, хотя у меня рука пуста, дебажил метод, он работает также, как и с предметов, т.е до конца. Помогите мне, что это за хрень такая:


    Код:
        @EventHandler
        public void useDirtyBandage(PlayerInteractEvent e) {
    
            Player p = e.getPlayer();
    
            GetLogger.warning("1");
            if (e.getHand() != EquipmentSlot.HAND) return;
            GetLogger.warning("2");
            if (e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK) return;
            GetLogger.warning("3");
            if (!p.getInventory().getItemInMainHand().hasItemMeta()) return;
            GetLogger.warning("4");
            if (!p.getInventory().getItemInMainHand().getItemMeta().hasDisplayName()) return;
            GetLogger.warning("5");
            if (!p.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equalsIgnoreCase(ListItems.dirtyBandage.getItemMeta().getDisplayName())) return;
    
            if (!DiseaseManager.hasBlood(p)) {
                p.sendMessage(C.getPrefix() + C.c("&cЗачем мне использовать грязную ткань, если у меня нет кровотечения?"));
                return;
            }
    
            if (!r.nextBoolean()) {
                p.sendMessage(C.getPrefix() + C.c("&cГрязная ткань была слишком дырявой и я не остановил кровотечение!"));
                removeItem(p);
                return;
            }
    
            DiseaseManager.removeBlood(p);
            removeItem(p);
            p.sendMessage(C.getPrefix() + C.c("&aЯ использовал грязную ткань и остановил кровотечение!"));
        }
     
  2. Хостинг MineCraft
    <
  3. Blc_Dragon

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    if(p.getInventory().getItemInMainHand().getType()==Material.AIR)

    Радуйся додя
     
  4. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Потому что это визуал, а предмет не дропнулся и все еще в руке.
     
  5. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Убило :D. Как-то не дошло проверить на воздух
     
  6. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    В руке не бывает null, пора бы запомнить.
     
  7. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Да, спасибо, запомню.
     
Статус темы:
Закрыта.

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