From 2269a3402389165f8594a8aefccb6b255c628628 Mon Sep 17 00:00:00 2001 From: TylerS1066 Date: Wed, 24 Jul 2024 20:59:31 -0500 Subject: [PATCH] Add options to disable spawning of tnt --- .../combat/features/tracking/DamageTracking.java | 4 ++++ .../combat/features/tracking/TNTTracking.java | 16 +++++++++++++--- src/main/resources/config.yml | 2 ++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/countercraft/movecraft/combat/features/tracking/DamageTracking.java b/src/main/java/net/countercraft/movecraft/combat/features/tracking/DamageTracking.java index 0afed88c..ebce4566 100644 --- a/src/main/java/net/countercraft/movecraft/combat/features/tracking/DamageTracking.java +++ b/src/main/java/net/countercraft/movecraft/combat/features/tracking/DamageTracking.java @@ -24,6 +24,8 @@ public class DamageTracking implements Listener { public static boolean EnableFireballTracking = false; public static boolean EnableTNTTracking = true; public static boolean EnableTorpedoTracking = false; + public static boolean DisableSinkingCraftTNT = true; + public static boolean DisableDisabledCraftTNT = false; public static int DamageTimeout = 300; private final Map> damageRecords = new HashMap<>(); @@ -31,6 +33,8 @@ public static void load(@NotNull FileConfiguration config) { EnableFireballTracking = config.getBoolean("EnableFireballTracking", false); EnableTNTTracking = config.getBoolean("EnableTNTTracking", true); EnableTorpedoTracking = config.getBoolean("EnableTorpedoTracking", false); + DisableSinkingCraftTNT = config.getBoolean("DisableSinkingCraftTNT", true); + DisableDisabledCraftTNT = config.getBoolean("DisableDisabledCraftTNT", false); DamageTimeout = config.getInt("DamageTimeout", 300); } diff --git a/src/main/java/net/countercraft/movecraft/combat/features/tracking/TNTTracking.java b/src/main/java/net/countercraft/movecraft/combat/features/tracking/TNTTracking.java index 89cbb86c..8ec6948c 100644 --- a/src/main/java/net/countercraft/movecraft/combat/features/tracking/TNTTracking.java +++ b/src/main/java/net/countercraft/movecraft/combat/features/tracking/TNTTracking.java @@ -9,6 +9,7 @@ import net.countercraft.movecraft.craft.Craft; import net.countercraft.movecraft.craft.CraftManager; import net.countercraft.movecraft.craft.PlayerCraft; +import net.countercraft.movecraft.craft.SinkingCraft; import net.countercraft.movecraft.util.MathUtils; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -81,16 +82,25 @@ private Vector getTNTVector() { } @EventHandler - public void onEntitySpawn (@NotNull EntitySpawnEvent e) { + public void onEntitySpawn(@NotNull EntitySpawnEvent e) { if (!DamageTracking.EnableTNTTracking) return; - if(!e.getEntityType().equals(EntityType.PRIMED_TNT)) + if (!e.getEntityType().equals(EntityType.PRIMED_TNT)) return; - TNTPrimed tnt = (TNTPrimed)e.getEntity(); + TNTPrimed tnt = (TNTPrimed) e.getEntity(); // Find nearest craft Craft craft = MathUtils.fastNearestCraftToLoc(CraftManager.getInstance().getCrafts(), tnt.getLocation()); + if (craft instanceof SinkingCraft && DamageTracking.DisableSinkingCraftTNT) { + e.setCancelled(true); + return; + } + else if (craft != null && craft.getDisabled() && DamageTracking.DisableDisabledCraftTNT) { + e.setCancelled(true); + return; + } + if (!(craft instanceof PlayerCraft)) return; if (!craft.getHitBox().contains(MathUtils.bukkit2MovecraftLoc(tnt.getLocation()))) { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 0a48ca7c..0031a578 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -58,6 +58,8 @@ ExplosionParticles: VILLAGER_ANGRY # Particle to use for particle tracer explosi EnableFireballTracking: false # Enable tracking and recording of fireballs (higher lag than other tracking methods) EnableTNTTracking: false # Enable tracking and recording of TNT damage EnableTorpedoTracking: false # Enable tracking and recording of Torpedo damage +DisableSinkingCraftTNT: true # Disable spawning of TNT from sinking crafts +DisableDisabledCraftTNT: false # Disable spawning of TNT from disabled crafts DamageTimeout: 300 # Timeout for damages in seconds # Combat Release Tracking