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

Помогите Эффект при наличии определенного предмета в руке.

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    f3azzy
    Привет ребята, пишу плагин и нужно на предмет когда он в руке наложить эффект. Пробовал через PlayerInteractEvent, вот что получилось :

    @EventHandler
    public void use(PlayerInteractEvent e){
    if(e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK) return;
    if(e.getPlayer().getInventory().getItemInMainHand().getType() != Material.DIAMOND) return;
    Player p = e.getPlayer();
    p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 10, 3));

    Но тут когда кликаешь по воздуху получилось, а мне нужно именно когда держишь, буду благодарен всем кто мне поможет.
     
  2. NN_KOF3STx

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

    Баллы:
    61
    Имя в Minecraft:
    kof3st
    Если не ошибаюсь, ивент называется PlayerItemHeldEvent. Он отвечает за смену активного слота в инвентаре (прокрутку колёсика мышки)
     
  3. Автор темы
    Kloper

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

    Баллы:
    76
    Имя в Minecraft:
    f3azzy
    надо чтобы именно при держании предмета в руке.
     
  4. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Ну ты глуп что ли ору? Если после смены слота предмет тот, который тебе нужен, включаешь свою ***ню, после следующей смены отключаешь.
     
  5. NN_KOF3STx

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

    Баллы:
    61
    Имя в Minecraft:
    kof3st
    Код:
    @EventHandler
    public void onItemHeld(PlayerItemHeldEvent event)
    {
        Player player = event.getPlayer();
        int slotIndex = event.getNewSlot();
        ItemStack slotItem = player.getInventory().getItem(slotIndex); //Получение предмета в новом слоте
        if(slotItem == null || slotItem.getType() != Material.DIAMOND)    
            player.removePotionEffect(PotionEffectType.REGENERATION); //Если предмет в руке не равен алмазу, убрать эффект
        else
            player.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 10, 3)); //Иначе добавить эффект
    }
     
  6. zabelov

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

    Баллы:
    61
    Имя в Minecraft:
    Zabelov
    А то, что у тебя действие эффекта - 10 тиков (полсекунды), тебя не смущает?
     

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