Skip to content

Conversation

@iceiix
Copy link
Owner

@iceiix iceiix commented May 12, 2019

Continuing on #144 (and #134 #88)

Vanilla 1.13.2 (404) protocol for reference: iceiix/steven#67
https://wiki.vg/Protocol https://wiki.vg/index.php?title=Protocol&oldid=14643

@iceiix
Copy link
Owner Author

iceiix commented May 12, 2019

[main.rs:218][INFO] Starting steven

[lib.rs:390][TRACE] loop process - 1 events, 0.000s
about to parse id=0, dir=Clientbound state=Status
packet = Some(StatusResponse(StatusResponse { status: "{"description":{"text":"A Minecraft Server"},"players":{"max":20,"online":0},"version":{"name":"1.13.2","protocol":404},"forgeData":{"channels":[{"res":"ironchest:main_channel","version":"1","required":false}],"mods":[{"modId":"forge","modmarker":"ANY"},{"modId":"ironchest","modmarker":"1.13.2-8.0.2"}],"fmlNetworkVersion":2}}" }))

about to parse id=1, dir=Clientbound state=Status
packet = Some(StatusPong(StatusPong { ping: 42 }))

[main.rs:95][INFO] Detected server protocol version 404
about to parse id=1b, dir=Clientbound state=Login
thread '' panicked at 'bad packet id 0x1b in Clientbound Login', src/protocol/versions/v1_13_2.rs:1:1

The crashing packet:

steven $ hexdump -C last-packet 
00000000  1b 7f 7b 22 74 72 61 6e  73 6c 61 74 65 22 3a 22  |..{"translate":"|
00000010  64 69 73 63 6f 6e 6e 65  63 74 2e 67 65 6e 65 72  |disconnect.gener|
00000020  69 63 52 65 61 73 6f 6e  22 2c 22 77 69 74 68 22  |icReason","with"|
00000030  3a 5b 22 49 6e 74 65 72  6e 61 6c 20 45 78 63 65  |:["Internal Exce|
00000040  70 74 69 6f 6e 3a 20 6a  61 76 61 2e 6c 61 6e 67  |ption: java.lang|
00000050  2e 4e 75 6d 62 65 72 46  6f 72 6d 61 74 45 78 63  |.NumberFormatExc|
00000060  65 70 74 69 6f 6e 3a 20  46 6f 72 20 69 6e 70 75  |eption: For inpu|
00000070  74 20 73 74 72 69 6e 67  3a 20 5c 22 5c 22 22 5d  |t string: \"\""]|
00000080  7d                                                |}|

0x1b is Disconnect in the Play state: https://wiki.vg/index.php?title=Protocol&oldid=14643#Disconnect_.28play.29 - not correctly transitioning from Login to Play state? And where is the " number?

What is sent from the client before server kick? Only two packets on this connection, first is 0x00 handshake login: '\x00\x94\x03\x0elocalhost\x00FML\x00\x04l\x02' https://wiki.vg/index.php?title=Protocol&oldid=14643#Handshake then 0x00 login start with the player's username: https://wiki.vg/index.php?title=Protocol&oldid=14643#Login_Start. Forge 1.13.2 is very beta, MultiMC client doesn't even find it:

Screen Shot 2019-05-11 at 6 58 46 PM

@iceiix iceiix added the enhancement New feature or request label May 12, 2019
@iceiix
Copy link
Owner Author

iceiix commented May 12, 2019

Somehow I acquired forge 25.0.198 but the latest on http://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.13.2.html is 25.0.199, to retest, but the installer takes a while (much longer on 1.13.2 than 1.12.2 and earlier for some reason). This is a beta, discussion: https://www.reddit.com/r/feedthebeast/comments/aqswry/minecraft_forge_1132_beta_is_out/

@iceiix
Copy link
Owner Author

iceiix commented May 12, 2019

java -jar forge-1.13.2-25.0.199-installer.jar

select install server, select a clean directory, let it complete, run java -jar forge-1.13.2-25.0.199.jar, fails with attempted duplicate class definition for name: "net/minecraftforge/event/world/WorldEvent" ???

