From 0287881e33ee27a82c913d9ba8e17ea05db1ff4f Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Sat, 12 Jul 2025 18:17:46 +0200 Subject: [PATCH] Fix some more issues --- .../features/region/FireCommand.java | 6 +-- .../features/region/FreezeCommand.java | 6 +-- .../features/region/FreezeListener.java | 42 +++++++++---------- .../features/region/ItemsListener.java | 6 +-- .../features/region/NoGravityCommand.java | 6 +-- .../features/region/NoGravityListener.java | 6 +-- .../features/region/ProtectCommand.java | 8 ++-- .../features/region/ProtectListener.java | 6 +-- .../features/region/RegionListener.java | 2 +- .../bausystem/features/region/TNTCommand.java | 20 ++++----- .../bausystem/region/FlagOptional.java | 8 ++++ 11 files changed, 62 insertions(+), 54 deletions(-) diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FireCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FireCommand.java index c7372eb3..e694f19a 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FireCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FireCommand.java @@ -53,11 +53,11 @@ public class FireCommand extends SWCommand { } private boolean toggle(Region region) { - if (region.isFlag(Flag.FIRE, FireMode.ALLOW)) { - region.setFlag(Flag.FIRE, FireMode.DENY); + if (region.getFlags().get(Flag.FIRE).isWithDefault(FireMode.ALLOW)) { + region.getFlags().set(Flag.FIRE, FireMode.DENY); return true; } else { - region.setFlag(Flag.FIRE, FireMode.ALLOW); + region.getFlags().set(Flag.FIRE, FireMode.ALLOW); return false; } } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FreezeCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FreezeCommand.java index aee10390..ceba317d 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FreezeCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FreezeCommand.java @@ -53,11 +53,11 @@ public class FreezeCommand extends SWCommand { } private boolean toggle(Region region) { - if (region.isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { - region.setFlag(Flag.FREEZE, FreezeMode.INACTIVE); + if (region.getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + region.getFlags().set(Flag.FREEZE, FreezeMode.INACTIVE); return false; } else { - region.setFlag(Flag.FREEZE, FreezeMode.ACTIVE); + region.getFlags().set(Flag.FREEZE, FreezeMode.ACTIVE); return true; } } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FreezeListener.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FreezeListener.java index d0b63900..c83b1561 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FreezeListener.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FreezeListener.java @@ -29,7 +29,7 @@ public class FreezeListener implements Listener, ScoreboardElement { @EventHandler public void onEntitySpawn(EntitySpawnEvent e) { - if (Region.getRegion(e.getLocation()).isFlag(Flag.FREEZE, FreezeMode.INACTIVE, true)) return; + if (Region.getRegion(e.getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.INACTIVE)) return; e.setCancelled(true); if (e.getEntityType() == TrickyTrialsWrapper.impl.getTntEntityType()) { Bukkit.getScheduler().runTaskLater(BauSystem.getInstance(), () -> { @@ -41,7 +41,7 @@ public class FreezeListener implements Listener, ScoreboardElement { @EventHandler public void onBlockCanBuild(BlockCanBuildEvent e) { if (!e.isBuildable()) return; - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.INACTIVE, true)) return; + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.INACTIVE)) return; if (e.getMaterial() == Material.TNT) { e.setBuildable(false); e.getBlock().setType(Material.TNT, false); @@ -50,14 +50,14 @@ public class FreezeListener implements Listener, ScoreboardElement { @EventHandler public void onEntityChangeBlock(EntityChangeBlockEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onPhysicsEvent(BlockPhysicsEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { if (e.getSourceBlock().getType() == Material.NOTE_BLOCK) { BlockState state = e.getSourceBlock().getState(); NoteBlock noteBlock = (NoteBlock) state.getBlockData(); @@ -82,44 +82,44 @@ public class FreezeListener implements Listener, ScoreboardElement { @EventHandler public void onPistonExtend(BlockPistonExtendEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onPistonRetract(BlockPistonRetractEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onBlockGrow(BlockGrowEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onRedstoneEvent(BlockRedstoneEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setNewCurrent(e.getOldCurrent()); } } @EventHandler public void onBlockDispense(BlockDispenseEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onInventoryMoveEvent(InventoryMoveItemEvent e) { - if (e.getDestination().getLocation() != null && Region.getRegion(e.getDestination().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (e.getDestination().getLocation() != null && Region.getRegion(e.getDestination().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); - } else if (e.getSource().getLocation() != null && Region.getRegion(e.getSource().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + } else if (e.getSource().getLocation() != null && Region.getRegion(e.getSource().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @@ -128,7 +128,7 @@ public class FreezeListener implements Listener, ScoreboardElement { public void onBlockBreak(BlockBreakEvent e) { if (Core.getVersion() < 19) return; if (e.getPlayer().getInventory().getItemInMainHand().getType() == Material.DEBUG_STICK) return; - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); e.getBlock().setType(Material.BARRIER, false); e.getBlock().setType(Material.AIR, false); @@ -151,35 +151,35 @@ public class FreezeListener implements Listener, ScoreboardElement { @EventHandler public void onFluidLevelChange(FluidLevelChangeEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onBlockSpread(BlockSpreadEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onBlockFromTo(BlockFromToEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onSpongeAbsorb(SpongeAbsorbEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onBlockForm(BlockFormEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @@ -187,7 +187,7 @@ public class FreezeListener implements Listener, ScoreboardElement { @EventHandler public void onPlayerInteract(PlayerInteractEvent e) { if (e.getAction() != Action.RIGHT_CLICK_BLOCK) return; - if (Region.getRegion(e.getClickedBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getClickedBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { Block block = e.getClickedBlock(); if (block.getType() == Material.LEVER) { Switch data = ((Switch) block.getBlockData()); @@ -199,7 +199,7 @@ public class FreezeListener implements Listener, ScoreboardElement { @EventHandler public void onBlockFade(BlockFadeEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).isFlag(Flag.FREEZE, FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @@ -216,7 +216,7 @@ public class FreezeListener implements Listener, ScoreboardElement { @Override public String get(Region region, Player p) { - if (region.isFlag(Flag.FREEZE, Flag.FREEZE.getDefaultValue(), true)) return null; - return "§e" + BauSystem.MESSAGE.parse(Flag.FREEZE.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getFlag(Flag.FREEZE).get().getChatValue(), p); + if (region.getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.INACTIVE)) return null; + return "§e" + BauSystem.MESSAGE.parse(Flag.FREEZE.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getFlags().get(Flag.FREEZE).getWithDefault().getChatValue(), p); } } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ItemsListener.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ItemsListener.java index b673bb93..47fd27c8 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ItemsListener.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ItemsListener.java @@ -37,7 +37,7 @@ public class ItemsListener implements Listener, ScoreboardElement { @EventHandler public void onItemSpawn(ItemSpawnEvent event) { - if (Region.getRegion(event.getLocation()).isFlag(Flag.ITEMS, ItemMode.INACTIVE, true)) { + if (Region.getRegion(event.getLocation()).getFlags().get(Flag.ITEMS).isWithDefault(ItemMode.INACTIVE)) { event.setCancelled(true); } } @@ -54,7 +54,7 @@ public class ItemsListener implements Listener, ScoreboardElement { @Override public String get(Region region, Player p) { - if (region.isFlag(Flag.ITEMS, Flag.ITEMS.getDefaultValue(), true)) return null; - return "§e" + BauSystem.MESSAGE.parse(Flag.ITEMS.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getFlag(Flag.ITEMS).get().getChatValue(), p); + if (region.getFlags().get(Flag.ITEMS).isWithDefault(ItemMode.INACTIVE)) return null; + return "§e" + BauSystem.MESSAGE.parse(Flag.ITEMS.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getFlags().get(Flag.ITEMS).getWithDefault().getChatValue(), p); } } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/NoGravityCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/NoGravityCommand.java index 3d3b6b61..6ef0b428 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/NoGravityCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/NoGravityCommand.java @@ -53,11 +53,11 @@ public class NoGravityCommand extends SWCommand { } private boolean toggle(Region region) { - if (region.isFlag(Flag.NO_GRAVITY, NoGravityMode.ACTIVE)) { - region.setFlag(Flag.NO_GRAVITY, NoGravityMode.INACTIVE); + if (region.getFlags().get(Flag.NO_GRAVITY).isWithDefault(NoGravityMode.ACTIVE)) { + region.getFlags().set(Flag.NO_GRAVITY, NoGravityMode.INACTIVE); return false; } else { - region.setFlag(Flag.NO_GRAVITY, NoGravityMode.ACTIVE); + region.getFlags().set(Flag.NO_GRAVITY, NoGravityMode.ACTIVE); return true; } } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/NoGravityListener.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/NoGravityListener.java index e69b8225..f874fb41 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/NoGravityListener.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/NoGravityListener.java @@ -37,7 +37,7 @@ public class NoGravityListener implements Listener, ScoreboardElement { @EventHandler public void onEntitySpawn(EntitySpawnEvent event) { if (event.getEntityType() == EntityType.PLAYER) return; - if (Region.getRegion(event.getLocation()).isFlag(Flag.NO_GRAVITY, NoGravityMode.ACTIVE)) { + if (Region.getRegion(event.getLocation()).getFlags().get(Flag.NO_GRAVITY).isWithDefault(NoGravityMode.ACTIVE)) { event.getEntity().setGravity(false); } } @@ -54,7 +54,7 @@ public class NoGravityListener implements Listener, ScoreboardElement { @Override public String get(Region region, Player p) { - if (region.isFlag(Flag.NO_GRAVITY, Flag.NO_GRAVITY.getDefaultValue(), true)) return null; - return "§e" + BauSystem.MESSAGE.parse(Flag.NO_GRAVITY.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getFlag(Flag.NO_GRAVITY).get().getChatValue(), p); + if (region.getFlags().get(Flag.NO_GRAVITY).isWithDefault(NoGravityMode.INACTIVE)) return null; + return "§e" + BauSystem.MESSAGE.parse(Flag.NO_GRAVITY.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getFlags().get(Flag.NO_GRAVITY).getWithDefault().getChatValue(), p); } } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ProtectCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ProtectCommand.java index 04383c38..a390bddd 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ProtectCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ProtectCommand.java @@ -39,18 +39,18 @@ public class ProtectCommand extends SWCommand { public void genericProtectCommand(@Validator Player p) { Region region = regionCheck(p); if (region == null) return; - if (region.isFlag(Flag.PROTECT, ProtectMode.ACTIVE)) { - region.setFlag(Flag.PROTECT, ProtectMode.INACTIVE); + if (region.getFlags().get(Flag.PROTECT).isWithDefault(ProtectMode.ACTIVE)) { + region.getFlags().set(Flag.PROTECT, ProtectMode.INACTIVE); RegionUtils.actionBar(region, "REGION_PROTECT_DISABLE"); } else { - region.setFlag(Flag.PROTECT, ProtectMode.ACTIVE); + region.getFlags().set(Flag.PROTECT, ProtectMode.ACTIVE); RegionUtils.actionBar(region, "REGION_PROTECT_ENABLE"); } } private Region regionCheck(Player player) { Region region = Region.getRegion(player.getLocation()); - if (!region.hasFlag(Flag.PROTECT).isApplicable()) { + if (!region.getFlags().has(Flag.PROTECT).isApplicable()) { BauSystem.MESSAGE.send("REGION_PROTECT_FALSE_REGION", player); return null; } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ProtectListener.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ProtectListener.java index b90aa779..2abe5569 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ProtectListener.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ProtectListener.java @@ -22,7 +22,7 @@ public class ProtectListener implements Listener, ScoreboardElement { private void explode(List blockList, Location location) { Region region = Region.getRegion(location); - if (region.isFlag(Flag.PROTECT, ProtectMode.INACTIVE)) return; + if (region.getFlags().get(Flag.PROTECT).isWithDefault(ProtectMode.INACTIVE)) return; Point p1 = region.getBuildArea().getMinPoint(true); Point p2 = region.getTestblockArea().getMinPoint(true); int floorLevel = Math.min(p1.getY(), p2.getY()); @@ -51,7 +51,7 @@ public class ProtectListener implements Listener, ScoreboardElement { @Override public String get(Region region, Player p) { - if (region.isFlag(Flag.PROTECT, Flag.PROTECT.getDefaultValue(), true)) return null; - return "§e" + BauSystem.MESSAGE.parse(Flag.PROTECT.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getFlag(Flag.PROTECT).get().getChatValue(), p); + if (region.getFlags().get(Flag.PROTECT).isWithDefault(ProtectMode.INACTIVE)) return null; + return "§e" + BauSystem.MESSAGE.parse(Flag.PROTECT.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getFlags().get(Flag.PROTECT).getWithDefault().getChatValue(), p); } } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/RegionListener.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/RegionListener.java index 990c3379..78c917c1 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/RegionListener.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/RegionListener.java @@ -186,7 +186,7 @@ public class RegionListener implements Listener { new BukkitRunnable() { @Override public void run() { - Region.getRegion(location).setFlag(Flag.CHANGED, ChangedMode.HAS_CHANGE); + Region.getRegion(location).getFlags().set(Flag.CHANGED, ChangedMode.HAS_CHANGE); } }.runTaskAsynchronously(BauSystem.getInstance()); } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/TNTCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/TNTCommand.java index 3c862f4f..df5bd796 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/TNTCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/TNTCommand.java @@ -24,7 +24,7 @@ import de.steamwar.bausystem.region.Region; import de.steamwar.bausystem.region.RegionUtils; import de.steamwar.bausystem.region.flags.Flag; import de.steamwar.bausystem.region.flags.TNTMode; -import de.steamwar.bausystem.region.utils.RegionType; +import de.steamwar.bausystem.region.flags.TestblockMode; import de.steamwar.command.PreviousArguments; import de.steamwar.command.SWCommand; import de.steamwar.command.TypeMapper; @@ -96,7 +96,7 @@ public class TNTCommand extends SWCommand { @Override public List tabCompletes(CommandSender sender, PreviousArguments previousArguments, String s) { Region region = Region.getRegion(((Player) sender).getLocation()); - if (region.hasType(RegionType.TESTBLOCK) && region.hasType(RegionType.BUILD)) { + if (region.getFlags().get(Flag.TESTBLOCK).isNotWithDefault(TestblockMode.NO_VALUE)) { return new ArrayList<>(tntModeMap.keySet()); } else { return new ArrayList<>(tntModeMapReduced.keySet()); @@ -106,7 +106,7 @@ public class TNTCommand extends SWCommand { @Override public TNTMode map(CommandSender sender, PreviousArguments previousArguments, String s) { Region region = Region.getRegion(((Player) sender).getLocation()); - if (region.hasType(RegionType.TESTBLOCK) && region.hasType(RegionType.BUILD)) { + if (region.getFlags().get(Flag.TESTBLOCK).isNotWithDefault(TestblockMode.NO_VALUE)) { return tntModeMap.getOrDefault(s, null); } else { return tntModeMapReduced.getOrDefault(s, null); @@ -132,24 +132,24 @@ public class TNTCommand extends SWCommand { } private void tntToggle(Region region, TNTMode requestedMode, String requestedMessage) { - if (requestedMode != null && region.hasType(RegionType.TESTBLOCK) && region.hasType(RegionType.BUILD)) { - region.set(Flag.TNT, requestedMode); + if (requestedMode != null && region.getFlags().get(Flag.TESTBLOCK).isNotWithDefault(TestblockMode.NO_VALUE)) { + region.getFlags().set(Flag.TNT, requestedMode); RegionUtils.actionBar(region, requestedMessage); return; } - switch (region.getPlain(Flag.TNT, TNTMode.class)) { + switch (region.getFlags().get(Flag.TNT).getWithDefault()) { case ALLOW: case ONLY_TB: case ONLY_BUILD: - region.set(Flag.TNT, TNTMode.DENY); + region.getFlags().set(Flag.TNT, TNTMode.DENY); RegionUtils.actionBar(region, getDisableMessage()); break; case DENY: - if (region.hasType(RegionType.TESTBLOCK) && region.hasType(RegionType.BUILD)) { - region.set(Flag.TNT, TNTMode.ONLY_TB); + if (region.getFlags().get(Flag.TESTBLOCK).isNotWithDefault(TestblockMode.NO_VALUE)) { + region.getFlags().set(Flag.TNT, TNTMode.ONLY_TB); RegionUtils.actionBar(region, getTestblockEnableMessage()); } else { - region.set(Flag.TNT, TNTMode.ALLOW); + region.getFlags().set(Flag.TNT, TNTMode.ALLOW); RegionUtils.actionBar(region, getEnableMessage()); } break; diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/FlagOptional.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/FlagOptional.java index eb0bb0af..e3e725fc 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/FlagOptional.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/FlagOptional.java @@ -53,6 +53,10 @@ public class FlagOptional & Flag.Value> { return this.value.equals(value); } + public boolean isNot(T value) { + return !is(value); + } + public boolean isWithDefault(T value) { if (isEmpty()) { return flag.getDefaultValue().equals(value); @@ -61,6 +65,10 @@ public class FlagOptional & Flag.Value> { } } + public boolean isNotWithDefault(T value) { + return !isWithDefault(value); + } + public T get() { if (isEmpty()) { throw new NoSuchElementException("No value present");