From 8b1ee254b40a010490e51b24f909a316686f6744 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Sat, 23 Feb 2019 18:17:14 +0100 Subject: [PATCH] Fix NPE when entities die without a damager Fixes #745 --- .../LogBlock/listeners/AdvancedEntityLogging.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/diddiz/LogBlock/listeners/AdvancedEntityLogging.java b/src/main/java/de/diddiz/LogBlock/listeners/AdvancedEntityLogging.java index d4d2c18..baa1cb4 100644 --- a/src/main/java/de/diddiz/LogBlock/listeners/AdvancedEntityLogging.java +++ b/src/main/java/de/diddiz/LogBlock/listeners/AdvancedEntityLogging.java @@ -160,12 +160,16 @@ public class AdvancedEntityLogging extends LoggingListener { public void onEntityDeath(EntityDeathEvent event) { LivingEntity entity = event.getEntity(); if (Config.isLogging(entity.getWorld(), EntityLogging.DESTROY, entity)) { - Actor actor; + Actor actor = null; EntityDamageEvent lastDamage = entity.getLastDamageCause(); if (lastDamage instanceof EntityDamageByEntityEvent) { - actor = Actor.actorFromEntity(((EntityDamageByEntityEvent) lastDamage).getDamager()); - } else { - actor = new Actor(lastDamage.getCause().toString()); + Entity damager = ((EntityDamageByEntityEvent) lastDamage).getDamager(); + if (damager != null) { + actor = Actor.actorFromEntity(damager); + } + } + if (actor == null) { + actor = new Actor(lastDamage == null ? "UNKNOWN" : lastDamage.getCause().toString()); } queueEntitySpawnOrKill(entity, actor, EntityChange.EntityChangeType.KILL); }