From eafb469eca71a5a0ff6835ab66f059ee299f87d8 Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Fri, 28 Nov 2025 12:04:36 +0100 Subject: [PATCH] Remove FlagStorage and merge into RegionData --- .../features/backup/BackupCommand.java | 2 +- .../features/bau/BauInfoBauGuiItem.java | 4 +- .../bausystem/features/bau/InfoCommand.java | 4 +- .../features/region/ColorCommand.java | 6 +- .../features/region/FireCommand.java | 6 +- .../features/region/FireListener.java | 8 +- .../features/region/FreezeCommand.java | 6 +- .../features/region/FreezeListener.java | 42 ++--- .../features/region/ItemsCommand.java | 6 +- .../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/RegionCommand.java | 4 +- .../features/region/RegionListener.java | 2 +- .../features/region/ResetCommand.java | 5 +- .../bausystem/features/region/TNTCommand.java | 18 +- .../features/region/TNTListener.java | 6 +- .../features/region/TestblockCommand.java | 2 +- .../region/items/ColorBauGuiItem.java | 4 +- .../features/region/items/FireBauGuiItem.java | 4 +- .../region/items/FreezeBauGuiItem.java | 4 +- .../region/items/ProtectBauGuiItem.java | 4 +- .../features/region/items/TntBauGuiItem.java | 4 +- .../features/script/lua/libs/RegionLib.java | 12 +- .../features/simulator/data/tnt/TNTPhase.java | 2 +- .../simulator/execute/StabFinalizer.java | 4 +- .../simulator/execute/StabGenerator.java | 4 +- .../features/world/BauScoreboard.java | 4 +- .../bausystem/region/BackupScheduler.java | 6 +- .../bausystem/region/FlagStorage.java | 97 ---------- .../de/steamwar/bausystem/region/Region.java | 6 +- .../bausystem/region/RegionBackups.java | 2 +- .../steamwar/bausystem/region/RegionData.java | 172 ++++++++++++------ .../region/fixed/FixedGlobalRegion.java | 9 +- ...torage.java => FixedGlobalRegionData.java} | 6 +- .../bausystem/region/fixed/FixedRegion.java | 14 +- ...dFlagStorage.java => FixedRegionData.java} | 6 +- .../bausystem/region/fixed/Prototype.java | 2 +- .../region/fixed/loader/RegionLoader.java | 4 +- 41 files changed, 233 insertions(+), 290 deletions(-) delete mode 100644 BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/FlagStorage.java rename BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/{FixedGlobalFlagStorage.java => FixedGlobalRegionData.java} (91%) rename BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/{FixedFlagStorage.java => FixedRegionData.java} (90%) diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/backup/BackupCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/backup/BackupCommand.java index c934fa24..53607f9c 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/backup/BackupCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/backup/BackupCommand.java @@ -59,7 +59,7 @@ public class BackupCommand extends SWCommand { if (checkGlobalRegion(region, p)) { return; } - if (region.getFlags().get(Flag.CHANGED).isWithDefault(ChangedMode.NO_CHANGE)) { + if (region.getRegionData().get(Flag.CHANGED).isWithDefault(ChangedMode.NO_CHANGE)) { BauSystem.MESSAGE.send("BACKUP_CREATE_NO_CHANGE", p); return; } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/bau/BauInfoBauGuiItem.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/bau/BauInfoBauGuiItem.java index 12c0fa88..b0f15859 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/bau/BauInfoBauGuiItem.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/bau/BauInfoBauGuiItem.java @@ -56,8 +56,8 @@ public class BauInfoBauGuiItem extends BauGuiItem { Region region = Region.getRegion(player.getLocation()); List stringList = new ArrayList<>(); for (Flag flag : Flag.getFlags()) { - if (!region.getFlags().has(flag).isApplicable()) continue; - FlagOptional value = region.getFlags().get(flag); + if (!region.getRegionData().has(flag).isApplicable()) continue; + FlagOptional value = region.getRegionData().get(flag); if (value.isPresent()) { stringList.add(BauSystem.MESSAGE.parse("BAU_INFO_ITEM_LORE_" + flag.name(), player, BauSystem.MESSAGE.parse(value.getWithDefault().getChatValue(), player))); } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/bau/InfoCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/bau/InfoCommand.java index e5bce542..909f5ed8 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/bau/InfoCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/bau/InfoCommand.java @@ -50,8 +50,8 @@ public class InfoCommand extends SWCommand { BauSystem.MESSAGE.send("BAU_INFO_COMMAND_OWNER", p, SteamwarUser.byId(bauServer.getOwnerID()).getUserName()); Region region = Region.getRegion(p.getLocation()); for (Flag flag : Flag.getFlags()) { - if (!region.getFlags().has(flag).isApplicable()) continue; - FlagOptional value = region.getFlags().get(flag); + if (!region.getRegionData().has(flag).isApplicable()) continue; + FlagOptional value = region.getRegionData().get(flag); if (value.isPresent()) { BauSystem.MESSAGE.send("BAU_INFO_COMMAND_FLAG", p, BauSystem.MESSAGE.parse(flag.getChatValue(), p), BauSystem.MESSAGE.parse(value.getWithDefault().getChatValue(), p)); } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ColorCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ColorCommand.java index 68d84be3..1bbfaaf2 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ColorCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ColorCommand.java @@ -51,17 +51,17 @@ public class ColorCommand extends SWCommand { public void genericColorSet(@Validator Player p, ColorMode color, ColorizationType colorizationType) { if (colorizationType == ColorizationType.GLOBAL) { Region.getRegions().forEach(region -> { - region.getFlags().set(Flag.COLOR, color); + region.getRegionData().set(Flag.COLOR, color); }); BauSystem.MESSAGE.send("REGION_COLOR_GLOBAL", p, BauSystem.MESSAGE.parse(color.getChatValue(), p)); return; } Region region = Region.getRegion(p.getLocation()); - if (!region.getFlags().has(Flag.COLOR).isWritable()) { + if (!region.getRegionData().has(Flag.COLOR).isWritable()) { BauSystem.MESSAGE.send("REGION_COLOR_NO_REGION", p); return; } - region.getFlags().set(Flag.COLOR, color); + region.getRegionData().set(Flag.COLOR, color); try { PasteBuilder pasteBuilder = new PasteBuilder(new PasteBuilder.FileProvider(region.getArea().getResetFile())) .ignoreAir(true) 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 af660b25..235c33d1 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.getFlags().get(Flag.FIRE).isWithDefault(FireMode.ALLOW)) { - region.getFlags().set(Flag.FIRE, FireMode.DENY); + if (region.getRegionData().get(Flag.FIRE).isWithDefault(FireMode.ALLOW)) { + region.getRegionData().set(Flag.FIRE, FireMode.DENY); return true; } else { - region.getFlags().set(Flag.FIRE, FireMode.ALLOW); + region.getRegionData().set(Flag.FIRE, FireMode.ALLOW); return false; } } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FireListener.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FireListener.java index 8f862e9d..54a0bf13 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FireListener.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/FireListener.java @@ -36,12 +36,12 @@ public class FireListener implements Listener, ScoreboardElement { @EventHandler public void onFireDamage(BlockBurnEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FIRE).isWithDefault(FireMode.DENY)) e.setCancelled(true); + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FIRE).isWithDefault(FireMode.DENY)) e.setCancelled(true); } @EventHandler public void onFireSpread(BlockSpreadEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FIRE).isWithDefault(FireMode.DENY)) e.setCancelled(true); + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FIRE).isWithDefault(FireMode.DENY)) e.setCancelled(true); } @Override @@ -56,7 +56,7 @@ public class FireListener implements Listener, ScoreboardElement { @Override public String get(Region region, Player p) { - if (region.getFlags().get(Flag.FIRE).isWithDefault(FireMode.DENY)) return null; - return "§e" + BauSystem.MESSAGE.parse(Flag.FIRE.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getFlags().get(Flag.FIRE).getWithDefault().getChatValue(), p); + if (region.getRegionData().get(Flag.FIRE).isWithDefault(FireMode.DENY)) return null; + return "§e" + BauSystem.MESSAGE.parse(Flag.FIRE.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getRegionData().get(Flag.FIRE).getWithDefault().getChatValue(), p); } } 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 928db20e..2e89c378 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.getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { - region.getFlags().set(Flag.FREEZE, FreezeMode.INACTIVE); + if (region.getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + region.getRegionData().set(Flag.FREEZE, FreezeMode.INACTIVE); return false; } else { - region.getFlags().set(Flag.FREEZE, FreezeMode.ACTIVE); + region.getRegionData().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 03d81b62..7222acab 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 @@ -48,7 +48,7 @@ public class FreezeListener implements Listener, ScoreboardElement { @EventHandler public void onEntitySpawn(EntitySpawnEvent e) { - if (Region.getRegion(e.getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.INACTIVE)) return; + if (Region.getRegion(e.getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.INACTIVE)) return; e.setCancelled(true); if (e.getEntityType() == TrickyTrialsWrapper.impl.getTntEntityType()) { Bukkit.getScheduler().runTaskLater(BauSystem.getInstance(), () -> { @@ -60,7 +60,7 @@ public class FreezeListener implements Listener, ScoreboardElement { @EventHandler public void onBlockCanBuild(BlockCanBuildEvent e) { if (!e.isBuildable()) return; - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.INACTIVE)) return; + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.INACTIVE)) return; if (e.getMaterial() == Material.TNT) { e.setBuildable(false); e.getBlock().setType(Material.TNT, false); @@ -69,14 +69,14 @@ public class FreezeListener implements Listener, ScoreboardElement { @EventHandler public void onEntityChangeBlock(EntityChangeBlockEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onPhysicsEvent(BlockPhysicsEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { if (e.getSourceBlock().getType() == Material.NOTE_BLOCK) { BlockState state = e.getSourceBlock().getState(); NoteBlock noteBlock = (NoteBlock) state.getBlockData(); @@ -101,44 +101,44 @@ public class FreezeListener implements Listener, ScoreboardElement { @EventHandler public void onPistonExtend(BlockPistonExtendEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onPistonRetract(BlockPistonRetractEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onBlockGrow(BlockGrowEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onRedstoneEvent(BlockRedstoneEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setNewCurrent(e.getOldCurrent()); } } @EventHandler public void onBlockDispense(BlockDispenseEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().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()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (e.getDestination().getLocation() != null && Region.getRegion(e.getDestination().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); - } else if (e.getSource().getLocation() != null && Region.getRegion(e.getSource().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + } else if (e.getSource().getLocation() != null && Region.getRegion(e.getSource().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @@ -147,7 +147,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()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); e.getBlock().setType(Material.BARRIER, false); e.getBlock().setType(Material.AIR, false); @@ -170,35 +170,35 @@ public class FreezeListener implements Listener, ScoreboardElement { @EventHandler public void onFluidLevelChange(FluidLevelChangeEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onBlockSpread(BlockSpreadEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onBlockFromTo(BlockFromToEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onSpongeAbsorb(SpongeAbsorbEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @EventHandler public void onBlockForm(BlockFormEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @@ -206,7 +206,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()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getClickedBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { Block block = e.getClickedBlock(); if (block.getType() == Material.LEVER) { Switch data = ((Switch) block.getBlockData()); @@ -218,7 +218,7 @@ public class FreezeListener implements Listener, ScoreboardElement { @EventHandler public void onBlockFade(BlockFadeEvent e) { - if (Region.getRegion(e.getBlock().getLocation()).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (Region.getRegion(e.getBlock().getLocation()).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { e.setCancelled(true); } } @@ -235,7 +235,7 @@ public class FreezeListener implements Listener, ScoreboardElement { @Override public String get(Region region, Player 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); + if (region.getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.INACTIVE)) return null; + return "§e" + BauSystem.MESSAGE.parse(Flag.FREEZE.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getRegionData().get(Flag.FREEZE).getWithDefault().getChatValue(), p); } } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ItemsCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ItemsCommand.java index 819c8f62..0766b646 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ItemsCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ItemsCommand.java @@ -55,11 +55,11 @@ public class ItemsCommand extends SWCommand { } private boolean toggle(Region region) { - if (region.getFlags().get(Flag.ITEMS).isWithDefault(ItemMode.ACTIVE)) { - region.getFlags().set(Flag.ITEMS, ItemMode.INACTIVE); + if (region.getRegionData().get(Flag.ITEMS).isWithDefault(ItemMode.ACTIVE)) { + region.getRegionData().set(Flag.ITEMS, ItemMode.INACTIVE); return false; } else { - region.getFlags().set(Flag.ITEMS, ItemMode.ACTIVE); + region.getRegionData().set(Flag.ITEMS, ItemMode.ACTIVE); return true; } } 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 42c1d776..145237e2 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()).getFlags().get(Flag.ITEMS).isWithDefault(ItemMode.INACTIVE)) { + if (Region.getRegion(event.getLocation()).getRegionData().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.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); + if (region.getRegionData().get(Flag.ITEMS).isWithDefault(ItemMode.INACTIVE)) return null; + return "§e" + BauSystem.MESSAGE.parse(Flag.ITEMS.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getRegionData().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 df874d69..4fdb5822 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.getFlags().get(Flag.NO_GRAVITY).isWithDefault(NoGravityMode.ACTIVE)) { - region.getFlags().set(Flag.NO_GRAVITY, NoGravityMode.INACTIVE); + if (region.getRegionData().get(Flag.NO_GRAVITY).isWithDefault(NoGravityMode.ACTIVE)) { + region.getRegionData().set(Flag.NO_GRAVITY, NoGravityMode.INACTIVE); return false; } else { - region.getFlags().set(Flag.NO_GRAVITY, NoGravityMode.ACTIVE); + region.getRegionData().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 4dbd109f..528086e2 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()).getFlags().get(Flag.NO_GRAVITY).isWithDefault(NoGravityMode.ACTIVE)) { + if (Region.getRegion(event.getLocation()).getRegionData().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.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); + if (region.getRegionData().get(Flag.NO_GRAVITY).isWithDefault(NoGravityMode.INACTIVE)) return null; + return "§e" + BauSystem.MESSAGE.parse(Flag.NO_GRAVITY.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getRegionData().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 ad79d91a..24a985c5 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.getFlags().get(Flag.PROTECT).isWithDefault(ProtectMode.ACTIVE)) { - region.getFlags().set(Flag.PROTECT, ProtectMode.INACTIVE); + if (region.getRegionData().get(Flag.PROTECT).isWithDefault(ProtectMode.ACTIVE)) { + region.getRegionData().set(Flag.PROTECT, ProtectMode.INACTIVE); RegionUtils.actionBar(region, "REGION_PROTECT_DISABLE"); } else { - region.getFlags().set(Flag.PROTECT, ProtectMode.ACTIVE); + region.getRegionData().set(Flag.PROTECT, ProtectMode.ACTIVE); RegionUtils.actionBar(region, "REGION_PROTECT_ENABLE"); } } private Region regionCheck(Player player) { Region region = Region.getRegion(player.getLocation()); - if (!region.getFlags().has(Flag.PROTECT).isApplicable()) { + if (!region.getRegionData().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 f0b7ef16..3f933683 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 @@ -41,7 +41,7 @@ public class ProtectListener implements Listener, ScoreboardElement { private void explode(List blockList, Location location) { Region region = Region.getRegion(location); - if (region.getFlags().get(Flag.PROTECT).isWithDefault(ProtectMode.INACTIVE)) return; + if (region.getRegionData().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()); @@ -70,7 +70,7 @@ public class ProtectListener implements Listener, ScoreboardElement { @Override public String get(Region region, Player 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); + if (region.getRegionData().get(Flag.PROTECT).isWithDefault(ProtectMode.INACTIVE)) return null; + return "§e" + BauSystem.MESSAGE.parse(Flag.PROTECT.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getRegionData().get(Flag.PROTECT).getWithDefault().getChatValue(), p); } } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/RegionCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/RegionCommand.java index 2d0b58b9..f680b7d5 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/RegionCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/RegionCommand.java @@ -102,7 +102,7 @@ public class RegionCommand extends SWCommand { try { PasteBuilder pasteBuilder = new PasteBuilder(new PasteBuilder.FileProvider(region.getArea().getResetFile())) .ignoreAir(true) - .color(region.getFlags().get(Flag.COLOR).getWithDefault()); + .color(region.getRegionData().get(Flag.COLOR).getWithDefault()); region.getArea().reset(pasteBuilder, false); RegionUtils.message(region, "REGION_REGION_RESTORED"); } catch (SecurityException e) { @@ -124,7 +124,7 @@ public class RegionCommand extends SWCommand { try { PasteBuilder pasteBuilder = new PasteBuilder(new PasteBuilder.SchematicProvider(node)) .ignoreAir(true) - .color(region.getFlags().get(Flag.COLOR).getWithDefault()); + .color(region.getRegionData().get(Flag.COLOR).getWithDefault()); region.getArea().reset(pasteBuilder, false); RegionUtils.message(region, "REGION_REGION_RESTORED"); } catch (SecurityException e) { 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 0b25e5df..f02452d2 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 @@ -182,6 +182,6 @@ public class RegionListener implements Listener { } private static void tagChangedRegion(final Location location) { - Region.getRegion(location).getFlags().set(Flag.CHANGED, ChangedMode.HAS_CHANGE); + Region.getRegion(location).getRegionData().set(Flag.CHANGED, ChangedMode.HAS_CHANGE); } } \ No newline at end of file diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ResetCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ResetCommand.java index 430ee534..62790869 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ResetCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/ResetCommand.java @@ -53,9 +53,8 @@ public class ResetCommand extends SWCommand { if (region == null) return; try { PasteBuilder pasteBuilder = new PasteBuilder(new PasteBuilder.FileProvider(region.getArea().getResetFile())) - .color(region.getFlags().get(Flag.COLOR).getWithDefault()); + .color(region.getRegionData().get(Flag.COLOR).getWithDefault()); region.getArea().reset(pasteBuilder, false); - region.getFlags().clear(); region.getRegionData().clear(); RegionUtils.message(region, "REGION_RESET_RESETED"); } catch (SecurityException e) { @@ -84,7 +83,7 @@ public class ResetCommand extends SWCommand { } try { PasteBuilder pasteBuilder = new PasteBuilder(new PasteBuilder.SchematicProvider(node)) - .color(region.getFlags().get(Flag.COLOR).getWithDefault()); + .color(region.getRegionData().get(Flag.COLOR).getWithDefault()); region.getArea().reset(pasteBuilder, true); RegionUtils.message(region, "REGION_RESET_RESETED"); } catch (SecurityException e) { 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 ad6f86a4..b6c1e6ff 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 @@ -92,7 +92,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.getFlags().get(Flag.TESTBLOCK).isNotWithDefault(TestblockMode.NO_VALUE)) { + if (region.getRegionData().get(Flag.TESTBLOCK).isNotWithDefault(TestblockMode.NO_VALUE)) { return new ArrayList<>(tntModeMap.keySet()); } else { return new ArrayList<>(tntModeMapReduced.keySet()); @@ -102,7 +102,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.getFlags().get(Flag.TESTBLOCK).isNotWithDefault(TestblockMode.NO_VALUE)) { + if (region.getRegionData().get(Flag.TESTBLOCK).isNotWithDefault(TestblockMode.NO_VALUE)) { return tntModeMap.getOrDefault(s, null); } else { return tntModeMapReduced.getOrDefault(s, null); @@ -124,23 +124,23 @@ public class TNTCommand extends SWCommand { } private void tntToggle(Region region, TNTMode requestedMode, String requestedMessage) { - if (requestedMode != null && region.getFlags().get(Flag.TESTBLOCK).isNotWithDefault(TestblockMode.NO_VALUE)) { - region.getFlags().set(Flag.TNT, requestedMode); + if (requestedMode != null && region.getRegionData().get(Flag.TESTBLOCK).isNotWithDefault(TestblockMode.NO_VALUE)) { + region.getRegionData().set(Flag.TNT, requestedMode); RegionUtils.actionBar(region, requestedMessage); return; } - switch (region.getFlags().get(Flag.TNT).getWithDefault()) { + switch (region.getRegionData().get(Flag.TNT).getWithDefault()) { case ALLOW: case ONLY_TB: - region.getFlags().set(Flag.TNT, TNTMode.DENY); + region.getRegionData().set(Flag.TNT, TNTMode.DENY); RegionUtils.actionBar(region, getDisableMessage()); break; case DENY: - if (region.getFlags().get(Flag.TESTBLOCK).isNotWithDefault(TestblockMode.NO_VALUE)) { - region.getFlags().set(Flag.TNT, TNTMode.ONLY_TB); + if (region.getRegionData().get(Flag.TESTBLOCK).isNotWithDefault(TestblockMode.NO_VALUE)) { + region.getRegionData().set(Flag.TNT, TNTMode.ONLY_TB); RegionUtils.actionBar(region, getTestblockEnableMessage()); } else { - region.getFlags().set(Flag.TNT, TNTMode.ALLOW); + region.getRegionData().set(Flag.TNT, TNTMode.ALLOW); RegionUtils.actionBar(region, getEnableMessage()); } break; diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/TNTListener.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/TNTListener.java index a8676ae2..a1b4b112 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/TNTListener.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/TNTListener.java @@ -42,7 +42,7 @@ public class TNTListener implements Listener, ScoreboardElement { private void explode(List blockList) { blockList.removeIf(block -> { Region region = Region.getRegion(block.getLocation()); - TNTMode value = region.getFlags().get(Flag.TNT).getWithDefault(); + TNTMode value = region.getRegionData().get(Flag.TNT).getWithDefault(); if (value == TNTMode.ALLOW) { return false; } else if (value == TNTMode.ONLY_TB) { @@ -77,7 +77,7 @@ public class TNTListener implements Listener, ScoreboardElement { @Override public String get(Region region, Player p) { - if (region.getFlags().get(Flag.TNT).isWithDefault(TNTMode.ALLOW)) return null; - return "§e" + BauSystem.MESSAGE.parse(Flag.TNT.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getFlags().get(Flag.TNT).getWithDefault().getChatValue(), p); + if (region.getRegionData().get(Flag.TNT).isWithDefault(TNTMode.ALLOW)) return null; + return "§e" + BauSystem.MESSAGE.parse(Flag.TNT.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getRegionData().get(Flag.TNT).getWithDefault().getChatValue(), p); } } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/TestblockCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/TestblockCommand.java index 52c53a63..ff17b4ce 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/TestblockCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/TestblockCommand.java @@ -119,7 +119,7 @@ public class TestblockCommand extends SWCommand { .onlyColors(onlyColors) .removeTNT(removeTNT) .removeWater(removeWater) - .color(region.getFlags().get(Flag.COLOR).getWithDefault()); + .color(region.getRegionData().get(Flag.COLOR).getWithDefault()); region.getTestblockArea().reset(pasteBuilder, regionExtensionType == RegionExtensionType.EXTENSION); RegionUtils.message(region, "REGION_TB_DONE"); } catch (SecurityException e) { diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/ColorBauGuiItem.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/ColorBauGuiItem.java index 41edc648..397c5c6e 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/ColorBauGuiItem.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/ColorBauGuiItem.java @@ -84,14 +84,14 @@ public class ColorBauGuiItem extends BauGuiItem { @Override public ItemStack getItem(Player player) { Region region = Region.getRegion(player.getLocation()); - ColorMode mode = region.getFlags().get(Flag.COLOR).orElse(ColorMode.PINK); + ColorMode mode = region.getRegionData().get(Flag.COLOR).orElse(ColorMode.PINK); return new SWItem(mapColor(mode), BauSystem.MESSAGE.parse("REGION_ITEM_COLOR", player, BauSystem.MESSAGE.parse(mode.getChatValue(), player))).getItemStack(); } @Override public boolean click(ClickType click, Player p) { p.closeInventory(); - ColorMode current = Region.getRegion(p.getLocation()).getFlags().get(Flag.COLOR).orElse(ColorMode.PINK); + ColorMode current = Region.getRegion(p.getLocation()).getRegionData().get(Flag.COLOR).orElse(ColorMode.PINK); List> items = new ArrayList<>(); for (ColorMode value : ColorMode.values()) { items.add(new SWListInv.SWListEntry<>(new SWItem(mapColor(value), (byte) 0, "§f" + BauSystem.MESSAGE.parse(value.getChatValue(), p), Collections.emptyList(), value == current, clickType -> { diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/FireBauGuiItem.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/FireBauGuiItem.java index f7694ae9..a5ad8322 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/FireBauGuiItem.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/FireBauGuiItem.java @@ -42,10 +42,10 @@ public class FireBauGuiItem extends BauGuiItem { @Override public ItemStack getItem(Player player) { Region region = Region.getRegion(player.getLocation()); - if (!region.getFlags().has(Flag.FIRE).isApplicable()) { + if (!region.getRegionData().has(Flag.FIRE).isApplicable()) { return new SWItem(Material.BARRIER, "").getItemStack(); } - if (region.getFlags().get(Flag.FIRE).isWithDefault(FireMode.ALLOW)) { + if (region.getRegionData().get(Flag.FIRE).isWithDefault(FireMode.ALLOW)) { return new SWItem(Material.FIRE_CHARGE, BauSystem.MESSAGE.parse("REGION_ITEM_FIRE_ALLOW", player)).getItemStack(); } else { return new SWItem(Material.FIREWORK_STAR, BauSystem.MESSAGE.parse("REGION_ITEM_FIRE_DISALLOW", player)).getItemStack(); diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/FreezeBauGuiItem.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/FreezeBauGuiItem.java index ba863785..eaceea7d 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/FreezeBauGuiItem.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/FreezeBauGuiItem.java @@ -42,10 +42,10 @@ public class FreezeBauGuiItem extends BauGuiItem { @Override public ItemStack getItem(Player player) { Region region = Region.getRegion(player.getLocation()); - if (!region.getFlags().has(Flag.FREEZE).isApplicable()) { + if (!region.getRegionData().has(Flag.FREEZE).isApplicable()) { return new SWItem(Material.BARRIER, "").getItemStack(); } - if (region.getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { + if (region.getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) { return new SWItem(Material.GUNPOWDER, BauSystem.MESSAGE.parse("REGION_ITEM_FREEZE_ALLOW", player)).getItemStack(); } else { return new SWItem(Material.REDSTONE, BauSystem.MESSAGE.parse("REGION_ITEM_FREEZE_DISALLOW", player)).getItemStack(); diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/ProtectBauGuiItem.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/ProtectBauGuiItem.java index dd7f74bd..704663f3 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/ProtectBauGuiItem.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/ProtectBauGuiItem.java @@ -43,10 +43,10 @@ public class ProtectBauGuiItem extends BauGuiItem { @Override public ItemStack getItem(Player player) { Region region = Region.getRegion(player.getLocation()); - if (!region.getFlags().has(Flag.PROTECT).isApplicable()) { + if (!region.getRegionData().has(Flag.PROTECT).isApplicable()) { return new SWItem(Material.BARRIER, "").getItemStack(); } - if (region.getFlags().get(Flag.PROTECT).isWithDefault(ProtectMode.ACTIVE)) { + if (region.getRegionData().get(Flag.PROTECT).isWithDefault(ProtectMode.ACTIVE)) { return SWUtils.setCustomModelData(new SWItem(Material.OBSIDIAN, BauSystem.MESSAGE.parse("REGION_ITEM_PROTECT_ALLOW", player)), 1).getItemStack(); } else { return SWUtils.setCustomModelData(new SWItem(Material.STONE, BauSystem.MESSAGE.parse("REGION_ITEM_PROTECT_DISALLOW", player)), 1).getItemStack(); diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/TntBauGuiItem.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/TntBauGuiItem.java index d43f6895..78501fc9 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/TntBauGuiItem.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/items/TntBauGuiItem.java @@ -42,7 +42,7 @@ public class TntBauGuiItem extends BauGuiItem { @Override public ItemStack getItem(Player player) { - switch (Region.getRegion(player.getLocation()).getFlags().get(Flag.TNT).getWithDefault()) { + switch (Region.getRegion(player.getLocation()).getRegionData().get(Flag.TNT).getWithDefault()) { case DENY: return new SWItem(Material.MINECART, BauSystem.MESSAGE.parse("REGION_ITEM_TNT_OFF", player)).getItemStack(); case ONLY_TB: @@ -55,7 +55,7 @@ public class TntBauGuiItem extends BauGuiItem { @Override public boolean click(ClickType click, Player p) { if (click == ClickType.LEFT) { - switch (Region.getRegion(p.getLocation()).getFlags().get(Flag.TNT).getWithDefault()) { + switch (Region.getRegion(p.getLocation()).getRegionData().get(Flag.TNT).getWithDefault()) { case DENY: updateTntMode(TNTMode.ALLOW, p); break; diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/script/lua/libs/RegionLib.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/script/lua/libs/RegionLib.java index 265d7a45..013a2f8e 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/script/lua/libs/RegionLib.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/script/lua/libs/RegionLib.java @@ -59,14 +59,14 @@ public class RegionLib implements LuaLib { })); LuaValue tntLib = LuaValue.tableOf(); - tntLib.set("mode", getter(() -> region.get().getFlags().get(Flag.TNT).nameWithDefault())); - tntLib.set("enabled", getter(() -> region.get().getFlags().get(Flag.TNT).orElse(null) != TNTMode.DENY)); - tntLib.set("onlyTb", getter(() -> region.get().getFlags().get(Flag.TNT).orElse(null) == TNTMode.ONLY_TB)); + tntLib.set("mode", getter(() -> region.get().getRegionData().get(Flag.TNT).nameWithDefault())); + tntLib.set("enabled", getter(() -> region.get().getRegionData().get(Flag.TNT).orElse(null) != TNTMode.DENY)); + tntLib.set("onlyTb", getter(() -> region.get().getRegionData().get(Flag.TNT).orElse(null) == TNTMode.ONLY_TB)); table.set("tnt", tntLib); - table.set("fire", getter(() -> region.get().getFlags().get(Flag.FIRE).orElse(null) == FireMode.ALLOW)); - table.set("freeze", getter(() -> region.get().getFlags().get(Flag.FREEZE).orElse(null) == FreezeMode.ACTIVE)); - table.set("protect", getter(() -> region.get().getFlags().get(Flag.PROTECT).orElse(null) == ProtectMode.ACTIVE)); + table.set("fire", getter(() -> region.get().getRegionData().get(Flag.FIRE).orElse(null) == FireMode.ALLOW)); + table.set("freeze", getter(() -> region.get().getRegionData().get(Flag.FREEZE).orElse(null) == FreezeMode.ACTIVE)); + table.set("protect", getter(() -> region.get().getRegionData().get(Flag.PROTECT).orElse(null) == ProtectMode.ACTIVE)); //LuaValue traceLib = LuaValue.tableOf(); //traceLib.set("active", getter(() -> !region.get().isGlobal() && Recorder.INSTANCE.get(region.get()) instanceof ActiveTracer)); diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/data/tnt/TNTPhase.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/data/tnt/TNTPhase.java index a4c95d6c..d8f986aa 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/data/tnt/TNTPhase.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/data/tnt/TNTPhase.java @@ -65,7 +65,7 @@ public final class TNTPhase extends SimulatorPhase { @Override public void accept(World world) { Location location = position.toLocation(world); - if (Region.getRegion(location).getFlags().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) return; + if (Region.getRegion(location).getRegionData().get(Flag.FREEZE).isWithDefault(FreezeMode.ACTIVE)) return; TNTPrimed tnt = world.spawn(location, TNTPrimed.class); if (!xJump) tnt.setVelocity(tnt.getVelocity().setX(0)); if (!yJump) tnt.setVelocity(tnt.getVelocity().setY(0)); diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/execute/StabFinalizer.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/execute/StabFinalizer.java index a69b2ee8..603f59ac 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/execute/StabFinalizer.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/execute/StabFinalizer.java @@ -35,8 +35,8 @@ public class StabFinalizer extends StabStep { try { PasteBuilder.ClipboardProvider clipboardProvider = new PasteBuilder.ClipboardProviderImpl(data.clipboard); PasteBuilder pasteBuilder = new PasteBuilder(clipboardProvider); - if (data.region.getFlags().has(Flag.COLOR).isReadable()) { - pasteBuilder.color(data.region.getFlags().get(Flag.COLOR).getWithDefault()); + if (data.region.getRegionData().has(Flag.COLOR).isReadable()) { + pasteBuilder.color(data.region.getRegionData().get(Flag.COLOR).getWithDefault()); } data.region.getTestblockArea().reset(pasteBuilder, true); } catch (SecurityException e) { diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/execute/StabGenerator.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/execute/StabGenerator.java index 809358b6..13fb2bf0 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/execute/StabGenerator.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/execute/StabGenerator.java @@ -71,8 +71,8 @@ public class StabGenerator extends StabStep implements Listener { try { PasteBuilder.ClipboardProvider clipboardProvider = new PasteBuilder.ClipboardProviderImpl(data.clipboard); PasteBuilder pasteBuilder = new PasteBuilder(clipboardProvider); - if (data.region.getFlags().has(Flag.COLOR).isReadable()) { - pasteBuilder.color(data.region.getFlags().get(Flag.COLOR).getWithDefault()); + if (data.region.getRegionData().has(Flag.COLOR).isReadable()) { + pasteBuilder.color(data.region.getRegionData().get(Flag.COLOR).getWithDefault()); } data.region.getTestblockArea().reset(pasteBuilder, true); } catch (SecurityException e) { diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/BauScoreboard.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/BauScoreboard.java index 2993536b..e7492216 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/BauScoreboard.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/BauScoreboard.java @@ -121,8 +121,8 @@ public class BauScoreboard implements Listener { Region region = Region.getRegion(player.getLocation()); if (region.getType().isGlobal()) return "§eSteam§8War"; String colorCode = "§e"; - if (region.getFlags().has(Flag.COLOR).isReadable()) { - colorCode = "§" + region.getFlags().get(Flag.COLOR).orElse(ColorMode.PINK).getColorCode(); + if (region.getRegionData().has(Flag.COLOR).isReadable()) { + colorCode = "§" + region.getRegionData().get(Flag.COLOR).orElse(ColorMode.PINK).getColorCode(); } return colorCode + "■ §eSteam§8War " + colorCode + "■"; // ■ } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/BackupScheduler.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/BackupScheduler.java index 00b666e1..bf31ba6c 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/BackupScheduler.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/BackupScheduler.java @@ -41,8 +41,8 @@ public class BackupScheduler implements Enable { @Override public void run() { Iterator regionsToBackup = RegionSystem.INSTANCE.getRegions() - .filter(region -> region.getFlags().has(Flag.CHANGED).isReadable()) - .filter(region -> region.getFlags().get(Flag.CHANGED).getWithDefault() == ChangedMode.HAS_CHANGE) + .filter(region -> region.getRegionData().has(Flag.CHANGED).isReadable()) + .filter(region -> region.getRegionData().get(Flag.CHANGED).isWithDefault(ChangedMode.HAS_CHANGE)) .iterator(); if (!regionsToBackup.hasNext()) return; doBackup(regionsToBackup); @@ -63,7 +63,7 @@ public class BackupScheduler implements Enable { Optional backup = region.getBackups() .create(RegionBackups.BackupType.AUTOMATIC); if (backup.isPresent()) { - region.getFlags().set(Flag.CHANGED, ChangedMode.NO_CHANGE); + region.getRegionData().set(Flag.CHANGED, ChangedMode.NO_CHANGE); } } }.runTaskTimer(BauSystem.getInstance(), 0, 20 * 60); diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/FlagStorage.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/FlagStorage.java deleted file mode 100644 index 4b19d486..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/FlagStorage.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.region; - -import de.steamwar.bausystem.region.flags.Flag; -import lombok.NonNull; -import yapion.hierarchy.types.YAPIONObject; - -import java.util.HashMap; -import java.util.Map; - -public abstract class FlagStorage { - - protected final Map, Flag.Value> flagMap = new HashMap<>(); - protected final YAPIONObject data; - protected final Runnable onChange; - - protected FlagStorage(YAPIONObject data, Runnable onChange) { - this.data = data; - this.onChange = onChange; - initialize(); - for (final Flag flag : Flag.getFlags()) { - if (!has(flag).isWritable()) continue; - try { - String s = data.getPlainValue(flag.name()); - flagMap.put(flag, flag.valueOfValue(s)); - } catch (Exception e) { - flagMap.put(flag, (Flag.Value) flag.getDefaultValue()); - } - } - } - - protected void initialize() { - } - - @NonNull - public abstract & Flag.Value> RegionFlagPolicy has(@NonNull Flag flag); - - /** - * Returns true if the flag was changed and did not already contain the provided value - */ - public final & Flag.Value> boolean set(@NonNull Flag flag, @NonNull T value) { - if (has(flag).isWritable()) { - boolean hasChanged = flagMap.put(flag, value) != value; - if (hasChanged) { - data.put(flag.name(), value.name()); - onChange.run(); - } - return hasChanged; - } else { - return false; - } - } - - @NonNull - public final & Flag.Value> FlagOptional get(@NonNull Flag flag) { - return FlagOptional.of(flag, (T) flagMap.get(flag)); - } - - public final void clear() { - for (Flag flag : Flag.getFlags()) { - if (has(flag).isWritable()) { - flagMap.remove(flag); - data.remove(flag.name()); - } - } - onChange.run(); - } - - public final Map, Flag.Value> getBackedMap() { - return flagMap; - } - - @Override - public final String toString() { - return getClass().getSimpleName() + "{" + - "flagMap=" + flagMap + - '}'; - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/Region.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/Region.java index 0a022cfe..56b4b85e 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/Region.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/Region.java @@ -23,7 +23,6 @@ import com.sk89q.worldedit.extent.clipboard.Clipboard; import de.steamwar.bausystem.utils.FlatteningWrapper; import de.steamwar.bausystem.utils.PasteBuilder; import de.steamwar.sql.GameModeConfig; -import de.steamwar.sql.SchematicType; import lombok.NonNull; import org.bukkit.Location; import org.bukkit.Material; @@ -55,7 +54,7 @@ public interface Region { RegionType getType(); @NonNull - FlagStorage getFlags(); + RegionData getRegionData(); @NonNull Area getArea(); @@ -75,9 +74,6 @@ public interface Region { @NonNull RegionBackups getBackups(); - @NonNull - RegionData getRegionData(); - interface Area { Area EMPTY = new Area() { diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionBackups.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionBackups.java index 14c3e4a3..24c7290f 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionBackups.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionBackups.java @@ -49,7 +49,7 @@ public interface RegionBackups { private final String name; @NonNull - private final FlagStorage flags; + private final RegionData data; @CheckReturnValue public abstract boolean load(); diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionData.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionData.java index 1f3949dd..a1d94ed4 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionData.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionData.java @@ -19,76 +19,134 @@ package de.steamwar.bausystem.region; -import de.steamwar.bausystem.worlddata.WorldData; +import de.steamwar.bausystem.region.flags.Flag; import de.steamwar.sql.SchematicNode; +import lombok.NonNull; import yapion.hierarchy.types.YAPIONObject; -import java.util.Objects; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; -public interface RegionData { +public abstract class RegionData { - void clear(); + private final List> properties = new ArrayList<>(); - SchematicNode getTestblockSchematic(); + protected final YAPIONObject data; + protected final YAPIONObject flagData; + protected final Runnable onChange; + protected final Map, Flag.Value> flagMap = new HashMap<>(); - void setTestblockSchematic(SchematicNode schematic); + private final class Property { + private final String field; + private final Function loader; + private final Function writer; - RegionData EMPTY = new RegionData() { + private T value; - @Override - public void clear() { + public Property(String field, Function loader, Function writer) { + this.field = field; + this.loader = loader; + this.writer = writer; + properties.add(this); } - @Override - public SchematicNode getTestblockSchematic() { - return null; - } - - @Override - public void setTestblockSchematic(SchematicNode schematic) { - } - }; - - class RegionDataImpl implements RegionData { - - private final YAPIONObject yapionObject; - private final Runnable onChange; - - public RegionDataImpl(YAPIONObject yapionObject, Runnable onChange) { - this.yapionObject = yapionObject; - this.onChange = onChange; - - if (yapionObject.containsKey("testblockSchematic")) { - testblockSchematic = SchematicNode.getSchematicNode(yapionObject.getInt("testblockSchematic")); - } - } - - @Override - public void clear() { - testblockSchematic = null; - yapionObject.remove("testblockSchematic"); - onChange.run(); - } - - private SchematicNode testblockSchematic = null; - - @Override - public SchematicNode getTestblockSchematic() { - return testblockSchematic; - } - - @Override - public void setTestblockSchematic(SchematicNode schematic) { - if (Objects.equals(this.testblockSchematic, schematic)) { - return; - } - this.testblockSchematic = schematic; - if (schematic == null) { - yapionObject.remove("testblockSchematic"); + public void load() { + if (flagData.containsKey(field)) { + value = loader.apply(flagData.getPlainValue(field)); } else { - yapionObject.put("testblockSchematic", testblockSchematic.getId()); + value = null; + } + } + + public T get() { + return value; + } + + public void set(T value) { + this.value = value; + if (value == null) { + flagData.remove(field); + } else { + flagData.put(field, writer.apply(value)); } - onChange.run(); } } + + private Property testblockSchematic = new Property<>("testblockSchematic", SchematicNode::byId, SchematicNode::getId); + + protected RegionData(YAPIONObject data, Runnable onChange) { + this.data = data; + this.flagData = data.getObjectOrSetDefault("flagStorage", new YAPIONObject()); + this.onChange = onChange; + initialize(); + for (final Flag flag : Flag.getFlags()) { + if (!has(flag).isWritable()) continue; + try { + String s = flagData.getPlainValue(flag.name()); + flagMap.put(flag, flag.valueOfValue(s)); + } catch (Exception e) { + flagMap.put(flag, (Flag.Value) flag.getDefaultValue()); + } + } + properties.forEach(Property::load); + } + + protected void initialize() { + } + + @NonNull + public abstract & Flag.Value> RegionFlagPolicy has(@NonNull Flag flag); + + /** + * Returns true if the flag was changed and did not already contain the provided value + */ + public final & Flag.Value> boolean set(@NonNull Flag flag, @NonNull T value) { + if (has(flag).isWritable()) { + if (flagMap.put(flag, value) != value) { + flagData.put(flag.name(), value.name()); + onChange.run(); + return true; + } + } + return false; + } + + @NonNull + public final & Flag.Value> FlagOptional get(@NonNull Flag flag) { + return FlagOptional.of(flag, (T) flagMap.get(flag)); + } + + public final void clear() { + for (Flag flag : Flag.getFlags()) { + if (has(flag).isWritable()) { + flagMap.remove(flag); + flagData.remove(flag.name()); + } + } + properties.forEach(property -> property.set(null)); + onChange.run(); + } + + public final Map, Flag.Value> getBackedMap() { + return flagMap; + } + + public SchematicNode getTestblockSchematic() { + return testblockSchematic.get(); + } + + public void setTestblockSchematic(SchematicNode schematic) { + testblockSchematic.set(schematic); + onChange.run(); + } + + @Override + public final String toString() { + return getClass().getSimpleName() + "{" + + "flagMap=" + flagMap + + '}'; + } } diff --git a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedGlobalRegion.java b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedGlobalRegion.java index b5da64f5..b6aaf91e 100644 --- a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedGlobalRegion.java +++ b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedGlobalRegion.java @@ -41,7 +41,7 @@ public final class FixedGlobalRegion implements Region { private static final Point MAX_POINT = new Point(Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE); @Setter - private static FlagStorage FLAG_STORAGE; + private static RegionData FLAG_STORAGE; private static final UUID GLOBAL_REGION_ID = new UUID(0, 0); @@ -106,7 +106,7 @@ public final class FixedGlobalRegion implements Region { } @Override - public @NonNull FlagStorage getFlags() { + public @NonNull RegionData getRegionData() { return FLAG_STORAGE; } @@ -139,9 +139,4 @@ public final class FixedGlobalRegion implements Region { public @NonNull RegionBackups getBackups() { return RegionBackups.EMPTY; } - - @Override - public @NonNull RegionData getRegionData() { - return RegionData.EMPTY; - } } diff --git a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedGlobalFlagStorage.java b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedGlobalRegionData.java similarity index 91% rename from BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedGlobalFlagStorage.java rename to BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedGlobalRegionData.java index 576a550b..9906a6e4 100644 --- a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedGlobalFlagStorage.java +++ b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedGlobalRegionData.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.region.fixed; -import de.steamwar.bausystem.region.FlagStorage; +import de.steamwar.bausystem.region.RegionData; import de.steamwar.bausystem.region.RegionFlagPolicy; import de.steamwar.bausystem.region.flags.ColorMode; import de.steamwar.bausystem.region.flags.Flag; @@ -29,9 +29,9 @@ import de.steamwar.core.Core; import lombok.NonNull; import yapion.hierarchy.types.YAPIONObject; -public class FixedGlobalFlagStorage extends FlagStorage { +public class FixedGlobalRegionData extends RegionData { - public FixedGlobalFlagStorage(YAPIONObject data, Runnable onChange) { + public FixedGlobalRegionData(YAPIONObject data, Runnable onChange) { super(data, onChange); } diff --git a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedRegion.java b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedRegion.java index 0d8c03f5..62b83882 100644 --- a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedRegion.java +++ b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedRegion.java @@ -26,7 +26,6 @@ import de.steamwar.bausystem.region.flags.Flag; import de.steamwar.bausystem.region.flags.TestblockMode; import de.steamwar.bausystem.utils.FlatteningWrapper; import de.steamwar.bausystem.utils.PasteBuilder; -import de.steamwar.bausystem.worlddata.WorldData; import de.steamwar.core.Core; import de.steamwar.sql.GameModeConfig; import de.steamwar.sql.SchematicType; @@ -50,7 +49,7 @@ public class FixedRegion implements Region { private final String name; private final UUID uuid; - private final FixedFlagStorage flagStorage; + private final FixedRegionData flagStorage; private final Prototype prototype; private final String skin; @@ -60,7 +59,6 @@ public class FixedRegion implements Region { private final int floorLevel; private final int waterLevel; private final GameModeConfig gameModeConfig; - private final RegionData regionData; private final RegionHistory regionHistory = new RegionHistory.Impl(20); private final RegionBackups regionBackups = new RegionBackups() { @@ -141,7 +139,7 @@ public class FixedRegion implements Region { } } - public FixedRegion(String name, FixedFlagStorage flagStorage, Prototype prototype, YAPIONObject regionConfig, YAPIONObject regionData) { + public FixedRegion(String name, FixedRegionData flagStorage, Prototype prototype, YAPIONObject regionConfig, YAPIONObject regionData) { this.name = name; uuid = UUID.nameUUIDFromBytes(name.getBytes(StandardCharsets.UTF_8)); this.flagStorage = flagStorage; @@ -343,7 +341,6 @@ public class FixedRegion implements Region { } else { this.gameModeConfig = GameModeConfig.getByFileName(found); } - this.regionData = new RegionData.RegionDataImpl(regionData, WorldData::write); } @Override @@ -357,7 +354,7 @@ public class FixedRegion implements Region { } @Override - public @NonNull FlagStorage getFlags() { + public @NonNull RegionData getRegionData() { return flagStorage; } @@ -390,9 +387,4 @@ public class FixedRegion implements Region { public @NonNull RegionBackups getBackups() { return regionBackups; } - - @Override - public @NonNull RegionData getRegionData() { - return regionData; - } } diff --git a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedFlagStorage.java b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedRegionData.java similarity index 90% rename from BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedFlagStorage.java rename to BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedRegionData.java index 52b3b6ca..4da87bd9 100644 --- a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedFlagStorage.java +++ b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedRegionData.java @@ -19,16 +19,16 @@ package de.steamwar.bausystem.region.fixed; -import de.steamwar.bausystem.region.FlagStorage; +import de.steamwar.bausystem.region.RegionData; import de.steamwar.bausystem.region.RegionFlagPolicy; import de.steamwar.bausystem.region.flags.Flag; import de.steamwar.core.Core; import lombok.NonNull; import yapion.hierarchy.types.YAPIONObject; -public class FixedFlagStorage extends FlagStorage { +public class FixedRegionData extends RegionData { - public FixedFlagStorage(YAPIONObject data, Runnable onChange) { + public FixedRegionData(YAPIONObject data, Runnable onChange) { super(data, onChange); } diff --git a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/Prototype.java b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/Prototype.java index 1f035241..04cf7ee0 100644 --- a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/Prototype.java +++ b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/Prototype.java @@ -217,7 +217,7 @@ public class Prototype { } else { prototype = PROTOTYPE_MAP.get(regionConfig.getPlainValue("prototype")); } - FixedFlagStorage flagStorage = new FixedFlagStorage(regionData.getObjectOrSetDefault("flagStorage", new YAPIONObject()), WorldData::write); + FixedRegionData flagStorage = new FixedRegionData(regionData, WorldData::write); FixedRegionSystem.addRegion(new FixedRegion(name, flagStorage, prototype, regionConfig, regionData)); } } diff --git a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/loader/RegionLoader.java b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/loader/RegionLoader.java index e5bfd84e..c01edbdf 100644 --- a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/loader/RegionLoader.java +++ b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/loader/RegionLoader.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.region.fixed.loader; -import de.steamwar.bausystem.region.fixed.FixedGlobalFlagStorage; +import de.steamwar.bausystem.region.fixed.FixedGlobalRegionData; import de.steamwar.bausystem.region.fixed.FixedGlobalRegion; import de.steamwar.bausystem.region.fixed.Prototype; import de.steamwar.bausystem.worlddata.WorldData; @@ -80,6 +80,6 @@ public class RegionLoader { globalOptions = new YAPIONObject(); optionsYapionObject.add("global", globalOptions); } - FixedGlobalRegion.setFLAG_STORAGE(new FixedGlobalFlagStorage(globalOptions.getObjectOrSetDefault("flagStorage", new YAPIONObject()), WorldData::write)); + FixedGlobalRegion.setFLAG_STORAGE(new FixedGlobalRegionData(globalOptions, WorldData::write)); } }