From d73c2a65aeeca2326683a3e3c25b07167198dd3c Mon Sep 17 00:00:00 2001 From: RePixelatedMC Date: Sat, 23 Dec 2023 14:56:12 +0100 Subject: [PATCH] - Saving iris and mc version data to engine --- .../volmit/iris/core/tools/IrisCreator.java | 4 +- .../com/volmit/iris/engine/IrisEngine.java | 41 ++++++++++++++++++- .../engine/object/IrisEngineStatistics.java | 35 +++++++--------- 3 files changed, 57 insertions(+), 23 deletions(-) diff --git a/core/src/main/java/com/volmit/iris/core/tools/IrisCreator.java b/core/src/main/java/com/volmit/iris/core/tools/IrisCreator.java index f9cb549c0..7e6285d07 100644 --- a/core/src/main/java/com/volmit/iris/core/tools/IrisCreator.java +++ b/core/src/main/java/com/volmit/iris/core/tools/IrisCreator.java @@ -24,6 +24,7 @@ import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.ServerConfigurator; import com.volmit.iris.core.pregenerator.PregenTask; import com.volmit.iris.core.service.StudioSVC; +import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.object.IrisDimension; import com.volmit.iris.engine.platform.PlatformChunkGenerator; import com.volmit.iris.core.safeguard.UtilsSFG; @@ -45,6 +46,8 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Supplier; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import static com.volmit.iris.core.tools.IrisPackBenchmarking.benchmark; import static com.volmit.iris.core.safeguard.IrisSafeguard.unstablemode; @@ -173,7 +176,6 @@ public class IrisCreator { } } } - //if (benchmark){loaded = true;} }); diff --git a/core/src/main/java/com/volmit/iris/engine/IrisEngine.java b/core/src/main/java/com/volmit/iris/engine/IrisEngine.java index d1eea7cc3..1f70e8d54 100644 --- a/core/src/main/java/com/volmit/iris/engine/IrisEngine.java +++ b/core/src/main/java/com/volmit/iris/engine/IrisEngine.java @@ -52,6 +52,7 @@ import com.volmit.iris.util.scheduling.PrecisionStopwatch; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; +import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; @@ -64,6 +65,8 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; +import java.util.regex.Matcher; +import java.util.regex.Pattern; @Data @EqualsAndHashCode(exclude = "context") @@ -254,7 +257,10 @@ public class IrisEngine implements Engine { if (!f.exists()) { try { f.getParentFile().mkdirs(); - IO.writeAll(f, new Gson().toJson(new IrisEngineData())); + IrisEngineData data = new IrisEngineData(); + data.getStatistics().setVersion(getIrisVersion()); + data.getStatistics().setMCVersion(getMCVersion()); + IO.writeAll(f, new Gson().toJson(data)); } catch (IOException e) { e.printStackTrace(); } @@ -521,4 +527,37 @@ public class IrisEngine implements Engine { public int getCacheID() { return cacheId; } + + private int getIrisVersion() { + String input = Iris.instance.getDescription().getVersion(); + int hyphenIndex = input.indexOf('-'); + if (hyphenIndex != -1) { + String result = input.substring(0, hyphenIndex); + result = result.replaceAll("\\.", ""); + return Integer.parseInt(result); + } + Iris.error("Failed to assign a Iris Version"); + return 0; + } + + private int getMCVersion() { + try { + String version = Bukkit.getVersion(); + Matcher matcher = Pattern.compile("\\(MC: ([\\d.]+)\\)").matcher(version); + if (matcher.find()) { + version = matcher.group(1).replaceAll("\\.", ""); + long versionNumber = Long.parseLong(version); + if (versionNumber > Integer.MAX_VALUE) { + return -1; + } + return (int) versionNumber; + } + Iris.error("Failed to assign a Minecraft Version"); + return -1; + } catch (Exception e) { + Iris.error("Failed to assign a Minecraft Version"); + return -1; + } + } + } diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisEngineStatistics.java b/core/src/main/java/com/volmit/iris/engine/object/IrisEngineStatistics.java index f41a9b5c4..552f27466 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisEngineStatistics.java +++ b/core/src/main/java/com/volmit/iris/engine/object/IrisEngineStatistics.java @@ -29,35 +29,28 @@ import java.util.regex.Pattern; public class IrisEngineStatistics { private int totalHotloads = 0; private int chunksGenerated = 0; - private String IrisCreationVersion = getVersion(); - private String MinecraftVersion = getMCVersion(); + private int IrisCreationVersion = 0; + private int MinecraftVersion = 0; public void generatedChunk() { chunksGenerated++; } - public String getVersion() { - String input = Iris.instance.getDescription().getVersion(); - int hyphenIndex = input.indexOf('-'); - - String result = null; - if (hyphenIndex != -1) { - result = input.substring(0, hyphenIndex); - } - return result; + public void setVersion(int i) { + IrisCreationVersion = i; } - public String getMCVersion() { - String bukkitVersion = "git-Purpur-2023 (MC: 1.20.1)"; - Pattern pattern = Pattern.compile("\\(MC: (\\d+\\.\\d+(\\.\\d+)?)\\)"); - Matcher matcher = pattern.matcher(bukkitVersion); - - if (matcher.find()) { - return matcher.group(1); - } else { - return "ERROR"; // todo: Maybe do something ? - } + public void setMCVersion(int i) { + MinecraftVersion = i; } + public int getMCVersion() { + return MinecraftVersion; + } + public int getVersion() { + return MinecraftVersion; + } + + public void hotloaded() {