From 327ea9351ac64211974ef0986626b5a6ebe701b9 Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Sun, 1 Mar 2026 14:05:33 +0100 Subject: [PATCH] Improve API of RegionDataStore, RegionBackups.Backup --- .../src/de/steamwar/bausystem/BauSystem.java | 9 +------- .../bausystem/region/RegionBackups.java | 6 +++-- .../steamwar/bausystem/region/RegionData.java | 10 ++++----- .../bausystem/region/RegionDataStore.java | 8 +++---- .../region/dynamic/DynamicRegion.java | 8 ++++++- .../region/dynamic/global/GlobalRegion.java | 4 ++-- .../region/fixed/FixedGlobalRegion.java | 8 +++---- .../bausystem/region/fixed/FixedRegion.java | 22 +++++++++---------- 8 files changed, 38 insertions(+), 37 deletions(-) diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/BauSystem.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/BauSystem.java index f17b03a6..f3f6a950 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/BauSystem.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/BauSystem.java @@ -38,7 +38,6 @@ import de.steamwar.bausystem.utils.TickManager; import de.steamwar.bausystem.worlddata.WorldData; import de.steamwar.command.AbstractValidator; import de.steamwar.command.SWCommandUtils; -import de.steamwar.core.CRIUSleepEvent; import de.steamwar.core.Core; import de.steamwar.core.WorldEditRendererCUIEditor; import de.steamwar.core.WorldIdentifier; @@ -51,8 +50,6 @@ import org.bukkit.Bukkit; import org.bukkit.GameRule; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitRunnable; @@ -65,7 +62,7 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; import java.util.logging.Level; -public class BauSystem extends JavaPlugin implements Listener { +public class BauSystem extends JavaPlugin { // This should be treated as final! public static Message MESSAGE; @@ -137,10 +134,6 @@ public class BauSystem extends JavaPlugin implements Listener { WorldIdentifier.set("bau/" + Core.getVersion() + "/" + identifier); } - @EventHandler - public void onCRIUSleep(CRIUSleepEvent event) { - } - @Override public void onDisable() { linker.unlink(); 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 c21ba501..f8798971 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionBackups.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionBackups.java @@ -54,14 +54,16 @@ public interface RegionBackups { @CheckReturnValue public abstract boolean load(); - public abstract void delete(); - public abstract long getCreationTime(); @Override public int compareTo(Backup o) { return Long.compare(getCreationTime(), o.getCreationTime()); } + + @SuppressWarnings("java:S3038") // This forces everybody to implement 'deleteRegion' for Backups! + @Override + public abstract void deleteRegion(); } @CheckReturnValue 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 cbeebb69..3e0ff06c 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionData.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionData.java @@ -41,12 +41,12 @@ public abstract class RegionData { protected RegionData(RegionDataStore store) { this.store = store; initialize(); - store.loadRegionData(this); + store.loadRegion(); } public final void setStore(RegionDataStore store) { this.store = store; - store.saveRegionData(this); + store.saveRegion(); } protected void initialize() { @@ -61,7 +61,7 @@ public abstract class RegionData { public final & Flag.Value> boolean set(@NonNull Flag flag, @NonNull T value) { if (has(flag).isWritable()) { if (flagMap.put(flag, value) != value) { - store.saveRegionData(this); + store.saveRegion(); return true; } } @@ -80,7 +80,7 @@ public abstract class RegionData { } } properties.forEach(property -> property.set(null)); - store.saveRegionData(this); + store.saveRegion(); } public final Map, Flag.Value> getBackedMap() { @@ -97,7 +97,7 @@ public abstract class RegionData { public final void setTestblockSchematic(SchematicNode schematic) { testblockSchematic.set(schematic); - store.saveRegionData(this); + store.saveRegion(); } @Override diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionDataStore.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionDataStore.java index 8515106b..4784ad72 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionDataStore.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/RegionDataStore.java @@ -19,9 +19,9 @@ package de.steamwar.bausystem.region; -import lombok.NonNull; - public interface RegionDataStore { - void saveRegionData(@NonNull RegionData regionData); - void loadRegionData(@NonNull RegionData regionData); + void saveRegion(); + void loadRegion(); + default void deleteRegion() { + } } diff --git a/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/dynamic/DynamicRegion.java b/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/dynamic/DynamicRegion.java index 722e5ba7..334f5a94 100644 --- a/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/dynamic/DynamicRegion.java +++ b/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/dynamic/DynamicRegion.java @@ -34,6 +34,9 @@ public abstract class DynamicRegion implements Region { protected final int minX; protected final int minZ; + @Getter + protected RegionData regionData = null; + protected DynamicRegion(UUID id, int minX, int minZ) { this.id = id; this.minX = minX; @@ -45,7 +48,10 @@ public abstract class DynamicRegion implements Region { public void update(DynamicRegion updateFrom) { } - public abstract void setRegionData(@NonNull RegionData regionData); + public void setRegionData(@NonNull RegionData regionData) { + regionData.setStore(this); + this.regionData = regionData; + } public void delete() { if (getType().isCannotDelete()) return; diff --git a/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/dynamic/global/GlobalRegion.java b/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/dynamic/global/GlobalRegion.java index 063e38f7..6aaf45f1 100644 --- a/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/dynamic/global/GlobalRegion.java +++ b/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/dynamic/global/GlobalRegion.java @@ -134,12 +134,12 @@ public class GlobalRegion implements Region { } @Override - public void saveRegionData(@NonNull RegionData regionData) { + public void saveRegion() { } @Override - public void loadRegionData(@NonNull RegionData regionData) { + public void loadRegion() { } } 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 6b0523a9..3f31baa8 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 @@ -142,12 +142,12 @@ public final class FixedGlobalRegion implements Region { } @Override - public void saveRegionData(@NonNull RegionData regionData) { - FixedRegionDataUtils.saveRegionData("global", regionData); + public void saveRegion() { + FixedRegionDataUtils.saveRegionData("global", FLAG_STORAGE); } @Override - public void loadRegionData(@NonNull RegionData regionData) { - FixedRegionDataUtils.loadRegionData("global", regionData); + public void loadRegion() { + FixedRegionDataUtils.loadRegionData("global", FLAG_STORAGE); } } 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 cc020657..d9c8c06b 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 @@ -133,22 +133,22 @@ public class FixedRegion implements Region { return true; } - @Override - public void delete() { - file.delete(); - } - @Override public long getCreationTime() { return file.lastModified(); } @Override - public void saveRegionData(@NonNull RegionData regionData) { + public void saveRegion() { } @Override - public void loadRegionData(@NonNull RegionData regionData) { + public void loadRegion() { + } + + @Override + public void deleteRegion() { + file.delete(); } } @@ -402,12 +402,12 @@ public class FixedRegion implements Region { } @Override - public void saveRegionData(@NonNull RegionData regionData) { - FixedRegionDataUtils.saveRegionData(name, regionData); + public void saveRegion() { + FixedRegionDataUtils.saveRegionData(name, flagStorage); } @Override - public void loadRegionData(@NonNull RegionData regionData) { - FixedRegionDataUtils.loadRegionData(name, regionData); + public void loadRegion() { + FixedRegionDataUtils.loadRegionData(name, flagStorage); } }