- Saving iris and mc version data to engine

This commit is contained in:
RePixelatedMC
2023-12-23 14:56:12 +01:00
parent 39f59e023c
commit d73c2a65ae
3 changed files with 57 additions and 23 deletions
@@ -24,6 +24,7 @@ import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.ServerConfigurator; import com.volmit.iris.core.ServerConfigurator;
import com.volmit.iris.core.pregenerator.PregenTask; import com.volmit.iris.core.pregenerator.PregenTask;
import com.volmit.iris.core.service.StudioSVC; 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.object.IrisDimension;
import com.volmit.iris.engine.platform.PlatformChunkGenerator; import com.volmit.iris.engine.platform.PlatformChunkGenerator;
import com.volmit.iris.core.safeguard.UtilsSFG; 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.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Supplier; 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.tools.IrisPackBenchmarking.benchmark;
import static com.volmit.iris.core.safeguard.IrisSafeguard.unstablemode; import static com.volmit.iris.core.safeguard.IrisSafeguard.unstablemode;
@@ -173,7 +176,6 @@ public class IrisCreator {
} }
} }
} }
//if (benchmark){loaded = true;}
}); });
@@ -52,6 +52,7 @@ import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.ToString; import lombok.ToString;
import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.block.data.BlockData; 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.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Data @Data
@EqualsAndHashCode(exclude = "context") @EqualsAndHashCode(exclude = "context")
@@ -254,7 +257,10 @@ public class IrisEngine implements Engine {
if (!f.exists()) { if (!f.exists()) {
try { try {
f.getParentFile().mkdirs(); 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) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
@@ -521,4 +527,37 @@ public class IrisEngine implements Engine {
public int getCacheID() { public int getCacheID() {
return cacheId; 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;
}
}
} }
@@ -29,35 +29,28 @@ import java.util.regex.Pattern;
public class IrisEngineStatistics { public class IrisEngineStatistics {
private int totalHotloads = 0; private int totalHotloads = 0;
private int chunksGenerated = 0; private int chunksGenerated = 0;
private String IrisCreationVersion = getVersion(); private int IrisCreationVersion = 0;
private String MinecraftVersion = getMCVersion(); private int MinecraftVersion = 0;
public void generatedChunk() { public void generatedChunk() {
chunksGenerated++; chunksGenerated++;
} }
public String getVersion() { public void setVersion(int i) {
String input = Iris.instance.getDescription().getVersion(); IrisCreationVersion = i;
int hyphenIndex = input.indexOf('-');
String result = null;
if (hyphenIndex != -1) {
result = input.substring(0, hyphenIndex);
}
return result;
} }
public String getMCVersion() {
String bukkitVersion = "git-Purpur-2023 (MC: 1.20.1)";
Pattern pattern = Pattern.compile("\\(MC: (\\d+\\.\\d+(\\.\\d+)?)\\)"); public void setMCVersion(int i) {
Matcher matcher = pattern.matcher(bukkitVersion); MinecraftVersion = i;
if (matcher.find()) {
return matcher.group(1);
} else {
return "ERROR"; // todo: Maybe do something ?
}
} }
public int getMCVersion() {
return MinecraftVersion;
}
public int getVersion() {
return MinecraftVersion;
}
public void hotloaded() { public void hotloaded() {