From b6b8d696ea74bf2d1c81f6fa0943ce1367a24eb9 Mon Sep 17 00:00:00 2001 From: yoyosource Date: Sun, 19 Dec 2021 16:11:19 +0100 Subject: [PATCH] Update Simulator to Message System Signed-off-by: yoyosource --- BauSystem_Main/src/BauSystem.properties | 1 + .../features/simulator/TNTSimulator.java | 9 +++- .../slaves/panzern/PanzernCommand.java | 45 +++++++++---------- .../smartplace/SmartPlaceCommand.java | 9 +--- 4 files changed, 30 insertions(+), 34 deletions(-) diff --git a/BauSystem_Main/src/BauSystem.properties b/BauSystem_Main/src/BauSystem.properties index 2861b019..d18d0c47 100644 --- a/BauSystem_Main/src/BauSystem.properties +++ b/BauSystem_Main/src/BauSystem.properties @@ -579,6 +579,7 @@ SIMULATOR_TNT_SPAWN_ACTIVATED_WITH = §7Gezündet durch §8- §e{0} SIMULATOR_TNT_SPAWN_ACTIVATED_WITH_COMPARATOR = Comparator SIMULATOR_TNT_SPAWN_ACTIVATED_WITH_REPEATER = Repeater SIMULATOR_TNT_SPAWN_ADD_IGNITION_PHASE = §eZündphase hinzufügen +SIMULATOR_TNT_SPAWN_ADD_IGNITION_PHASE_SHIFT = §eZündphase hinzufügen und +1 Tick Offset SIMULATOR_TNT_SPAWN_ADD_TNT = §eTNT hinzufügen SIMULATOR_TNT_SPAWN_REMOVE_TNT = §cEntfernen SIMULATOR_TNT_SPAWN_POSITION_ANVIL_GUI_NAME = Position diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/TNTSimulator.java b/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/TNTSimulator.java index 6cddec56..c8d4d161 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/TNTSimulator.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/TNTSimulator.java @@ -407,6 +407,7 @@ public class TNTSimulator { editTNT(spawns); } + // TODO: Add Material to UI! private TNTSpawn(YAPIONObject yapionObject) { this.position = new Vector(yapionObject.getPlainValueOrDefault("positionX", 0.0), yapionObject.getPlainValueOrDefault("positionY", 0.0), yapionObject.getPlainValueOrDefault("positionZ", 0.0)); this.entity = SimulatorEntityShowMode.createEntity(player, position, false); @@ -627,8 +628,12 @@ public class TNTSimulator { editTNT(tntSpawns); })); - swInventory.setItem(33, new SWItem(Material.TNT, BauSystem.MESSAGE.parse("SIMULATOR_TNT_SPAWN_ADD_IGNITION_PHASE", player), clickType -> { - spawns.add(new TNTSpawn(position, entity)); + swInventory.setItem(33, new SWItem(Material.TNT, BauSystem.MESSAGE.parse("SIMULATOR_TNT_SPAWN_ADD_IGNITION_PHASE", player), Arrays.asList(BauSystem.MESSAGE.parse("SIMULATOR_TNT_SPAWN_ADD_IGNITION_PHASE_SHIFT", player)), false, clickType -> { + TNTSpawn tntSpawn = new TNTSpawn(position, entity); + if (clickType.isShiftClick()) { + tntSpawn.setTickOffset(tickOffset + 1); + } + spawns.add(tntSpawn); })); swInventory.setItem(53, new SWItem(Material.ARROW, BauSystem.MESSAGE.parse("SIMULATOR_BACK", player), clickType -> { diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/panzern/PanzernCommand.java b/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/panzern/PanzernCommand.java index ade00776..2652fe4e 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/panzern/PanzernCommand.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/panzern/PanzernCommand.java @@ -26,8 +26,7 @@ import de.steamwar.bausystem.features.slaves.WorldEditUtils; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; import de.steamwar.bausystem.shared.Pair; -import de.steamwar.command.SWCommand; -import de.steamwar.command.TypeMapper; +import de.steamwar.command.*; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.command.CommandSender; @@ -44,31 +43,15 @@ public class PanzernCommand extends SWCommand { public PanzernCommand() { super("panzern", "panzersklave"); - } - - private boolean permissionCheck(Player player, Permission permission) { - if (Permission.hasPermission(player, permission)) { - return true; - } - BauSystem.MESSAGE.send("PANZERN_NO_PERM", player); - return false; - } - - @Register(help = true) - public void genericHelp(Player player, String... args) { - BauSystem.MESSAGE.send("COMMAND_HELP_HEAD", player, "panzern"); - BauSystem.MESSAGE.send("PANZERN_HELP", player); - BauSystem.MESSAGE.send("PANZERN_PREPARE1", player); - BauSystem.MESSAGE.send("PANZERN_PREPARE2", player); - BauSystem.MESSAGE.send("PANZERN_PREPARE3", player); - BauSystem.MESSAGE.send("PANZERN_PREPARE4", player); + addDefaultHelpMessage("PANZERN_HELP"); + addDefaultHelpMessage("PANZERN_PREPARE1"); + addDefaultHelpMessage("PANZERN_PREPARE2"); + addDefaultHelpMessage("PANZERN_PREPARE3"); + addDefaultHelpMessage("PANZERN_PREPARE4"); } @Register - public void panzerSelection(Player player, @Mapper("block") Material blockMaterial, @Mapper("slab") Material slabMaterial) { - if (!permissionCheck(player, Permission.WORLDEDIT)) { - return; - } + public void panzerSelection(@Guard Player player, @Mapper("block") Material blockMaterial, @Mapper("slab") Material slabMaterial) { Pair selection = WorldEditUtils.getSelection(player); if (selection == null) { BauSystem.MESSAGE.send("PANZERN_NO_WORLDEDIT", player); @@ -101,6 +84,20 @@ public class PanzernCommand extends SWCommand { }.runTaskTimer(BauSystem.getInstance(), 1, 1); } + @ClassGuard(value = Player.class, local = true) + public GuardChecker guardChecker() { + return (commandSender, guardCheckType, strings, s) -> { + Player player = (Player) commandSender; + if (Permission.hasPermission(player, Permission.WORLDEDIT)) { + return GuardResult.ALLOWED; + } + if (guardCheckType != GuardCheckType.TAB_COMPLETE) { + BauSystem.MESSAGE.send("PANZERN_NO_PERM", player); + } + return GuardResult.DENIED; + }; + } + @Mapper(value = "block", local = true) private TypeMapper blockMapper() { Set strings = new HashSet<>(); diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/smartplace/SmartPlaceCommand.java b/BauSystem_Main/src/de/steamwar/bausystem/features/smartplace/SmartPlaceCommand.java index 1cddd42f..399e21b5 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/smartplace/SmartPlaceCommand.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/smartplace/SmartPlaceCommand.java @@ -34,14 +34,7 @@ public class SmartPlaceCommand extends SWCommand { super("smartplace", "sp"); } - @Register(help = true) - public void genericHelp(Player p, String... args) { - BauSystem.MESSAGE.sendPrefixless("COMMAND_HELP_HEAD", p, "Smart Place"); - BauSystem.MESSAGE.sendPrefixless("SMART_PLACE_HELP", p); - BauSystem.MESSAGE.sendPrefixless("SMART_PLACE_INFO", p); - } - - @Register + @Register(description = {"SMART_PLACE_HELP", "SMART_PLACE_INFO"}) public void genericToggle(Player p) { boolean smartPlace = Config.getInstance().get(p).getPlainValueOrDefault("smartPlace", false); Config.getInstance().get(p).put("smartPlace", !smartPlace);