9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-31 04:46:37 +00:00

refactor(VersionHelper): 重构版本辅助类

- 全部final
This commit is contained in:
jhqwqmc
2025-04-26 17:25:03 +08:00
parent 2412ac11bb
commit 9b20aa7819

View File

@@ -13,83 +13,83 @@ public class VersionHelper {
ReflectionUtils.getDeclaredField(clazz$DetectedVersion, clazz$WorldVersion, 0));
public static final Field field$DetectedVersion$name = requireNonNull(
ReflectionUtils.getDeclaredField(clazz$DetectedVersion, String.class, 1));
private static final float version;
private static final boolean mojmap;
private static final boolean folia;
private static final boolean paper;
private static final boolean v1_20;
private static final boolean v1_20_1;
private static final boolean v1_20_2;
private static final boolean v1_20_3;
private static final boolean v1_20_4;
private static final boolean v1_20_5;
private static final boolean v1_20_6;
private static final boolean v1_21;
private static final boolean v1_21_1;
private static final boolean v1_21_2;
private static final boolean v1_21_3;
private static final boolean v1_21_4;
private static final boolean v1_21_5;
static {
try {
Object detectedVersion = field$DetectedVersion$BUILT_IN.get(null);
String name = (String) field$DetectedVersion$name.get(detectedVersion);
init(name);
String[] split = name.split("\\.");
version = Float.parseFloat(split[1] + "." + (split.length == 3 ? split[2] : "0"));
mojmap = checkMojMap();
folia = checkFolia();
paper = checkPaper();
v1_20 = version >= 20f;
v1_20_1 = version >= 20.1f;
v1_20_2 = version >= 20.2f;
v1_20_3 = version >= 20.3f;
v1_20_4 = version >= 20.4f;
v1_20_5 = version >= 20.5f;
v1_20_6 = version >= 20.6f;
v1_21 = version >= 21f;
v1_21_1 = version >= 21.1f;
v1_21_2 = version >= 21.2f;
v1_21_3 = version >= 21.3f;
v1_21_4 = version >= 21.4f;
v1_21_5 = version >= 21.5f;
} catch (ReflectiveOperationException e) {
throw new RuntimeException(e);
}
}
private static float version;
private static boolean mojmap;
private static boolean folia;
private static boolean paper;
private static boolean v1_20;
private static boolean v1_20_1;
private static boolean v1_20_2;
private static boolean v1_20_3;
private static boolean v1_20_4;
private static boolean v1_20_5;
private static boolean v1_20_6;
private static boolean v1_21;
private static boolean v1_21_1;
private static boolean v1_21_2;
private static boolean v1_21_3;
private static boolean v1_21_4;
private static boolean v1_21_5;
public static void init(String serverVersion) {
String[] split = serverVersion.split("\\.");
version = Float.parseFloat(split[1] + "." + (split.length == 3 ? split[2] : "0"));
checkMojMap();
checkFolia();
checkPaper();
v1_20 = version >= 20f;
v1_20_1 = version >= 20.1f;
v1_20_2 = version >= 20.2f;
v1_20_3 = version >= 20.3f;
v1_20_4 = version >= 20.4f;
v1_20_5 = version >= 20.5f;
v1_20_6 = version >= 20.6f;
v1_21 = version >= 21f;
v1_21_1 = version >= 21.1f;
v1_21_2 = version >= 21.2f;
v1_21_3 = version >= 21.3f;
v1_21_4 = version >= 21.4f;
v1_21_5 = version >= 21.5f;
}
public static float version() {
return version;
}
private static void checkMojMap() {
private static boolean checkMojMap() {
// Check if the server is Mojmap
try {
Class.forName("net.minecraft.network.protocol.game.ClientboundBossEventPacket");
mojmap = true;
return true;
} catch (ClassNotFoundException ignored) {
}
return false;
}
private static void checkFolia() {
private static boolean checkFolia() {
try {
Class.forName("io.papermc.paper.threadedregions.RegionizedServer");
folia = true;
return true;
} catch (ClassNotFoundException ignored) {
}
return false;
}
private static void checkPaper() {
private static boolean checkPaper() {
try {
Class.forName("io.papermc.paper.adventure.PaperAdventure");
paper = true;
return true;
} catch (ClassNotFoundException ignored) {
}
return false;
}
public static boolean isFolia() {