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

Помогите Сообщение о смерти от руки игрока(Постоянно NPE)

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

Rider3217

Активный участник
Пользователь
Баллы
98
Имя в Minecraft
Planet0111
Я хотел что бы когда тебя убил игрок писало сообщение что ты умер от того то игрока.
Но когда убивает моб, консоль страдает.
Делал проверки "убил ли игрок" не помогло.
Пробовал делать через getEnityType().name();, тоже фигня(Это я делал просто что бы показало кто убил моб,игрок и тд).

if((this.getConfig().getBoolean("deathmplus")== true) && (this.getConfig().getBoolean("deathm")== false)){
String p = e.getEntity().getName();
Player pl = e.getEntity();
String kill = e.getEntity().getKiller().getName();
String prefix = PermissionsEx.getUser(pl).getPrefix().replace("&", "§");
if ((!pl.isOp()) && (pl.hasPermission("бла")) && (!p.equals("бла"))){
e.setDeathMessage(this.deathp.replaceAll("%prefix%", prefix).replaceAll("%name%", pl.getName()).replaceAll("%killer%", kill));
}else{
e.setDeathMessage(null);
}
 
Последнее редактирование:
Java:
    private Entity getKiller(EntityDeathEvent event) {
        EntityDamageEvent entityDamageEvent = event.getEntity()
                .getLastDamageCause();
        if ((entityDamageEvent != null) && !entityDamageEvent.isCancelled()
                && (entityDamageEvent instanceof EntityDamageByEntityEvent)) {
            Entity damager = ((EntityDamageByEntityEvent) entityDamageEvent)
                    .getDamager();
            if (damager instanceof Projectile) {
                LivingEntity shooter = ((Projectile) damager).getShooter();
                if (shooter != null)
                    return shooter;
            }
            return damager;
        }
        return null;
    }
Метод для получения убийцы
 
Java:
    private Entity getKiller(EntityDeathEvent event) {
        EntityDamageEvent entityDamageEvent = event.getEntity()
                .getLastDamageCause();
        if ((entityDamageEvent != null) && !entityDamageEvent.isCancelled()
                && (entityDamageEvent instanceof EntityDamageByEntityEvent)) {
            Entity damager = ((EntityDamageByEntityEvent) entityDamageEvent)
                    .getDamager();
            if (damager instanceof Projectile) {
                LivingEntity shooter = ((Projectile) damager).getShooter();
                if (shooter != null)
                    return shooter;
            }
            return damager;
        }
        return null;
    }
Метод для получения убийцы
А p.getKiller() не работает?
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх