From 7a1e152229a2273f90568c9aea76b5d7c20c8cad Mon Sep 17 00:00:00 2001 From: gnembon <41132274+gnembon@users.noreply.github.com> Date: Thu, 16 May 2024 08:55:50 +0200 Subject: [PATCH] infer release target from minecraft mod container --- src/main/java/carpet/CarpetSettings.java | 6 +++++- src/main/java/carpet/script/external/Vanilla.java | 3 +-- src/main/java/carpet/script/utils/SystemInfo.java | 14 +++++--------- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/java/carpet/CarpetSettings.java b/src/main/java/carpet/CarpetSettings.java index 8b83e4541..61253d59d 100644 --- a/src/main/java/carpet/CarpetSettings.java +++ b/src/main/java/carpet/CarpetSettings.java @@ -10,6 +10,7 @@ import carpet.utils.CommandHelper; import carpet.utils.Messenger; import net.fabricmc.loader.api.FabricLoader; +import net.fabricmc.loader.api.SemanticVersion; import net.minecraft.commands.CommandSourceStack; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; @@ -48,7 +49,10 @@ public class CarpetSettings { public static final String carpetVersion = FabricLoader.getInstance().getModContainer("carpet").orElseThrow().getMetadata().getVersion().toString(); - public static final String releaseTarget = "1.20.5"; + public static final int [] releaseTarget = { + ((SemanticVersion)FabricLoader.getInstance().getModContainer("minecraft").orElseThrow().getMetadata().getVersion()).getVersionComponent(1), + ((SemanticVersion)FabricLoader.getInstance().getModContainer("minecraft").orElseThrow().getMetadata().getVersion()).getVersionComponent(2) + }; public static final Logger LOG = LoggerFactory.getLogger("carpet"); public static final ThreadLocal skipGenerationChecks = ThreadLocal.withInitial(() -> false); public static final ThreadLocal impendingFillSkipUpdates = ThreadLocal.withInitial(() -> false); diff --git a/src/main/java/carpet/script/external/Vanilla.java b/src/main/java/carpet/script/external/Vanilla.java index 76d2508bb..f046ae623 100644 --- a/src/main/java/carpet/script/external/Vanilla.java +++ b/src/main/java/carpet/script/external/Vanilla.java @@ -183,8 +183,7 @@ public static int MinecraftServer_getRunPermissionLevel(MinecraftServer server) return CarpetSettings.runPermissionLevel; } - @Deprecated - public static String MinecraftServer_getReleaseTarget(MinecraftServer server) + public static int [] MinecraftServer_getReleaseTarget(MinecraftServer server) { return CarpetSettings.releaseTarget; } diff --git a/src/main/java/carpet/script/utils/SystemInfo.java b/src/main/java/carpet/script/utils/SystemInfo.java index 7a0d5e77a..0174d904a 100644 --- a/src/main/java/carpet/script/utils/SystemInfo.java +++ b/src/main/java/carpet/script/utils/SystemInfo.java @@ -84,16 +84,12 @@ public class SystemInfo put("game_view_distance", c -> new NumericValue(c.server().getPlayerList().getViewDistance())); put("game_mod_name", c -> StringValue.of(c.server().getServerModName())); put("game_version", c -> StringValue.of(c.server().getServerVersion())); - put("game_target", c -> StringValue.of(Vanilla.MinecraftServer_getReleaseTarget(c.server()))); + put("game_target", c -> StringValue.of(String.format("1.%d.%d", + Vanilla.MinecraftServer_getReleaseTarget(c.server())[0], + Vanilla.MinecraftServer_getReleaseTarget(c.server())[1]))); put("game_protocol", c -> NumericValue.of(SharedConstants.getProtocolVersion())); - put("game_major_target", c -> { - String[] vers = Vanilla.MinecraftServer_getReleaseTarget(c.server()).split("\\."); - return NumericValue.of((vers.length > 1) ? Integer.parseInt(vers[1]) : 0); - }); - put("game_minor_target", c -> { - String[] vers = Vanilla.MinecraftServer_getReleaseTarget(c.server()).split("\\."); - return NumericValue.of((vers.length > 2) ? Integer.parseInt(vers[2]) : 0); - }); + put("game_major_target", c -> NumericValue.of(Vanilla.MinecraftServer_getReleaseTarget(c.server())[0])); + put("game_minor_target", c -> NumericValue.of(Vanilla.MinecraftServer_getReleaseTarget(c.server())[1])); put("game_stable", c -> BooleanValue.of(SharedConstants.getCurrentVersion().isStable())); put("game_data_version", c -> NumericValue.of(SharedConstants.getCurrentVersion().getDataVersion().getVersion())); put("game_pack_version", c -> NumericValue.of(SharedConstants.getCurrentVersion().getPackVersion(PackType.SERVER_DATA)));