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

EntityDeathEvent getKiller

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

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

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

    Баллы:
    66
    Как проверить от какого энтити сдох энтити? Так типо вообще можно? Нужно проверить именнно смерть от крипера, e.getEntity().getLastDamageCause().getCause() - дает ENTITY_EXPLOSION , он такой при смерти от тнт, и тд, не ток от крипера
    e.getEntity().getKiller() instanceof Creeper - дает null , либо я тупой, либо оно не работает
     
  2. alexandrage

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

    Баллы:
    173
    Ну все правильно да, смерть от взрыва.
     
  3. ifxandy

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

    Баллы:
    76
    Имя в Minecraft:
    witwar
    Насколько помню, getKiller возвращает только Player если убийца игрок и Null если убийцы нету/убийца не игрок.
     
  4. Автор темы
    Ant1m0

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

    Баллы:
    66
    Ну типо бля, при той же смерти допустим пишет
    Был взорван Creeper|Player или тд, это можно как нибудь проверить?
     
  5. Автор темы
    Ant1m0

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

    Баллы:
    66
    Да
     
  6. ifxandy

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

    Баллы:
    76
    Имя в Minecraft:
    witwar
    Попробуй
    Код:
    e.getEntity().getLastDamageCause().getEntity();
     
  7. Автор темы
    Ant1m0

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

    Баллы:
    66
    null, пробовал
     
  8. ifxandy

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

    Баллы:
    76
    Имя в Minecraft:
    witwar
    Можно попробовать использовать EntityDamageByEntityEvent и проверять умер ли Entity самостоятельно

    Код:
    Entity damager = e.getDamager(); // Тот кто нанёс урон
    Entity damaged = e.getEntity(); // Жертва
    
    if(damaged.getHealth() <= e.getDamage()) {
        // Damaged мёртв.
    }
     
  9. Автор темы
    Ant1m0

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

    Баллы:
    66
    Попробую, спасибо
     
Статус темы:
Закрыта.

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