From c940dfc05ae555eb9e795402023b72ee775e1f34 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Thu, 26 Aug 2021 21:16:40 +0200 Subject: [PATCH] Store the acting entity object in the actor class --- src/main/java/de/diddiz/LogBlock/Actor.java | 30 +++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/diddiz/LogBlock/Actor.java b/src/main/java/de/diddiz/LogBlock/Actor.java index 1b48b25..e8f3b79 100644 --- a/src/main/java/de/diddiz/LogBlock/Actor.java +++ b/src/main/java/de/diddiz/LogBlock/Actor.java @@ -33,29 +33,41 @@ public class Actor { final String name; final String UUID; final Location blockLocation; + final Entity entity; public Actor(String name, String UUID) { this.name = name; this.UUID = UUID == null ? "unknown" : (UUID.length() > 36 ? UUID.substring(0, 36) : UUID); this.blockLocation = null; + this.entity = null; } public Actor(String name, String UUID, Block block) { this.name = name; this.UUID = UUID == null ? "unknown" : (UUID.length() > 36 ? UUID.substring(0, 36) : UUID); this.blockLocation = block == null ? null : block.getLocation(); + this.entity = null; } public Actor(String name, java.util.UUID UUID) { this.name = name; this.UUID = UUID.toString(); this.blockLocation = null; + this.entity = null; } public Actor(String name, java.util.UUID UUID, Block block) { this.name = name; this.UUID = UUID.toString(); this.blockLocation = block == null ? null : block.getLocation(); + this.entity = null; + } + + public Actor(String name, java.util.UUID UUID, Entity entity) { + this.name = name; + this.UUID = UUID.toString(); + this.blockLocation = null; + this.entity = entity; } public Actor(String name) { @@ -66,6 +78,13 @@ public class Actor { this(name, generateUUID(name), block); } + public Actor(String name, Entity entity) { + this.name = name; + this.UUID = generateUUID(name); + this.blockLocation = null; + this.entity = entity; + } + public Actor(ResultSet rs) throws SQLException { this(rs.getString("playername"), rs.getString("UUID")); } @@ -82,9 +101,16 @@ public class Actor { return blockLocation; } + /** + * The acting entity object (if known) + */ + public Entity getEntity() { + return entity; + } + public static Actor actorFromEntity(Entity entity) { if (entity instanceof Player) { - return new Actor(entityName(entity), entity.getUniqueId()); + return new Actor(entityName(entity), entity.getUniqueId(), entity); } if (entity instanceof Projectile) { ProjectileSource shooter = ((Projectile) entity).getShooter(); @@ -92,7 +118,7 @@ public class Actor { return actorFromProjectileSource(shooter); } } - return new Actor(entityName(entity)); + return new Actor(entityName(entity), entity); } @Deprecated