Update PrototypeLoader and RegionLoader to DiffSystem
Dieser Commit ist enthalten in:
Ursprung
90026b8903
Commit
b61138efee
@ -22,6 +22,8 @@ package de.steamwar.bausystem.region.loader;
|
||||
import de.steamwar.bausystem.region.Prototype;
|
||||
import lombok.experimental.UtilityClass;
|
||||
import org.bukkit.Bukkit;
|
||||
import yapion.hierarchy.diff.DiffBase;
|
||||
import yapion.hierarchy.diff.YAPIONDiff;
|
||||
import yapion.hierarchy.types.YAPIONObject;
|
||||
import yapion.parser.YAPIONParser;
|
||||
|
||||
@ -33,7 +35,7 @@ import java.io.IOException;
|
||||
@UtilityClass
|
||||
public class PrototypeLoader {
|
||||
|
||||
private int loadedVersion = 0;
|
||||
private YAPIONObject loaded = null;
|
||||
public static final File file = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "prototypes.yapion");
|
||||
|
||||
public void load() {
|
||||
@ -44,11 +46,10 @@ public class PrototypeLoader {
|
||||
throw new SecurityException(e.getMessage(), e);
|
||||
}
|
||||
|
||||
int currentVersion = yapionObject.getPlainValueOrDefault("@version", -1);
|
||||
if (currentVersion != loadedVersion && loadedVersion != 0) {
|
||||
if (loaded != null && new YAPIONDiff(loaded, yapionObject).getDiffs().stream().anyMatch(diffBase -> !(diffBase instanceof DiffBase.DiffChange))) {
|
||||
throw new SecurityException("Version was not the specified version needed.");
|
||||
}
|
||||
loadedVersion = currentVersion;
|
||||
loaded = yapionObject;
|
||||
|
||||
yapionObject.forEach((key, yapionAnyType) -> {
|
||||
if (yapionAnyType instanceof YAPIONObject) {
|
||||
|
@ -24,6 +24,8 @@ import de.steamwar.bausystem.region.GlobalRegion;
|
||||
import de.steamwar.bausystem.region.Prototype;
|
||||
import lombok.experimental.UtilityClass;
|
||||
import org.bukkit.Bukkit;
|
||||
import yapion.hierarchy.diff.DiffBase;
|
||||
import yapion.hierarchy.diff.YAPIONDiff;
|
||||
import yapion.hierarchy.output.FileOutput;
|
||||
import yapion.hierarchy.types.YAPIONObject;
|
||||
import yapion.hierarchy.types.YAPIONType;
|
||||
@ -37,7 +39,7 @@ import java.io.IOException;
|
||||
@UtilityClass
|
||||
public class RegionLoader {
|
||||
|
||||
private int loadedVersion = 0;
|
||||
private YAPIONObject loaded = null;
|
||||
private YAPIONObject optionsYapionObject;
|
||||
public static final File file = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "regions.yapion");
|
||||
|
||||
@ -57,11 +59,10 @@ public class RegionLoader {
|
||||
throw new SecurityException(e.getMessage(), e);
|
||||
}
|
||||
|
||||
int currentVersion = yapionObject.getPlainValueOrDefault("@version", -1);
|
||||
if (currentVersion != loadedVersion && loadedVersion != 0) {
|
||||
if (loaded != null && new YAPIONDiff(loaded, yapionObject).getDiffs().stream().anyMatch(diffBase -> !(diffBase instanceof DiffBase.DiffChange))) {
|
||||
throw new SecurityException("Version was not the specified version needed.");
|
||||
}
|
||||
loadedVersion = currentVersion;
|
||||
loaded = yapionObject;
|
||||
|
||||
File optionsFile = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "options.yapion");
|
||||
optionsYapionObject = new YAPIONObject();
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren