From b9b4d0d2041940c202faab250e188212d2e80aef Mon Sep 17 00:00:00 2001 From: Andreas Troelsen Date: Sat, 12 Feb 2022 23:53:04 +0100 Subject: [PATCH] Replace metadata "planter" logic with TNT primed source. Now that MobArena sets the TNTPrimed source on auto-ignited TNT, the "planter" logic becomes _somewhat_ obsolete. This is due to the fact that manually ignited TNT blocks produce a TNTPrimed entity with the source property set to the player that ignited the block. Because the "planter" logic in the BlockIgniteEvent handler didn't actually work, this change shouldn't actually do anything in that regard. That is, a TNT block ignited by a player would still have that player as its source regardless of who the planter was, because the procedure that would have otherwise set the planter of the TNTPrimed entity never ran. --- .../garbagemule/MobArena/ArenaListener.java | 21 +------------------ 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/src/main/java/com/garbagemule/MobArena/ArenaListener.java b/src/main/java/com/garbagemule/MobArena/ArenaListener.java index 3383968..3e157a3 100644 --- a/src/main/java/com/garbagemule/MobArena/ArenaListener.java +++ b/src/main/java/com/garbagemule/MobArena/ArenaListener.java @@ -91,9 +91,6 @@ import org.bukkit.material.Attachable; import org.bukkit.material.Bed; import org.bukkit.material.Door; import org.bukkit.material.Redstone; -import org.bukkit.metadata.FixedMetadataValue; -import org.bukkit.metadata.MetadataValue; -import org.bukkit.metadata.Metadatable; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.projectiles.ProjectileSource; @@ -287,10 +284,8 @@ public class ArenaListener stack.setAmount(stack.getAmount() - 1); TNTPrimed tnt = b.getWorld().spawn(b.getRelative(BlockFace.UP).getLocation(), TNTPrimed.class); tnt.setSource(event.getPlayer()); - setPlanter(tnt, event.getPlayer()); return; } - setPlanter(b, event.getPlayer()); } // Any other block we don't care about if we're not protecting @@ -307,20 +302,6 @@ public class ArenaListener } } - private void setPlanter(Metadatable tnt, Player planter) { - tnt.setMetadata("mobarena-planter", new FixedMetadataValue(plugin, planter)); - } - - private Player getPlanter(Metadatable tnt) { - List values = tnt.getMetadata("mobarena-planter"); - for (MetadataValue value : values) { - if (value.getOwningPlugin().equals(plugin)) { - return (Player) value.value(); - } - } - return null; - } - public void onBlockForm(BlockFormEvent event) { // If the arena isn't protected, care if (!protect) return; @@ -672,7 +653,7 @@ public class ArenaListener } if (damager instanceof TNTPrimed) { - damager = getPlanter(damager); + damager = ((TNTPrimed) damager).getSource(); } }