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

Помогите Список эффектов стрелы (1.15.2)

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

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

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

    Баллы:
    76
    Как получить список эффектов стрелы в событии "EntityDamageByEntityEvent"?
    Мне удалось получить только один эффект.
    Код:
    @EventHandler
    
        public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
            if(event.getEntity() instanceof Player) {
                if (event.getCause().equals(EntityDamageEvent.DamageCause.PROJECTILE)) {
                    if(event.getDamager().getType().equals(EntityType.ARROW)) {
                        Arrow arrow = (Arrow) event.getDamager();
                        PotionEffectType effecttype = arrow.getBasePotionData().getType().getEffectType();
                        Player player = (Player) event.getEntity();
                        Location playerlocation = player.getLocation();
                        player.sendMessage("EffectType: " + effecttype.getName());
                    }
                }
            }
        }
     
  2. HauserGrim

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

    Баллы:
    96
    Ошибочка. Неправильно понял вопрос.*
     
    Последнее редактирование: 24 май 2020
  3. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    arrow.getCustomEffects()
     
  4. Автор темы
    Bomb

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

    Баллы:
    76
    Спасибо всем, вопрос решился. Дело в том что я думал что getCustomEffects() не работает потому что я проверял его ванильным эффектом черепашьей мощи который не является CustomEffect но у него 2 эффекта медлительность и сопротивление которые через getBasePotionData() не получить. Похоже что это API нуждается в переработке так как начали появиться ванильные стрелы с несколькими эффектами.
     
  5. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Нет, всё правильно. Как и у зелий, база также отвечает за название и цвет наконечника в инвентаре. Это прописано в ванили, и отказаться от этого было бы не самым верным решением.
     
  6. Автор темы
    Bomb

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

    Баллы:
    76
    Я имел ввиду что
    Код:
    PotionEffectType effecttype = arrow.getBasePotionData().getType().getEffectType();
    лучше было бы заменить на лист так как появились зелья и стрелы с 2 эффектами
    Код:
    List<PotionEffectType> effecttypes = arrow.getBasePotionData().getType().getEffectTypes();
     
  7. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Хм, и правда. Советую написать об этом им самим.
     

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