Skip to content

Conversation

@teddyxlandlee
Copy link
Collaborator

This PR:

  • Gets rid of the dirty defineClass method in Java 9+, by moving the inner class to me.fengming.vaultpatcher_asm.core.transformers package, marking synthetic, and defining via MethodHandles.Lookup.defineClass()
  • Adds MojMaps target names, expected to be compatible with NeoForge 1.20.2+, MinecraftForge 1.20.6+, and Unobfuscated Minecraft 25w45a+.
  • Implements some minor optimizations, e.g. java.io -> java.nio.file

Expected to run on 1.21.10 (and 25w45a_unobfuscated) on all platforms. Not tested, the mod has too many functions that I don't think I can cover the edge cases in limited time.

@3093FengMing
Copy link
Owner

Nice job. 等我再测试一下看看

@M3MEMonster
Copy link
Collaborator

M3MEMonster commented Nov 17, 2025

image

自1.20.4以上Forge环境中, VP无法读取MC版本

自1.21.9以上NeoForge环境中,VP会被视为Fabric模组,NeoForge会阻止游戏加载

Fabric环境中均正常

这两个问题并不是你的修改造成的,但你的修改也没有解决这些问题

实际硬编码替换待测试,目前正在寻找合适的mod

@M3MEMonster
Copy link
Collaborator

NeoForge问题已解决,Forge读取版本仍有问题
[09:32:41] [main/ERROR]: [VaultPatcher] unrecognizable version 1.21.10, disabling dynamic replace.
java.lang.NumberFormatException: For input string: ".21"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) ~[?:?]
at java.base/java.lang.Integer.parseInt(Integer.java:648) ~[?:?]
at java.base/java.lang.Integer.parseUnsignedInt(Integer.java:840) ~[?:?]
at java.base/java.lang.Integer.parseUnsignedInt(Integer.java:934) ~[?:?]
at LAYER SERVICE/[email protected]+4/me.fengming.vaultpatcher_asm.loader.modlauncher.VPTransformationService.isLegacyVersion(VPTransformationService.java:72) [vaultpatcher-all-1.4.7-alpha+4.jar!/:?]
at LAYER SERVICE/[email protected]+4/me.fengming.vaultpatcher_asm.loader.modlauncher.VPTransformationService.initialize(VPTransformationService.java:54) [vaultpatcher-all-1.4.7-alpha+4.jar!/:?]
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServiceDecorator.onInitialize(TransformationServiceDecorator.java:50) [modlauncher-10.2.4.jar!/:?]
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.initialiseTransformationServices(TransformationServicesHandler.java:91) [modlauncher-10.2.4.jar!/:?]
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:45) [modlauncher-10.2.4.jar!/:?]
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:88) [modlauncher-10.2.4.jar!/:?]
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75) [modlauncher-10.2.4.jar!/:?]
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17) [modlauncher-10.2.4.jar!/:?]
at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188) [bootstrap-2.1.8.jar!/:?]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133) [bootstrap-2.1.8.jar:2.1.8]
at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53) [bootstrap-2.1.8.jar:2.1.8]
at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19) [bootstrap-2.1.8.jar:2.1.8]
[09:32:41] [main/WARN]: [VaultPatcher] Disable dynamic replace because the game version is 1.16.5 or below (your version: 1.21.10)

@teddyxlandlee
Copy link
Collaborator Author

@M3MEMonster I'm fixing the NeoForge & Forge problem.

NeoForge 1.21.9+ uses a completely different framework than modlauncher. Trying to adapt.

@teddyxlandlee
Copy link
Collaborator Author

Plus, @3093FengMing please note that there are tons of unsafe public static non-final fields in the codebase, as well as incredibly slow access methods to probe target classes. Immature codestyle is making code maintenance a tough work.

@M3MEMonster
Copy link
Collaborator

M3MEMonster commented Nov 18, 2025

