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

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

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

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

    Kloper Ньюби

    Баллы:
    1
    Имя в Minecraft:
    timqxikzz
    Привет ребята, пишу плагин и нужно на предмет когда он в руке наложить эффект. Пробовал через 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. Mr Hosting
  3. NN_KOF3STx

    NN_KOF3STx Ньюби Пользователь

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

    Kloper Ньюби

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

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

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

    NN_KOF3STx Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    NN_KOF3STx
    Код:
    @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)); //Иначе добавить эффект
    }
     
  7. zabelov

    zabelov Участник Пользователь

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

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