ZekerZhayard / ForgeWrapper

Allow MultiMC to launch Minecraft 1.13+ with Forge
MIT License
53 stars 17 forks source link

Having trouble launching the game (advice on proper usage needed) #14

Closed polyzium closed 1 year ago

polyzium commented 1 year ago

I'm having trouble launching the game as I'm not sure what JARs to include in the classpath. Using the patch JSON alone generated by the wrapper (that looks similar to a vanilla manifest file from what I see) I wasn't able to launch the game.

If I use paths from the libraries field, I get an error about gson not being found:

Exception in thread "main" java.util.ServiceConfigurationError: io.github.zekerzhayard.forgewrapper.installer.detector.IFileDetector: io.github.zekerzhayard.forgewrapper.installer.detector.MultiMCFileDetector Unable to get public no-arg constructor
        at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:586)
        at java.base/java.util.ServiceLoader.getConstructor(ServiceLoader.java:679)
        at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1240)
        at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273)
        at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309)
        at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393)
        at io.github.zekerzhayard.forgewrapper.installer.detector.DetectorLoader.loadDetector(DetectorLoader.java:11)
        at io.github.zekerzhayard.forgewrapper.installer.Main.main(Main.java:24)
Caused by: java.lang.NoClassDefFoundError: com/google/gson/JsonElement
        at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3373)
        at java.base/java.lang.Class.getConstructor0(Class.java:3578)
        at java.base/java.lang.Class.getConstructor(Class.java:2271)
        at java.base/java.util.ServiceLoader$1.run(ServiceLoader.java:666)
        at java.base/java.util.ServiceLoader$1.run(ServiceLoader.java:663)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at java.base/java.util.ServiceLoader.getConstructor(ServiceLoader.java:674)
        ... 6 more
Caused by: java.lang.ClassNotFoundException: com.google.gson.JsonElement
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
        ... 14 more
Classpath ``` /home/polyzium/Development/minecraft-launcher/libraries/../ForgeWrapperConverter-1.5.6-LOCAL.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/cpw/mods/securejarhandler/2.1.4/securejarhandler-2.1.4.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/org/ow2/asm/asm/9.3/asm-9.3.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/org/ow2/asm/asm-commons/9.3/asm-commons-9.3.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/org/ow2/asm/asm-tree/9.3/asm-tree-9.3.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/org/ow2/asm/asm-util/9.3/asm-util-9.3.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/org/ow2/asm/asm-analysis/9.3/asm-analysis-9.3.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/net/minecraftforge/accesstransformers/8.0.4/accesstransformers-8.0.4.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/org/antlr/antlr4-runtime/4.9.1/antlr4-runtime-4.9.1.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/net/minecraftforge/eventbus/6.0.3/eventbus-6.0.3.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/net/minecraftforge/forgespi/6.0.0/forgespi-6.0.0.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/net/minecraftforge/coremods/5.0.1/coremods-5.0.1.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/cpw/mods/modlauncher/10.0.8/modlauncher-10.0.8.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/net/minecraftforge/unsafe/0.2.0/unsafe-0.2.0.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/com/electronwill/night-config/core/3.6.4/core-3.6.4.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/com/electronwill/night-config/toml/3.6.4/toml-3.6.4.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/org/apache/maven/maven-artifact/3.8.5/maven-artifact-3.8.5.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/net/jodah/typetools/0.8.3/typetools-0.8.3.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/net/minecrell/terminalconsoleappender/1.2.0/terminalconsoleappender-1.2.0.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/org/jline/jline-reader/3.12.1/jline-reader-3.12.1.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/org/jline/jline-terminal/3.12.1/jline-terminal-3.12.1.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/org/openjdk/nashorn/nashorn-core/15.3/nashorn-core-15.3.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/net/minecraftforge/JarJarSelector/0.3.16/JarJarSelector-0.3.16.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/net/minecraftforge/JarJarMetadata/0.3.16/JarJarMetadata-0.3.16.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/cpw/mods/bootstraplauncher/1.1.2/bootstraplauncher-1.1.2.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/net/minecraftforge/JarJarFileSystems/0.3.16/JarJarFileSystems-0.3.16.jar:\ /home/polyzium/Development/minecraft-launcher/libraries/net/minecraftforge/fmlloader/1.19.2-43.2.0/fmlloader-1.19.2-43.2.0.jar \ ```

Now, there's also the mavenFiles field, but there is no mention of it or how to use it in the MultiMC's patch files wiki page.

Conclusion

As a result, I'm totally confused on how to launch the game from CLI, as it isn't obvious how to do so. If I could get any help or explanation on that, I'd really appreciate it.

Additional data

Arguments used:

java \
"-Dforgewrapper.librariesDir=/home/polyzium/Development/minecraft-launcher/libraries" \
"-Dforgewrapper.installer=/home/polyzium/Downloads/forge-1.19.2-43.2.0-installer.jar" \
"-Dforgewrapper.minecraft=/home/polyzium/Development/minecraft-launcher/libraries/1.19.2.jar" \
-cp \
[classpath]
io.github.zekerzhayard.forgewrapper.installer.Main \
--username \
auth_player_name \
--version \
version_name \
--gameDir \
game_directory \
--assetsDir \
/home/polyzium/Development/minecraft-launcher/assets \
--assetIndex \
1.19 \
--uuid \
auth_uuid \
--accessToken \
auth_access_token \
--clientId \
clientid \
--xuid \
auth_xuid \
--userType \
user_type \
--versionType \
version_type \
--launchTarget \
forgeclient \
--fml.forgeVersion \
43.2.0 \
--fml.mcVersion \
1.19.2 \
--fml.forgeGroup \
net.minecraftforge \
--fml.mcpVersion \
20220805.130853
polyzium commented 1 year ago

Nevermind.