Oh, you speak English. What I mean is NeoForge's issue has been solved by your newest patch, and in Forge environment, VP can read the version but it still has problem that VP can't recognize it well.
By the way, I have an unformed and bold idea--Transplant VP to NilLoader(https://git.sleeping.town/Nil/NilLoader), using it as a Java Agent to get maximium compatibility. Do you think it is possible in reansonable time?

@teddyxlandlee
Copy link
Collaborator Author

@M3MEMonster No need to transplant to NilLoader -- no major modding platform needs a javaagent for ClassNode-based binpatches.
We have mm on Fabric, launcherwrapper on legacy Forge, modlauncher on modern Forge & legacy NeoForge, and ClassProcessor on latest NeoForge. All of them support transform(/*non-const*/ String, Consumer<ClassNode>) process before classloading.

@teddyxlandlee
Copy link
Collaborator Author

teddyxlandlee commented Nov 18, 2025

对于高性能消耗的getApplyMods,模组Wiki如此说道:

作用模组指定了有哪些模组中的类要将被替换,其中的每个字符串对应它在mods文件夹下的那个模组,不需要加入后缀名.jar。 (注意,它是以文件名作为标准来搜索模组,而不是modid) 它相当于遍历该模组的jar中的类,并将这些类添加到全局类中,但它的优先级高于全局类。

这可能会导致资源浪费,并造成没必要的性能损耗,所以尽量不要使用它。该功能无法遍历jar-in-jar。

不应该假定文件名是不变的,且用java.util.jar.JarFile遍历所有mods文件夹中的JAR文件,消耗巨大。个人认为使用本模组的汉化者应当理解Java中包名与类名的概念,因此仅用类名等匹配方式即可。applyMods应当在未来被移除


对于游戏内调整游戏语言的情形,本模组没有考虑到。不过出于避免与Vanilla Code交互,以及避免动态读取的理念,我们暂且放下不提。

@teddyxlandlee
Copy link
Collaborator Author

I was speaking English because I was afraid that if I switch to Chinese I couldn't help criticizing everything.

Basically, the codebase is still quite similar to the 2022 SpeedABC mod. I don't think I'm capable of rewriting something like that anymore.

@M3MEMonster
Copy link
Collaborator

M3MEMonster commented Nov 18, 2025

对于高性能消耗的getApplyMods,模组Wiki如此说道:

作用模组指定了有哪些模组中的类要将被替换,其中的每个字符串对应它在mods文件夹下的那个模组,不需要加入后缀名.jar。 (注意,它是以文件名作为标准来搜索模组,而不是modid) 它相当于遍历该模组的jar中的类,并将这些类添加到全局类中,但它的优先级高于全局类。
这可能会导致资源浪费,并造成没必要的性能损耗,所以尽量不要使用它。该功能无法遍历jar-in-jar。

不应该假定文件名是不变的,且用java.util.jar.JarFile遍历所有mods文件夹中的JAR文件,消耗巨大。个人认为使用本模组的汉化者应当理解Java中包名与类名的概念,因此仅用类名等匹配方式即可。applyMods应当在未来被移除

对于游戏内调整游戏语言的情形,本模组没有考虑到。不过出于避免与Vanilla Code交互,以及避免动态读取的理念,我们暂且放下不提。

我跟作者商量来着,apply mod和classes都应移除,但是我尝试过简单粗暴的移除之后模组直接无法运行,当时的主要优先级是添加ArrayProducer和日志优化,暂时就没动。况且比起你们我是个妥妥的半吊子选手,我是学经济的,而且我入门是Python,写Java代码基本纯靠英文基础,对于底层算法优化线程调度等更是纯小白,只是因为我目前时间相对充足,对编程相对感兴趣,我一直在用这个mod所以也在contribute。有批评尽管说,正好我也学学。

@M3MEMonster
Copy link
Collaborator

M3MEMonster commented Nov 25, 2025

@teddyxlandlee
最新的PR后,1.7.10 Forge下汉化测试所有被修改的class全部报NPE,其余版本尚未测试
java.lang.NullPointerException
at org.objectweb.asm.tree.ClassNode.visit(Unknown Source) ~[asm-all-5.0.3.jar:5.0.3]
at org.objectweb.asm.tree.ClassNode.accept(Unknown Source) ~[asm-all-5.0.3.jar:5.0.3]
at me.fengming.vaultpatcher_asm.core.utils.Utils.deepCopyClass(Utils.java:78) ~[vaultpatcher-all-1.4.7-alpha+6.jar:?]
at me.fengming.vaultpatcher_asm.core.transformers.VPClassTransformer.accept(VPClassTransformer.java:443) ~[vaultpatcher-all-1.4.7-alpha+6.jar:?]
at me.fengming.vaultpatcher_asm.loader.launchwrapper.LinkedClassTransformer.transform(LinkedClassTransformer.java:39) ~[vaultpatcher-all-1.4.7-alpha+6.jar:?]
at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.12.jar:?]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_471]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_471]

