Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите отследить смерть

Статус
Закрыто для дальнейших ответов.

energy455

Активный участник
Пользователь
Баллы
78
Привет, пробовал искать но ничего не нашел, так же хотел в других плагинах посмотреть исходный код, но не получилось :(

Нужно отловить от чего умер плеер, если от игрока, то имя игркоа, если от моба, то тип моба.

Подскажите в каком евенте можно сделать?
Хотел через playerDeathEvent, но там нету)
 
PlayerDeathEvent

EntityDamageEvent damevent = player.getLastDamageCause();
DamageCause = damevent.getCause();

Ответ на КАЖДЫЙ из созданных Вами тредов можно найти после пяти минут гугла/чтения доков.
В следующий раз, создавая подобные треды, убедитесь, что приложили хоть какие-то усилия для поиска ответа самостоятельно.
http://www.javaminecraft.com/bukkitapi/
 
PlayerDeathEvent

EntityDamageEvent damevent = player.getLastDamageCause();
DamageCause = damevent.getCause();

Ответ на КАЖДЫЙ из созданных Вами тредов можно найти после пяти минут гугла/чтения доков.
В следующий раз, создавая подобные треды, убедитесь, что приложили хоть какие-то усилия для поиска ответа самостоятельно.
http://www.javaminecraft.com/bukkitapi/
лучше расскажите, можно ли открыть чужой плагин и посомтреть исходный код?
 
В следующий раз, создавая подобные треды, убедитесь, что приложили хоть какие-то усилия для поиска ответа самостоятельно.
http://www.javaminecraft.com/bukkitapi/
лучше расскажите, можно ли открыть чужой плагин и посомтреть исходный код?
 
лучше расскажите, можно ли открыть чужой плагин и посомтреть исходный код?

Конечно можно. Поищите декомпиляторы Java. Они не всегда хорошо работают, но код показывают )
 
Код:
@EventHandler
    public void onPlayerDeath(PlayerDeathEvent e){
        Player p = e.getEntity();
        EntityDamageEvent damevent = p.getLastDamageCause();
        DamageCause cause = damevent.getCause();
       
        if (cause == DamageCause.ENTITY_ATTACK){
            LivingEntity killer = p.getKiller();
            if (killer instanceof Player){
                Player pkiller = (Player) killer;
                e.setDeathMessage("Игрок " + p.getName() + " был убит игроком " + pkiller.getName());
            }else{
                e.setDeathMessage("Игрок " + p.getName() + " был убит " + killer.getType().toString());
            }
        }
    }
 
Код:
@EventHandler
    public void onPlayerDeath(PlayerDeathEvent e){
        Player p = e.getEntity();
        EntityDamageEvent damevent = p.getLastDamageCause();
        DamageCause cause = damevent.getCause();
      
        if (cause == DamageCause.ENTITY_ATTACK){
            LivingEntity killer = p.getKiller();
            if (killer instanceof Player){
                Player pkiller = (Player) killer;
                e.setDeathMessage("Игрок " + p.getName() + " был убит игроком " + pkiller.getName());
            }else{
                e.setDeathMessage("Игрок " + p.getName() + " был убит " + killer.getType().toString());
            }
        }
    }
спасибо)
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх