From a9ff27a2a0bf052338420a0804a36160d86bf239 Mon Sep 17 00:00:00 2001 From: Mahagon Date: Sun, 15 Feb 2015 17:15:46 +0100 Subject: [PATCH] fireball logging did not work with 1.8 --- src/main/java/de/diddiz/LogBlock/Actor.java | 19 ++++++++++++++++--- .../LogBlock/listeners/ExplosionLogging.java | 17 ++++++++++------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/main/java/de/diddiz/LogBlock/Actor.java b/src/main/java/de/diddiz/LogBlock/Actor.java index ab12a30..1c7af16 100644 --- a/src/main/java/de/diddiz/LogBlock/Actor.java +++ b/src/main/java/de/diddiz/LogBlock/Actor.java @@ -1,13 +1,15 @@ package de.diddiz.LogBlock; import static de.diddiz.util.BukkitUtils.entityName; -import org.bukkit.entity.Entity; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; import java.sql.ResultSet; import java.sql.SQLException; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.projectiles.ProjectileSource; + public class Actor { @Override @@ -69,6 +71,16 @@ public class Actor { return new Actor(entity.getName()); } + + public static Actor actorFromProjectileSource(ProjectileSource psource) { + if (psource instanceof Player) { + Player player = ((Player) psource).getPlayer(); + return new Actor(player.getName(),player.getUniqueId().toString()); + } else { + return new Actor(psource.toString()); + } + } + public static boolean isValidUUID(String uuid) { try { java.util.UUID.fromString(uuid); @@ -82,4 +94,5 @@ public class Actor { return "log_" + name; } + } diff --git a/src/main/java/de/diddiz/LogBlock/listeners/ExplosionLogging.java b/src/main/java/de/diddiz/LogBlock/listeners/ExplosionLogging.java index c2d6bac..4d9bb66 100644 --- a/src/main/java/de/diddiz/LogBlock/listeners/ExplosionLogging.java +++ b/src/main/java/de/diddiz/LogBlock/listeners/ExplosionLogging.java @@ -1,12 +1,9 @@ package de.diddiz.LogBlock.listeners; -import de.diddiz.LogBlock.Actor; -import de.diddiz.LogBlock.LogBlock; -import de.diddiz.LogBlock.Logging; import static de.diddiz.LogBlock.config.Config.getWorldConfig; import static de.diddiz.LogBlock.config.Config.logCreeperExplosionsAsPlayerWhoTriggeredThese; -import de.diddiz.LogBlock.config.WorldConfig; import static de.diddiz.util.BukkitUtils.getContainerBlocks; + import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.Sign; @@ -23,6 +20,12 @@ import org.bukkit.entity.minecart.ExplosiveMinecart; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.projectiles.ProjectileSource; + +import de.diddiz.LogBlock.Actor; +import de.diddiz.LogBlock.LogBlock; +import de.diddiz.LogBlock.Logging; +import de.diddiz.LogBlock.config.WorldConfig; public class ExplosionLogging extends LoggingListener { @@ -57,7 +60,7 @@ public class ExplosionLogging extends LoggingListener new Actor("Creeper"); } else if (source instanceof Fireball) { Fireball fireball = (Fireball) source; - Entity shooter = fireball.getShooter(); + ProjectileSource shooter = fireball.getShooter(); if (shooter == null) { return; } @@ -65,12 +68,12 @@ public class ExplosionLogging extends LoggingListener if (!wcfg.isLogging(Logging.GHASTFIREBALLEXPLOSION)) { return; } - actor = Actor.actorFromEntity(shooter); + actor = Actor.actorFromProjectileSource(shooter); } else if (shooter instanceof Wither) { if (!wcfg.isLogging(Logging.WITHER)) { return; } - actor = Actor.actorFromEntity(shooter); + actor = Actor.actorFromProjectileSource(shooter); } } else if (source instanceof EnderDragon) { if (!wcfg.isLogging(Logging.ENDERDRAGON))