1.21.9以前的NeoForge环境下,游戏在早期崩溃
[17:25:19] [main/INFO]: Loading ImmediateWindowProvider fmlearlywindow
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at cpw.mods.bootstraplauncher/cpw.mods.bootstraplauncher.BootstrapLauncher.run(BootstrapLauncher.java:203)
at cpw.mods.bootstraplauncher/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:62)
Caused by: java.lang.ExceptionInInitializerError
at LAYER SERVICE/[email protected]+6/me.fengming.vaultpatcher_asm.loader.modlauncher.GameVersionHolder.(GameVersionHolder.java:16)
at LAYER SERVICE/[email protected]+6/me.fengming.vaultpatcher_asm.loader.modlauncher.VPTransformationService.initialize(VPTransformationService.java:49)
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServiceDecorator.onInitialize(TransformationServiceDecorator.java:66)
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.lambda$initialiseTransformationServices$6(TransformationServicesHandler.java:88)
at java.base/java.util.HashMap$Values.forEach(HashMap.java:1073)
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.initialiseTransformationServices(TransformationServicesHandler.java:88)
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:51)
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:85)
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
... 3 more
Caused by: java.lang.NullPointerException
at LAYER SERVICE/[email protected]+6/me.fengming.vaultpatcher_asm.loader.modlauncher.GameVersionHolder.lookupNeo(GameVersionHolder.java:38)
at LAYER SERVICE/[email protected]+6/me.fengming.vaultpatcher_asm.loader.modlauncher.GameVersionHolder.(GameVersionHolder.java:14)
... 12 more

高版本Forge环境能够正确读取MC版本,游戏正常启动,但是日志里出现Unable to create custom ContextSelector报错且跟随大量关于 Unable to create Lookup for bundle java.lang.ClassCastException: class org.apache.logging.log4j.core下的所有模块的报错
2025-11-25T16:28:41.107628900Z main ERROR Unable to create custom ContextSelector. Falling back to default. java.lang.ClassCastException: class cpw.mods.modlauncher.log.MLClassLoaderContextSelector
at java.base/java.lang.Class.asSubclass(Class.java:4102)
at org.apache.logging.log4j.util.LoaderUtil.newCheckedInstanceOf(LoaderUtil.java:409)
at org.apache.logging.log4j.util.LoaderUtil.newCheckedInstanceOfProperty(LoaderUtil.java:362)
at org.apache.logging.log4j.util.LoaderUtil.newCheckedInstanceOfProperty(LoaderUtil.java:332)
at org.apache.logging.log4j.core.util.Loader.newCheckedInstanceOfProperty(Loader.java:329)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.createContextSelector(Log4jContextFactory.java:100)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.(Log4jContextFactory.java:59)
at org.apache.logging.log4j.util.LazyUtil$SafeLazy.value(LazyUtil.java:113)
at org.apache.logging.log4j.util.Lazy.get(Lazy.java:39)
at org.apache.logging.log4j.core.impl.Log4jProvider.getLoggerContextFactory(Log4jProvider.java:97)
at org.apache.logging.log4j.LogManager.(LogManager.java:62)
at net.minecraftforge.versions.mcp.MCPVersion.(MCPVersion.java:15)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:421)
at java.base/java.lang.Class.forName(Class.java:412)
at LAYER SERVICE/[email protected]+6/me.fengming.vaultpatcher_asm.loader.modlauncher.GameVersionHolder.lookupForge(GameVersionHolder.java:44)
at LAYER SERVICE/[email protected]+6/me.fengming.vaultpatcher_asm.loader.modlauncher.GameVersionHolder.(GameVersionHolder.java:14)
at LAYER SERVICE/[email protected]+6/me.fengming.vaultpatcher_asm.loader.modlauncher.VPTransformationService.initialize(VPTransformationService.java:49)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServiceDecorator.onInitialize(TransformationServiceDecorator.java:50)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.initialiseTransformationServices(TransformationServicesHandler.java:91)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:45)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:88)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17)
at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133)
at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53)
at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19)