$ java -jar forge-1.13.2-25.0.199.jar 
[20:09:53.662] [main/INFO] [Launcher/MODLAUNCHER]: ModLauncher running: args [--gameDir, ., --launchTarget, fmlserver, --fml.forgeVersion, 25.0.199, --fml.mcpVersion, 20190213.203750, --fml.mcVersion, 1.13.2, --fml.forgeGroup, net.minecraftforge]
[20:09:53.664] [main/INFO] [Launcher/MODLAUNCHER]: ModLauncher starting: java version 1.8.0_131
[20:09:53.785] [main/INFO] [loading.FixSSL/CORE]: Added Lets Encrypt root certificates as additional trust
[20:09:54.054] [main/INFO] [LaunchServiceHandler/MODLAUNCHER]: Launching target 'fmlserver' with arguments [--gameDir, .]
Exception in thread "main" [20:09:54.298] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: java.lang.LinkageError: loader (instance of  cpw/mods/modlauncher/TransformingClassLoader): attempted  duplicate class definition for name: "net/minecraftforge/event/world/WorldEvent"
[20:09:54.298] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.lang.ClassLoader.defineClass1(Native Method)
[20:09:54.299] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
[20:09:54.299] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.lang.ClassLoader.defineClass(ClassLoader.java:642)
[20:09:54.299] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:107)
[20:09:54.299] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:76)
[20:09:54.299] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[20:09:54.299] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraftforge.eventbus.EventSubclassTransformer.buildEvents(EventSubclassTransformer.java:64)
[20:09:54.299] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraftforge.eventbus.EventSubclassTransformer.transform(EventSubclassTransformer.java:46)
[20:09:54.300] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraftforge.eventbus.EventBusEngine.processClass(EventBusEngine.java:20)
[20:09:54.300] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraftforge.eventbus.service.ModLauncherService.processClass(ModLauncherService.java:19)
[20:09:54.300] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.LaunchPluginHandler.lambda$offerClassNodeToPlugins$7(LaunchPluginHandler.java:40)
[20:09:54.300] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
[20:09:54.300] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:373)
[20:09:54.300] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
[20:09:54.301] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
[20:09:54.301] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
[20:09:54.301] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
[20:09:54.301] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
[20:09:54.301] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:474)
[20:09:54.301] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:41)
[20:09:54.301] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:90)
[20:09:54.302] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:215)
[20:09:54.302] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:106)
[20:09:54.302] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:76)
[20:09:54.302] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[20:09:54.302] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.lang.Class.forName0(Native Method)
[20:09:54.302] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.lang.Class.forName(Class.java:348)
[20:09:54.302] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraftforge.fml.loading.FMLServerLaunchProvider.lambda$launchService$0(FMLServerLaunchProvider.java:50)
[20:09:54.303] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:19)
[20:09:54.303] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:32)
[20:09:54.303] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:50)
[20:09:54.303] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.Launcher.run(Launcher.java:57)
[20:09:54.303] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.Launcher.main(Launcher.java:43)
[20:09:54.303] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraftforge.server.ServerMain$Runner.runLauncher(ServerMain.java:63)
[20:09:54.303] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraftforge.server.ServerMain$Runner.access$100(ServerMain.java:60)
[20:09:54.303] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraftforge.server.ServerMain.main(ServerMain.java:57)

@iceiix
Copy link
Owner Author

iceiix commented May 15, 2019

Modding is in a weird state for 1.13.2. Apparently there are alternative mod loaders a lot of mods use now. I knew of Fabric due to its 1.14 support (#72) but there is also Rift: https://github.com/DimensionalDevelopment/Rift https://www.curseforge.com/minecraft/mc-mods/rift for 1.13.x only. However both Rift and Fabric are more lightweight than Forge. Do they even have any protocol handshake and/or block ID registration negotiation?

@iceiix
Copy link
Owner Author

iceiix commented Jan 11, 2020

Update on Forge posted by their developers on January 1st, 2020 earlier this month: https://www.minecraftforge.net/forum/topic/79304-112114-and-lts-system/ - in summary, they used the time during 1.13 to pursue a large cleanup and rewrite of Forge, which was finished by 1.14. This introduces a new "long term support" release version, which is 1.14, but 1.15 is the latest and has full support.

1.15 is latest. It will get full support.
1.14 is LTS. It will also get support, and new features, but new features must be made for 1.15 first.
1.12 is no longer supported on this forum, no new features, and no more bugfixes.

All other versions are not supported. This means if you come to us for help with those, we will ask you to update. This includes crashes/bugs.

https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.13.2.html does have Forge 1.13.2 downloads, but it is not supported. How are mods adapting? As an example this mod (a lighting engine): https://www.curseforge.com/minecraft/mc-mods/phosphor:

Right now, Phosphor supports Fabric on Minecraft 1.14/1.15 and Forge on Minecraft 1.12. Forge support for Minecraft 1.14+ is my highest priority, but there are currently issues between Forge and Mixins which make this impossible.

Sounds like this branch should be instead updated to work with Forge 1.14.x, which would be worth supporting for sure as its the LTS release. (And 1.15.x because it is the current release). Open question, how much does 1.14's Forge handshake differ from the 1.13 incomplete version here?

@iceiix iceiix merged commit 7279f41 into master Jun 21, 2020
@iceiix iceiix deleted the forge113 branch June 21, 2020 19:01
@iceiix
Copy link
Owner Author

iceiix commented Jun 21, 2020

Although this is incomplete and untested, merging this support as it exists for now to avoid the branch going stale.

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

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants