From 6dc5137a8674066355eb1bcdece3f19a5a1f7dd0 Mon Sep 17 00:00:00 2001 From: Grassboii <102272841+Grassboii@users.noreply.github.com> Date: Sun, 1 Dec 2024 23:08:37 -0500 Subject: [PATCH 1/9] Create config --- src/main/java/com/johnymuffin/beta/tntcontrol/config | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/main/java/com/johnymuffin/beta/tntcontrol/config diff --git a/src/main/java/com/johnymuffin/beta/tntcontrol/config b/src/main/java/com/johnymuffin/beta/tntcontrol/config new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/main/java/com/johnymuffin/beta/tntcontrol/config @@ -0,0 +1 @@ + From 9398ac58f02594b0cee9f09e1c86bee3d58215d6 Mon Sep 17 00:00:00 2001 From: Grassboii <102272841+Grassboii@users.noreply.github.com> Date: Sun, 1 Dec 2024 23:09:27 -0500 Subject: [PATCH 2/9] Delete src/main/java/com/johnymuffin/beta/tntcontrol/config --- src/main/java/com/johnymuffin/beta/tntcontrol/config | 1 - 1 file changed, 1 deletion(-) delete mode 100644 src/main/java/com/johnymuffin/beta/tntcontrol/config diff --git a/src/main/java/com/johnymuffin/beta/tntcontrol/config b/src/main/java/com/johnymuffin/beta/tntcontrol/config deleted file mode 100644 index 8b13789..0000000 --- a/src/main/java/com/johnymuffin/beta/tntcontrol/config +++ /dev/null @@ -1 +0,0 @@ - From 78f35a513cae648117a2ab75efc2a20c8299153a Mon Sep 17 00:00:00 2001 From: Grassboii <102272841+Grassboii@users.noreply.github.com> Date: Sun, 1 Dec 2024 23:12:53 -0500 Subject: [PATCH 3/9] Explosion Control 1.0.4 --- .../beta/tntcontrol/ExplosionControl.java | 37 ++++++++++++------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControl.java b/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControl.java index 40a0662..60d75a7 100644 --- a/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControl.java +++ b/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControl.java @@ -1,8 +1,12 @@ package com.johnymuffin.beta.tntcontrol; -import java.util.ArrayList; +import java.io.File; import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; import java.util.logging.Logger; + +import com.johnymuffin.beta.tntcontrol.config.ExplosionControlSettings; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.plugin.Plugin; @@ -16,25 +20,38 @@ public class ExplosionControl extends JavaPlugin { private ExplosionControl plugin; - private ArrayList blockWhitelist = new ArrayList<>(Arrays.asList(Material.DIRT, + private ExplosionControlSettings settings; + + public static final Set blockWhitelist = new HashSet<>(Arrays.asList(Material.DIRT, Material.STONE, Material.GRAVEL, Material.COBBLESTONE, Material.COAL_ORE, Material.REDSTONE_ORE, Material.GLOWING_REDSTONE_ORE, Material.IRON_ORE, Material.DIAMOND_ORE, Material.GOLD_ORE, Material.LAPIS_ORE, Material.GRASS, Material.LONG_GRASS, Material.SAND, Material.SANDSTONE, Material.SAPLING, Material.LOG, Material.LEAVES, Material.DEAD_BUSH, Material.YELLOW_FLOWER, Material.RED_ROSE, Material.RED_MUSHROOM, Material.BROWN_MUSHROOM, Material.TORCH, Material.SNOW, - Material.CACTUS, Material.CLAY, Material.SUGAR_CANE_BLOCK, Material.ICE)); + Material.CACTUS, Material.CLAY, Material.SUGAR_CANE_BLOCK, Material.ICE, Material.TNT, Material.FIRE, + Material.LAVA, Material.WATER, Material.STATIONARY_LAVA, Material.STATIONARY_WATER)); - private ArrayList blockCheckBlacklist = new ArrayList<>(Arrays.asList(Material.DIODE_BLOCK_OFF, Material.DIODE_BLOCK_ON, + public static final Set blockBlacklist = new HashSet<>(Arrays.asList(Material.DIODE_BLOCK_OFF, Material.DIODE_BLOCK_ON, Material.STONE_BUTTON, Material.LEVER, Material.RAILS, Material.DETECTOR_RAIL, Material.POWERED_RAIL, Material.REDSTONE_WIRE, Material.REDSTONE_TORCH_OFF, Material.REDSTONE_TORCH_ON, Material.SIGN_POST, Material.WOOD_PLATE, Material.STONE_PLATE, Material.WOODEN_DOOR, Material.IRON_DOOR_BLOCK, Material.CAKE_BLOCK, - Material.WALL_SIGN, Material.TRAP_DOOR, Material.LADDER)); + Material.WALL_SIGN, Material.TRAP_DOOR, Material.LADDER, Material.SUGAR_CANE_BLOCK, Material.WATER, Material.STATIONARY_WATER, + Material.LAVA, Material.STATIONARY_LAVA, Material.SAPLING)); public void onEnable() { log = getServer().getLogger(); this.plugin = this; pdf = this.plugin.getDescription(); log.info("[" + pdf.getName() + "] Is loading"); + + File dataFolder = plugin.getDataFolder(); + if (!dataFolder.exists() && dataFolder.mkdir()) { + dataFolder.mkdir(); + } + + File configFile = new File(dataFolder, "settings.yml"); + settings = new ExplosionControlSettings(configFile); + ExplosionControlListener explosionControlListener = new ExplosionControlListener(this.plugin); Bukkit.getServer().getPluginManager().registerEvents(explosionControlListener, (Plugin)this.plugin); } @@ -47,11 +64,5 @@ public static void logInfo(String s) { log.info("[" + pdf.getName() + "] " + s); } - public ArrayList getBlockWhitelist() { - return this.blockWhitelist; - } - - public ArrayList getBlockCheckBlacklist() { - return this.blockCheckBlacklist; - } -} \ No newline at end of file + public ExplosionControlSettings getSettings() { return settings; } +} From 0cacb418f5af5c07e66b54421b4e0cf3f409685d Mon Sep 17 00:00:00 2001 From: Grassboii <102272841+Grassboii@users.noreply.github.com> Date: Sun, 1 Dec 2024 23:13:10 -0500 Subject: [PATCH 4/9] Explosion Control 1.0.4 --- .../tntcontrol/ExplosionControlListener.java | 112 ++++++++++++++---- 1 file changed, 86 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControlListener.java b/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControlListener.java index 2594235..2ef3a36 100644 --- a/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControlListener.java +++ b/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControlListener.java @@ -1,6 +1,8 @@ package com.johnymuffin.beta.tntcontrol; import java.util.ArrayList; + +import com.johnymuffin.beta.tntcontrol.config.ExplosionControlSettings; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; @@ -11,11 +13,36 @@ import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityExplodeEvent; +import static com.johnymuffin.beta.tntcontrol.ExplosionControl.blockBlacklist; +import static com.johnymuffin.beta.tntcontrol.ExplosionControl.blockWhitelist; + public class ExplosionControlListener implements Listener { private ExplosionControl plugin; + private long lastResetTime = System.currentTimeMillis(); + private int explosionCount = 0; + + private ExplosionControlSettings settings; + + private final boolean tntChainingEnabled; + private final int tntChainingMaximum; + private final long tntChainingDurationMilliseconds; + + private final boolean tntBehaviorCancelNonWhitelist; + private final boolean tntBehaviorUseTNTWhitelist; + private final boolean tntBehaviorIgnoreSingleBlockPopOff; public ExplosionControlListener(ExplosionControl plugin) { this.plugin = plugin; + settings = plugin.getSettings(); + + // Load Config Values + tntChainingEnabled = settings.getConfigBoolean("settings.tnt-chaining.enabled"); + tntChainingMaximum = settings.getConfigInteger("settings.tnt-chaining.maximum"); + tntChainingDurationMilliseconds = settings.getConfigLong("settings.tnt-chaining.duration-milliseconds"); + + tntBehaviorCancelNonWhitelist = settings.getConfigBoolean("settings.tnt-behavior.cancel-entire-explosion-if-non-whitelisted.enabled"); + tntBehaviorUseTNTWhitelist = settings.getConfigBoolean("settings.tnt-behavior.use-tnt-whitelist.enabled"); + tntBehaviorIgnoreSingleBlockPopOff = settings.getConfigBoolean("settings.tnt-behavior.ignore-single-if-block-pop-off.enabled"); } @EventHandler @@ -29,40 +56,73 @@ public void onExplode(EntityExplodeEvent event) { event.setCancelled(true); return; } + + if(tntChainingEnabled){ + long currentTime = System.currentTimeMillis(); + + if (currentTime - lastResetTime >= tntChainingDurationMilliseconds) { + lastResetTime = currentTime; + explosionCount = 0; + } + } + ArrayList blocksToRemove = new ArrayList<>(); for (Block b : event.blockList()) { -// if (b.getLocation().getBlockY() >= 128) { -// blocksToRemove.add(b); -// continue; -// } - if (!this.plugin.getBlockWhitelist().contains(b.getType())){ - blocksToRemove.add(b); - continue; - } + Material type = b.getType(); - ArrayList blockCheckBlacklist = this.plugin.getBlockCheckBlacklist(); - if(blockCheckBlacklist.contains(b.getRelative(0, 1, 0).getType())){ - blocksToRemove.add(b); - continue; + if(tntBehaviorCancelNonWhitelist){ + if (!blockWhitelist.contains(type)){ + event.setCancelled(true); + return; + } } - if(blockCheckBlacklist.contains(b.getRelative(1, 0, 0).getType())){ - blocksToRemove.add(b); - continue; + else if(tntBehaviorUseTNTWhitelist){ + if (!blockWhitelist.contains(type)){ + blocksToRemove.add(b); + continue; + } } - if(blockCheckBlacklist.contains(b.getRelative(-1, 0, 0).getType())){ - blocksToRemove.add(b); - continue; + + if(tntBehaviorIgnoreSingleBlockPopOff) { + if(blockBlacklist.contains(b.getRelative(0, 1, 0).getType())){ + blocksToRemove.add(b); + continue; + } + if(blockBlacklist.contains(b.getRelative(1, 0, 0).getType())){ + blocksToRemove.add(b); + continue; + } + if(blockBlacklist.contains(b.getRelative(-1, 0, 0).getType())){ + blocksToRemove.add(b); + continue; + } + if(blockBlacklist.contains(b.getRelative(0, 0, 1).getType())){ + blocksToRemove.add(b); + continue; + } + if(blockBlacklist.contains(b.getRelative(0, 0, -1).getType())){ + blocksToRemove.add(b); + } } - if(blockCheckBlacklist.contains(b.getRelative(0, 0, 1).getType())){ - blocksToRemove.add(b); - continue; + + if(tntChainingEnabled){ + if(type == Material.TNT){ + if (explosionCount >= tntChainingMaximum) { + blocksToRemove.add(b); + } + else{ + explosionCount++; + } + } } - if(blockCheckBlacklist.contains(b.getRelative(0, 0, 1).getType())){ - blocksToRemove.add(b); + else{ + if(type == Material.TNT){ + blocksToRemove.add(b); + } } } - for (Block b : blocksToRemove) - event.blockList().remove(b); + + event.blockList().removeAll(blocksToRemove); } @EventHandler @@ -76,4 +136,4 @@ public void onEntityDamageByBlock(EntityDamageByBlockEvent event) { if (event.getCause() == EntityDamageEvent.DamageCause.BLOCK_EXPLOSION) event.setCancelled(true); } -} \ No newline at end of file +} From 621d9abcbbf22402b562aa184c2ea6115c031da1 Mon Sep 17 00:00:00 2001 From: Grassboii <102272841+Grassboii@users.noreply.github.com> Date: Sun, 1 Dec 2024 23:14:27 -0500 Subject: [PATCH 5/9] Create ExplosionControlSettings.java --- .../config/ExplosionControlSettings.java | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 src/main/java/com/johnymuffin/beta/tntcontrol/config/ExplosionControlSettings.java diff --git a/src/main/java/com/johnymuffin/beta/tntcontrol/config/ExplosionControlSettings.java b/src/main/java/com/johnymuffin/beta/tntcontrol/config/ExplosionControlSettings.java new file mode 100644 index 0000000..2ef3a36 --- /dev/null +++ b/src/main/java/com/johnymuffin/beta/tntcontrol/config/ExplosionControlSettings.java @@ -0,0 +1,139 @@ +package com.johnymuffin.beta.tntcontrol; + +import java.util.ArrayList; + +import com.johnymuffin.beta.tntcontrol.config.ExplosionControlSettings; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.block.Block; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageByBlockEvent; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityExplodeEvent; + +import static com.johnymuffin.beta.tntcontrol.ExplosionControl.blockBlacklist; +import static com.johnymuffin.beta.tntcontrol.ExplosionControl.blockWhitelist; + +public class ExplosionControlListener implements Listener { + private ExplosionControl plugin; + private long lastResetTime = System.currentTimeMillis(); + private int explosionCount = 0; + + private ExplosionControlSettings settings; + + private final boolean tntChainingEnabled; + private final int tntChainingMaximum; + private final long tntChainingDurationMilliseconds; + + private final boolean tntBehaviorCancelNonWhitelist; + private final boolean tntBehaviorUseTNTWhitelist; + private final boolean tntBehaviorIgnoreSingleBlockPopOff; + + public ExplosionControlListener(ExplosionControl plugin) { + this.plugin = plugin; + settings = plugin.getSettings(); + + // Load Config Values + tntChainingEnabled = settings.getConfigBoolean("settings.tnt-chaining.enabled"); + tntChainingMaximum = settings.getConfigInteger("settings.tnt-chaining.maximum"); + tntChainingDurationMilliseconds = settings.getConfigLong("settings.tnt-chaining.duration-milliseconds"); + + tntBehaviorCancelNonWhitelist = settings.getConfigBoolean("settings.tnt-behavior.cancel-entire-explosion-if-non-whitelisted.enabled"); + tntBehaviorUseTNTWhitelist = settings.getConfigBoolean("settings.tnt-behavior.use-tnt-whitelist.enabled"); + tntBehaviorIgnoreSingleBlockPopOff = settings.getConfigBoolean("settings.tnt-behavior.ignore-single-if-block-pop-off.enabled"); + } + + @EventHandler + public void onExplode(EntityExplodeEvent event) { + if (event.isCancelled()) + return; + Location location = event.getLocation(); + if (location.getWorld().getEnvironment().equals(World.Environment.NETHER)) + return; + if (!location.getWorld().getEnvironment().equals(World.Environment.NORMAL)) { + event.setCancelled(true); + return; + } + + if(tntChainingEnabled){ + long currentTime = System.currentTimeMillis(); + + if (currentTime - lastResetTime >= tntChainingDurationMilliseconds) { + lastResetTime = currentTime; + explosionCount = 0; + } + } + + ArrayList blocksToRemove = new ArrayList<>(); + for (Block b : event.blockList()) { + Material type = b.getType(); + + if(tntBehaviorCancelNonWhitelist){ + if (!blockWhitelist.contains(type)){ + event.setCancelled(true); + return; + } + } + else if(tntBehaviorUseTNTWhitelist){ + if (!blockWhitelist.contains(type)){ + blocksToRemove.add(b); + continue; + } + } + + if(tntBehaviorIgnoreSingleBlockPopOff) { + if(blockBlacklist.contains(b.getRelative(0, 1, 0).getType())){ + blocksToRemove.add(b); + continue; + } + if(blockBlacklist.contains(b.getRelative(1, 0, 0).getType())){ + blocksToRemove.add(b); + continue; + } + if(blockBlacklist.contains(b.getRelative(-1, 0, 0).getType())){ + blocksToRemove.add(b); + continue; + } + if(blockBlacklist.contains(b.getRelative(0, 0, 1).getType())){ + blocksToRemove.add(b); + continue; + } + if(blockBlacklist.contains(b.getRelative(0, 0, -1).getType())){ + blocksToRemove.add(b); + } + } + + if(tntChainingEnabled){ + if(type == Material.TNT){ + if (explosionCount >= tntChainingMaximum) { + blocksToRemove.add(b); + } + else{ + explosionCount++; + } + } + } + else{ + if(type == Material.TNT){ + blocksToRemove.add(b); + } + } + } + + event.blockList().removeAll(blocksToRemove); + } + + @EventHandler + public void onEntityDamageByBlock(EntityDamageByBlockEvent event) { + if (event.isCancelled()) + return; + if (!(event.getEntity() instanceof org.bukkit.entity.Player)) + return; + if (!event.getEntity().getWorld().getEnvironment().equals(World.Environment.NORMAL) || !event.getEntity().getWorld().getEnvironment().equals(World.Environment.SKYLANDS)) + return; + if (event.getCause() == EntityDamageEvent.DamageCause.BLOCK_EXPLOSION) + event.setCancelled(true); + } +} From 9f2bd6ca11d868512b15fd042c22a8400956fa57 Mon Sep 17 00:00:00 2001 From: Grassboii <102272841+Grassboii@users.noreply.github.com> Date: Sun, 1 Dec 2024 23:15:00 -0500 Subject: [PATCH 6/9] Explosion Control 1.0.4 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1f178c2..c9f27c3 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ groupId Explosion-Control - 1.0.3 + 1.0.4-SNAPSHOT 8 From d6e45436456c463d405ff7c1cc535b5dc939645a Mon Sep 17 00:00:00 2001 From: Grassboii <102272841+Grassboii@users.noreply.github.com> Date: Sun, 1 Dec 2024 23:23:17 -0500 Subject: [PATCH 7/9] Update ExplosionControlSettings.java --- .../config/ExplosionControlSettings.java | 210 +++++++----------- 1 file changed, 83 insertions(+), 127 deletions(-) diff --git a/src/main/java/com/johnymuffin/beta/tntcontrol/config/ExplosionControlSettings.java b/src/main/java/com/johnymuffin/beta/tntcontrol/config/ExplosionControlSettings.java index 2ef3a36..5ea0a4e 100644 --- a/src/main/java/com/johnymuffin/beta/tntcontrol/config/ExplosionControlSettings.java +++ b/src/main/java/com/johnymuffin/beta/tntcontrol/config/ExplosionControlSettings.java @@ -1,139 +1,95 @@ -package com.johnymuffin.beta.tntcontrol; - -import java.util.ArrayList; - -import com.johnymuffin.beta.tntcontrol.config.ExplosionControlSettings; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.block.Block; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.EntityDamageByBlockEvent; -import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.entity.EntityExplodeEvent; - -import static com.johnymuffin.beta.tntcontrol.ExplosionControl.blockBlacklist; -import static com.johnymuffin.beta.tntcontrol.ExplosionControl.blockWhitelist; - -public class ExplosionControlListener implements Listener { - private ExplosionControl plugin; - private long lastResetTime = System.currentTimeMillis(); - private int explosionCount = 0; - - private ExplosionControlSettings settings; - - private final boolean tntChainingEnabled; - private final int tntChainingMaximum; - private final long tntChainingDurationMilliseconds; - - private final boolean tntBehaviorCancelNonWhitelist; - private final boolean tntBehaviorUseTNTWhitelist; - private final boolean tntBehaviorIgnoreSingleBlockPopOff; - - public ExplosionControlListener(ExplosionControl plugin) { - this.plugin = plugin; - settings = plugin.getSettings(); - - // Load Config Values - tntChainingEnabled = settings.getConfigBoolean("settings.tnt-chaining.enabled"); - tntChainingMaximum = settings.getConfigInteger("settings.tnt-chaining.maximum"); - tntChainingDurationMilliseconds = settings.getConfigLong("settings.tnt-chaining.duration-milliseconds"); - - tntBehaviorCancelNonWhitelist = settings.getConfigBoolean("settings.tnt-behavior.cancel-entire-explosion-if-non-whitelisted.enabled"); - tntBehaviorUseTNTWhitelist = settings.getConfigBoolean("settings.tnt-behavior.use-tnt-whitelist.enabled"); - tntBehaviorIgnoreSingleBlockPopOff = settings.getConfigBoolean("settings.tnt-behavior.ignore-single-if-block-pop-off.enabled"); +package com.johnymuffin.beta.tntcontrol.config; + +import org.bukkit.util.config.Configuration; + +import java.io.File; + +public class ExplosionControlSettings extends Configuration { + + public ExplosionControlSettings(File settingsFile) { + super(settingsFile); + this.reload(); } - @EventHandler - public void onExplode(EntityExplodeEvent event) { - if (event.isCancelled()) - return; - Location location = event.getLocation(); - if (location.getWorld().getEnvironment().equals(World.Environment.NETHER)) - return; - if (!location.getWorld().getEnvironment().equals(World.Environment.NORMAL)) { - event.setCancelled(true); - return; - } + private void write() { + // Main + generateConfigOption("config-version", 1); + + // TNT Chaining + generateConfigOption("settings.tnt-chaining.enabled", true); + generateConfigOption("settings.tnt-chaining.maximum", 20); + generateConfigOption("settings.tnt-chaining.duration-milliseconds", 1000); + + // TNT Behaviors + generateConfigOption("settings.tnt-behavior.cancel-entire-explosion-if-non-whitelisted.enabled", true); + generateConfigOption("settings.tnt-behavior.use-tnt-whitelist.enabled", true); + generateConfigOption("settings.tnt-behavior.ignore-single-if-block-pop-off.enabled", true); + } - if(tntChainingEnabled){ - long currentTime = System.currentTimeMillis(); - if (currentTime - lastResetTime >= tntChainingDurationMilliseconds) { - lastResetTime = currentTime; - explosionCount = 0; - } + public void generateConfigOption(String key, Object defaultValue) { + if (this.getProperty(key) == null) { + this.setProperty(key, defaultValue); } + final Object value = this.getProperty(key); + this.removeProperty(key); + this.setProperty(key, value); + } + + + //Getters Start + public Object getConfigOption(String key) { + return this.getProperty(key); + } + + public String getConfigString(String key) { + return String.valueOf(getConfigOption(key)); + } - ArrayList blocksToRemove = new ArrayList<>(); - for (Block b : event.blockList()) { - Material type = b.getType(); - - if(tntBehaviorCancelNonWhitelist){ - if (!blockWhitelist.contains(type)){ - event.setCancelled(true); - return; - } - } - else if(tntBehaviorUseTNTWhitelist){ - if (!blockWhitelist.contains(type)){ - blocksToRemove.add(b); - continue; - } - } - - if(tntBehaviorIgnoreSingleBlockPopOff) { - if(blockBlacklist.contains(b.getRelative(0, 1, 0).getType())){ - blocksToRemove.add(b); - continue; - } - if(blockBlacklist.contains(b.getRelative(1, 0, 0).getType())){ - blocksToRemove.add(b); - continue; - } - if(blockBlacklist.contains(b.getRelative(-1, 0, 0).getType())){ - blocksToRemove.add(b); - continue; - } - if(blockBlacklist.contains(b.getRelative(0, 0, 1).getType())){ - blocksToRemove.add(b); - continue; - } - if(blockBlacklist.contains(b.getRelative(0, 0, -1).getType())){ - blocksToRemove.add(b); - } - } - - if(tntChainingEnabled){ - if(type == Material.TNT){ - if (explosionCount >= tntChainingMaximum) { - blocksToRemove.add(b); - } - else{ - explosionCount++; - } - } - } - else{ - if(type == Material.TNT){ - blocksToRemove.add(b); - } - } + public Integer getConfigInteger(String key) { + return Integer.valueOf(getConfigString(key)); + } + + public Long getConfigLong(String key) { + return Long.valueOf(getConfigString(key)); + } + + public Double getConfigDouble(String key) { + return Double.valueOf(getConfigString(key)); + } + + public Boolean getConfigBoolean(String key) { + return Boolean.valueOf(getConfigString(key)); + } + //Getters End + + + public Long getConfigLongOption(String key) { + if (this.getConfigOption(key) == null) { + return null; } + return Long.valueOf(String.valueOf(this.getProperty(key))); + } + - event.blockList().removeAll(blocksToRemove); + private boolean convertToNewAddress(String newKey, String oldKey) { + if (this.getString(newKey) != null) { + return false; + } + if (this.getString(oldKey) == null) { + return false; + } + System.out.println("Converting Config: " + oldKey + " to " + newKey); + Object value = this.getProperty(oldKey); + this.setProperty(newKey, value); + this.removeProperty(oldKey); + return true; } - @EventHandler - public void onEntityDamageByBlock(EntityDamageByBlockEvent event) { - if (event.isCancelled()) - return; - if (!(event.getEntity() instanceof org.bukkit.entity.Player)) - return; - if (!event.getEntity().getWorld().getEnvironment().equals(World.Environment.NORMAL) || !event.getEntity().getWorld().getEnvironment().equals(World.Environment.SKYLANDS)) - return; - if (event.getCause() == EntityDamageEvent.DamageCause.BLOCK_EXPLOSION) - event.setCancelled(true); + + private void reload() { + this.load(); + this.write(); + this.save(); } } From cb23f4c6068496ae1f5e41a787eafca770061358 Mon Sep 17 00:00:00 2001 From: Grassboii <102272841+Grassboii@users.noreply.github.com> Date: Sun, 1 Dec 2024 23:44:26 -0500 Subject: [PATCH 8/9] Update ExplosionControl.java --- .../java/com/johnymuffin/beta/tntcontrol/ExplosionControl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControl.java b/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControl.java index 60d75a7..7dbeda4 100644 --- a/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControl.java +++ b/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControl.java @@ -45,7 +45,7 @@ public void onEnable() { log.info("[" + pdf.getName() + "] Is loading"); File dataFolder = plugin.getDataFolder(); - if (!dataFolder.exists() && dataFolder.mkdir()) { + if (!dataFolder.exists()) { dataFolder.mkdir(); } From b169a4167241b3bb3657f97302f23aedc52c3d72 Mon Sep 17 00:00:00 2001 From: Grassboii <102272841+Grassboii@users.noreply.github.com> Date: Mon, 2 Dec 2024 00:17:29 -0500 Subject: [PATCH 9/9] Update ExplosionControlListener.java --- .../tntcontrol/ExplosionControlListener.java | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControlListener.java b/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControlListener.java index 2ef3a36..1080b7b 100644 --- a/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControlListener.java +++ b/src/main/java/com/johnymuffin/beta/tntcontrol/ExplosionControlListener.java @@ -105,20 +105,16 @@ else if(tntBehaviorUseTNTWhitelist){ } } - if(tntChainingEnabled){ - if(type == Material.TNT){ - if (explosionCount >= tntChainingMaximum) { - blocksToRemove.add(b); - } - else{ - explosionCount++; - } - } - } - else{ - if(type == Material.TNT){ + if(tntChainingEnabled && type == Material.TNT){ + if (explosionCount >= tntChainingMaximum) { blocksToRemove.add(b); } + else{ + explosionCount++; + } + } + else if(type == Material.TNT){ + blocksToRemove.add(b); } }