2025-11-25T16:28:41.133650500Z main ERROR Unable to create Lookup for bundle java.lang.ClassCastException: class org.apache.logging.log4j.core.lookup.ResourceBundleLookup
at java.base/java.lang.Class.asSubclass(Class.java:4102)
at org.apache.logging.log4j.core.lookup.Interpolator.(Interpolator.java:87)
at org.apache.logging.log4j.core.lookup.Interpolator.(Interpolator.java:109)
at org.apache.logging.log4j.core.config.AbstractConfiguration.(AbstractConfiguration.java:137)
at org.apache.logging.log4j.core.config.NullConfiguration.(NullConfiguration.java:32)
at org.apache.logging.log4j.core.LoggerContext.(LoggerContext.java:76)
at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.createContext(ClassLoaderContextSelector.java:265)
at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:224)
at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:142)
at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:125)
at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:119)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:148)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:46)
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:138)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:555)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:541)
at net.minecraftforge.versions.mcp.MCPVersion.(MCPVersion.java:15)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:421)
at java.base/java.lang.Class.forName(Class.java:412)
at LAYER SERVICE/[email protected]+6/me.fengming.vaultpatcher_asm.loader.modlauncher.GameVersionHolder.lookupForge(GameVersionHolder.java:44)
at LAYER SERVICE/[email protected]+6/me.fengming.vaultpatcher_asm.loader.modlauncher.GameVersionHolder.(GameVersionHolder.java:14)
at LAYER SERVICE/[email protected]+6/me.fengming.vaultpatcher_asm.loader.modlauncher.VPTransformationService.initialize(VPTransformationService.java:49)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServiceDecorator.onInitialize(TransformationServiceDecorator.java:50)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.initialiseTransformationServices(TransformationServicesHandler.java:91)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:45)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:88)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17)
at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133)
at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53)
at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19)

2025-11-25T16:28:41.135650700Z main ERROR Unable to create Lookup for ctx java.lang.ClassCastException: class org.apache.logging.log4j.core.lookup.ContextMapLookup
at java.base/java.lang.Class.asSubclass(Class.java:4102)
at org.apache.logging.log4j.core.lookup.Interpolator.(Interpolator.java:87)
at org.apache.logging.log4j.core.lookup.Interpolator.(Interpolator.java:109)
at org.apache.logging.log4j.core.config.AbstractConfiguration.(AbstractConfiguration.java:137)
at org.apache.logging.log4j.core.config.NullConfiguration.(NullConfiguration.java:32)
at org.apache.logging.log4j.core.LoggerContext.(LoggerContext.java:76)
at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.createContext(ClassLoaderContextSelector.java:265)
at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:224)
at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:142)
at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:125)
at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:119)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:148)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:46)
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:138)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:555)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:541)
at net.minecraftforge.versions.mcp.MCPVersion.(MCPVersion.java:15)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:421)
at java.base/java.lang.Class.forName(Class.java:412)
at LAYER SERVICE/[email protected]+6/me.fengming.vaultpatcher_asm.loader.modlauncher.GameVersionHolder.lookupForge(GameVersionHolder.java:44)
at LAYER SERVICE/[email protected]+6/me.fengming.vaultpatcher_asm.loader.modlauncher.GameVersionHolder.(GameVersionHolder.java:14)
at LAYER SERVICE/[email protected]+6/me.fengming.vaultpatcher_asm.loader.modlauncher.VPTransformationService.initialize(VPTransformationService.java:49)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServiceDecorator.onInitialize(TransformationServiceDecorator.java:50)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.initialiseTransformationServices(TransformationServicesHandler.java:91)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:45)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:88)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75)
at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17)
at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133)
at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53)
at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants