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.bausystem.worlddata.WorldData;
|
||||||
import de.steamwar.command.AbstractValidator;
|
import de.steamwar.command.AbstractValidator;
|
||||||
import de.steamwar.command.SWCommandUtils;
|
import de.steamwar.command.SWCommandUtils;
|
||||||
import de.steamwar.core.CRIUSleepEvent;
|
|
||||||
import de.steamwar.core.Core;
|
import de.steamwar.core.Core;
|
||||||
import de.steamwar.core.WorldEditRendererCUIEditor;
|
import de.steamwar.core.WorldEditRendererCUIEditor;
|
||||||
import de.steamwar.core.WorldIdentifier;
|
import de.steamwar.core.WorldIdentifier;
|
||||||
@@ -51,8 +50,6 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.GameRule;
|
import org.bukkit.GameRule;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
@@ -65,7 +62,7 @@ import java.util.concurrent.atomic.AtomicReference;
|
|||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
public class BauSystem extends JavaPlugin implements Listener {
|
public class BauSystem extends JavaPlugin {
|
||||||
|
|
||||||
// This should be treated as final!
|
// This should be treated as final!
|
||||||
public static Message MESSAGE;
|
public static Message MESSAGE;
|
||||||
@@ -137,10 +134,6 @@ public class BauSystem extends JavaPlugin implements Listener {
|
|||||||
WorldIdentifier.set("bau/" + Core.getVersion() + "/" + identifier);
|
WorldIdentifier.set("bau/" + Core.getVersion() + "/" + identifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onCRIUSleep(CRIUSleepEvent event) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
linker.unlink();
|
linker.unlink();
|
||||||
|
|||||||
@@ -54,14 +54,16 @@ public interface RegionBackups {
|
|||||||
@CheckReturnValue
|
@CheckReturnValue
|
||||||
public abstract boolean load();
|
public abstract boolean load();
|
||||||
|
|
||||||
public abstract void delete();
|
|
||||||
|
|
||||||
public abstract long getCreationTime();
|
public abstract long getCreationTime();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(Backup o) {
|
public int compareTo(Backup o) {
|
||||||
return Long.compare(getCreationTime(), o.getCreationTime());
|
return Long.compare(getCreationTime(), o.getCreationTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("java:S3038") // This forces everybody to implement 'deleteRegion' for Backups!
|
||||||
|
@Override
|
||||||
|
public abstract void deleteRegion();
|
||||||
}
|
}
|
||||||
|
|
||||||
@CheckReturnValue
|
@CheckReturnValue
|
||||||
|
|||||||
@@ -41,12 +41,12 @@ public abstract class RegionData {
|
|||||||
protected RegionData(RegionDataStore store) {
|
protected RegionData(RegionDataStore store) {
|
||||||
this.store = store;
|
this.store = store;
|
||||||
initialize();
|
initialize();
|
||||||
store.loadRegionData(this);
|
store.loadRegion();
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void setStore(RegionDataStore store) {
|
public final void setStore(RegionDataStore store) {
|
||||||
this.store = store;
|
this.store = store;
|
||||||
store.saveRegionData(this);
|
store.saveRegion();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void initialize() {
|
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) {
|
public final <T extends Enum<T> & Flag.Value<T>> boolean set(@NonNull Flag<T> flag, @NonNull T value) {
|
||||||
if (has(flag).isWritable()) {
|
if (has(flag).isWritable()) {
|
||||||
if (flagMap.put(flag, value) != value) {
|
if (flagMap.put(flag, value) != value) {
|
||||||
store.saveRegionData(this);
|
store.saveRegion();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -80,7 +80,7 @@ public abstract class RegionData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
properties.forEach(property -> property.set(null));
|
properties.forEach(property -> property.set(null));
|
||||||
store.saveRegionData(this);
|
store.saveRegion();
|
||||||
}
|
}
|
||||||
|
|
||||||
public final Map<Flag<?>, Flag.Value<?>> getBackedMap() {
|
public final Map<Flag<?>, Flag.Value<?>> getBackedMap() {
|
||||||
@@ -97,7 +97,7 @@ public abstract class RegionData {
|
|||||||
|
|
||||||
public final void setTestblockSchematic(SchematicNode schematic) {
|
public final void setTestblockSchematic(SchematicNode schematic) {
|
||||||
testblockSchematic.set(schematic);
|
testblockSchematic.set(schematic);
|
||||||
store.saveRegionData(this);
|
store.saveRegion();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -19,9 +19,9 @@
|
|||||||
|
|
||||||
package de.steamwar.bausystem.region;
|
package de.steamwar.bausystem.region;
|
||||||
|
|
||||||
import lombok.NonNull;
|
|
||||||
|
|
||||||
public interface RegionDataStore {
|
public interface RegionDataStore {
|
||||||
void saveRegionData(@NonNull RegionData regionData);
|
void saveRegion();
|
||||||
void loadRegionData(@NonNull RegionData regionData);
|
void loadRegion();
|
||||||
|
default void deleteRegion() {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-1
@@ -34,6 +34,9 @@ public abstract class DynamicRegion implements Region {
|
|||||||
protected final int minX;
|
protected final int minX;
|
||||||
protected final int minZ;
|
protected final int minZ;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
protected RegionData regionData = null;
|
||||||
|
|
||||||
protected DynamicRegion(UUID id, int minX, int minZ) {
|
protected DynamicRegion(UUID id, int minX, int minZ) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.minX = minX;
|
this.minX = minX;
|
||||||
@@ -45,7 +48,10 @@ public abstract class DynamicRegion implements Region {
|
|||||||
public void update(DynamicRegion updateFrom) {
|
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() {
|
public void delete() {
|
||||||
if (getType().isCannotDelete()) return;
|
if (getType().isCannotDelete()) return;
|
||||||
|
|||||||
+2
-2
@@ -134,12 +134,12 @@ public class GlobalRegion implements Region {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveRegionData(@NonNull RegionData regionData) {
|
public void saveRegion() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void loadRegionData(@NonNull RegionData regionData) {
|
public void loadRegion() {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -142,12 +142,12 @@ public final class FixedGlobalRegion implements Region {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveRegionData(@NonNull RegionData regionData) {
|
public void saveRegion() {
|
||||||
FixedRegionDataUtils.saveRegionData("global", regionData);
|
FixedRegionDataUtils.saveRegionData("global", FLAG_STORAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void loadRegionData(@NonNull RegionData regionData) {
|
public void loadRegion() {
|
||||||
FixedRegionDataUtils.loadRegionData("global", regionData);
|
FixedRegionDataUtils.loadRegionData("global", FLAG_STORAGE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-11
@@ -133,22 +133,22 @@ public class FixedRegion implements Region {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void delete() {
|
|
||||||
file.delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getCreationTime() {
|
public long getCreationTime() {
|
||||||
return file.lastModified();
|
return file.lastModified();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveRegionData(@NonNull RegionData regionData) {
|
public void saveRegion() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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
|
@Override
|
||||||
public void saveRegionData(@NonNull RegionData regionData) {
|
public void saveRegion() {
|
||||||
FixedRegionDataUtils.saveRegionData(name, regionData);
|
FixedRegionDataUtils.saveRegionData(name, flagStorage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void loadRegionData(@NonNull RegionData regionData) {
|
public void loadRegion() {
|
||||||
FixedRegionDataUtils.loadRegionData(name, regionData);
|
FixedRegionDataUtils.loadRegionData(name, flagStorage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user