forked from SteamWar/SteamWar
Improve API of RegionDataStore, RegionBackups.Backup
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 <T extends Enum<T> & Flag.Value<T>> boolean set(@NonNull Flag<T> 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<?>, 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
|
||||
|
||||
@@ -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() {
|
||||
}
|
||||
}
|
||||
|
||||
+7
-1
@@ -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;
|
||||
|
||||
+2
-2
@@ -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() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+11
-11
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user