diff --git a/arclight-api/src/main/java/io/izzel/arclight/api/ArclightVersion.java b/arclight-api/src/main/java/io/izzel/arclight/api/ArclightVersion.java index 7ba95701..4fae6199 100644 --- a/arclight-api/src/main/java/io/izzel/arclight/api/ArclightVersion.java +++ b/arclight-api/src/main/java/io/izzel/arclight/api/ArclightVersion.java @@ -7,6 +7,7 @@ public class ArclightVersion { public static final ArclightVersion v1_14 = new ArclightVersion("1.14.4", 1140, "v1_14_R1"); public static final ArclightVersion v1_15 = new ArclightVersion("1.15.2", 1152, "v1_15_R1"); public static final ArclightVersion v1_16 = new ArclightVersion("1.16.3", 1163, "v1_16_R2"); + public static final ArclightVersion v1_16_4 = new ArclightVersion("1.16.4", 1164, "v1_16_R3"); private final String name; private final int num; diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/ArclightRedirectAdapter.java b/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/ArclightRedirectAdapter.java index 8ff2aca7..26624d34 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/ArclightRedirectAdapter.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/ArclightRedirectAdapter.java @@ -72,6 +72,10 @@ public class ArclightRedirectAdapter implements PluginTransformer { method(Opcodes.INVOKESTATIC, Class.class, "forName", String.class, boolean.class, ClassLoader.class), method(Opcodes.INVOKESTATIC, ArclightReflectionHandler.class, "redirectForName", String.class, boolean.class, ClassLoader.class) ) + .put( + method(Opcodes.INVOKEVIRTUAL, Package.class, "getName"), + method(Opcodes.INVOKESTATIC, ArclightReflectionHandler.class, "redirectPackageGetName", Package.class) + ) .put( method(Opcodes.INVOKESTATIC, MethodType.class, "fromMethodDescriptorString", String.class, ClassLoader.class), method(Opcodes.INVOKESTATIC, ArclightReflectionHandler.class, "redirectFromDescStr", String.class, ClassLoader.class) diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/generated/ArclightReflectionHandler.java b/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/generated/ArclightReflectionHandler.java index 5d54d9fd..61de69f4 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/generated/ArclightReflectionHandler.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/generated/ArclightReflectionHandler.java @@ -1,5 +1,6 @@ package io.izzel.arclight.common.mod.util.remapper.generated; +import io.izzel.arclight.api.ArclightVersion; import io.izzel.arclight.api.Unsafe; import io.izzel.arclight.common.mod.util.remapper.ClassLoaderAdapter; import io.izzel.arclight.common.mod.util.remapper.ClassLoaderRemapper; @@ -147,6 +148,16 @@ public class ArclightReflectionHandler extends ClassLoader { } } + // srg -> bukkit + public static String redirectPackageGetName(Package pkg) { + String name = pkg.getName(); + if (name.startsWith(PREFIX)) { + return PREFIX + "server." + ArclightVersion.current().packageName(); + } else { + return name; + } + } + // bukkit -> srg public static MethodType redirectFromDescStr(String desc, ClassLoader classLoader) { String methodDesc = remapper.mapMethodDesc(desc); diff --git a/arclight-forge-1.16/src/main/java/io/izzel/arclight/server/Main_1_16.java b/arclight-forge-1.16/src/main/java/io/izzel/arclight/server/Main_1_16.java index 6de1d599..3982308a 100644 --- a/arclight-forge-1.16/src/main/java/io/izzel/arclight/server/Main_1_16.java +++ b/arclight-forge-1.16/src/main/java/io/izzel/arclight/server/Main_1_16.java @@ -12,7 +12,7 @@ public class Main_1_16 extends ArclightMain { @Override protected void afterSetup() throws Throwable { - ArclightVersion.setVersion(ArclightVersion.v1_16); + ArclightVersion.setVersion(ArclightVersion.v1_16_4); ForgeInstaller.install(); } }