From 00b77a71b32cb78bdbb11f0f5d43e6090dee34ff Mon Sep 17 00:00:00 2001 From: Cola Date: Sat, 2 Mar 2024 19:28:05 +1100 Subject: [PATCH 1/3] Add skip existing reinforcements flag to ctar Admin love --- .../civcraft/mc/citadel/command/AreaReinforce.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/plugins/citadel-paper/src/main/java/vg/civcraft/mc/citadel/command/AreaReinforce.java b/plugins/citadel-paper/src/main/java/vg/civcraft/mc/citadel/command/AreaReinforce.java index 785be6308..77b7436fa 100644 --- a/plugins/citadel-paper/src/main/java/vg/civcraft/mc/citadel/command/AreaReinforce.java +++ b/plugins/citadel-paper/src/main/java/vg/civcraft/mc/citadel/command/AreaReinforce.java @@ -18,11 +18,11 @@ import vg.civcraft.mc.namelayer.group.Group; public class AreaReinforce extends BaseCommand { @CommandAlias("ctar") - @Syntax(" ") + @Syntax(" ") @Description("Using the reinforcement item in your main hand, reinforces an area to your default or a target group.") - @CommandCompletion("@CT_Groups @nothing @nothing @nothing @nothing @nothing @nothing") + @CommandCompletion("@CT_Groups @nothing @nothing @nothing @nothing @nothing @nothing true") @CommandPermission("citadel.admin") - public void execute(Player p, @Optional String targetGroup, String minX, String minY, String minZ, String maxX, String maxY, String maxZ) { + public void execute(Player p, @Optional String targetGroup, String minX, String minY, String minZ, String maxX, String maxY, String maxZ, @Optional String skipReinforcements) { UUID uuid = NameAPI.getUUID(p.getName()); ReinforcementType reinType = Citadel.getInstance().getReinforcementTypeManager() .getByItemStack(p.getInventory().getItemInMainHand(), p.getWorld().getName()); @@ -65,6 +65,10 @@ public class AreaReinforce extends BaseCommand { CitadelUtility.sendAndLog(p, ChatColor.RED, "One of the arguments you provided was not a number"); return; } + boolean skipReins = false; + if (skipReinforcements.equalsIgnoreCase("true")) { + skipReins = true; + } int count = 0; for (int x = xMin; x <= xMax; x++) { for (int y = yMin; y <= yMax; y++) { @@ -74,6 +78,9 @@ public class AreaReinforce extends BaseCommand { continue; } Block protecting = ReinforcementLogic.getResponsibleBlock(current); + if (skipReins) { + continue; + } if (!current.getLocation().equals(protecting.getLocation())) { continue; } From e11ef3fcf8c9d391a624294b4d354a3b845aae7a Mon Sep 17 00:00:00 2001 From: Cola Date: Sun, 3 Mar 2024 17:25:33 +1100 Subject: [PATCH 2/3] Improve check --- .../java/vg/civcraft/mc/citadel/command/AreaReinforce.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plugins/citadel-paper/src/main/java/vg/civcraft/mc/citadel/command/AreaReinforce.java b/plugins/citadel-paper/src/main/java/vg/civcraft/mc/citadel/command/AreaReinforce.java index 77b7436fa..6e5f3c6d3 100644 --- a/plugins/citadel-paper/src/main/java/vg/civcraft/mc/citadel/command/AreaReinforce.java +++ b/plugins/citadel-paper/src/main/java/vg/civcraft/mc/citadel/command/AreaReinforce.java @@ -65,10 +65,7 @@ public class AreaReinforce extends BaseCommand { CitadelUtility.sendAndLog(p, ChatColor.RED, "One of the arguments you provided was not a number"); return; } - boolean skipReins = false; - if (skipReinforcements.equalsIgnoreCase("true")) { - skipReins = true; - } + boolean skipReins = skipReinforcements.equalsIgnoreCase("true"); int count = 0; for (int x = xMin; x <= xMax; x++) { for (int y = yMin; y <= yMax; y++) { From 3b2c03ae29242e7c1c640d775a4f4329633894f6 Mon Sep 17 00:00:00 2001 From: Cola Date: Tue, 5 Mar 2024 17:58:56 +1100 Subject: [PATCH 3/3] Fix logic --- .../vg/civcraft/mc/citadel/command/AreaReinforce.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/citadel-paper/src/main/java/vg/civcraft/mc/citadel/command/AreaReinforce.java b/plugins/citadel-paper/src/main/java/vg/civcraft/mc/citadel/command/AreaReinforce.java index 6e5f3c6d3..655922025 100644 --- a/plugins/citadel-paper/src/main/java/vg/civcraft/mc/citadel/command/AreaReinforce.java +++ b/plugins/citadel-paper/src/main/java/vg/civcraft/mc/citadel/command/AreaReinforce.java @@ -74,10 +74,13 @@ public class AreaReinforce extends BaseCommand { if (!reinType.canBeReinforced(current.getType())) { continue; } - Block protecting = ReinforcementLogic.getResponsibleBlock(current); - if (skipReins) { - continue; + Reinforcement reinforcement = ReinforcementLogic.getReinforcementAt(current.getLocation()); + if (reinforcement != null) { + if (skipReins) { + continue; + } } + Block protecting = ReinforcementLogic.getResponsibleBlock(current); if (!current.getLocation().equals(protecting.getLocation())) { continue; }