OKTW-Network / FabricProxy-Lite

Fabric mod for support forward player data from velocity.
https://modrinth.com/mod/fabricproxy-lite
MIT License
80 stars 43 forks source link

debug mode #41

Closed onebeastchris closed 1 year ago

onebeastchris commented 1 year ago

Hey there, I'm trying to make "Floodgate" work with FabricProxy-Lite. Specifically, it sends some data via player-info-forwarding when a linked bedrock player connects, which just produces a "com.velocitypowered.proxy.util.except.QuietRuntimeException: The connection to the remote server was unexpectedly closed." error in the velocity console - however, java players (for whom floodgate does nothing), and unlinked floodgate players (where stuff is also sent via player-info-forwarding) is working just fine. Therefore, i was wondering whether there's some kind of debug mode in this mod to see what gets received/sent? (To be able to see where the issue is) Thanks in advance!

gadget78 commented 1 year ago

thought i would just +1 this issue too... velocity, and floodgate on the proxy/velocity must be sending the correct things/packets out as paper server work underneath them ok .. so its defo within the FabricProcy-Lite mod not receiving/relaying the info to floodgate fabric properly, unless its a fabric-floodgate issue ?

onebeastchris commented 1 year ago

Nope, I've been able to track that issue down; it's a floodgate-fabric issue :/

Here are the appropriate posts: https://github.com/GeyserMC/Floodgate-Fabric/pull/70 that's the attempt to get FabricProxyLite support working, but according to Tim, it's now an issue with the packets send being too long (I've asked in the #development channel of the discord)

Here's the initial bug report with the current workaround of disabling linked accounts, that makes send-floodgate-data work https://github.com/GeyserMC/Floodgate-Fabric/issues/56

onebeastchris commented 1 year ago

Also, I'd close this issue here; but it still would be nice to have some kind of debug mode to see what's going in and out

gadget78 commented 1 year ago

excellent find/info thankyou ! ...

will the "local linking" still work, if global linking is switched off, or does that also suffer with same long packet issue ? (before i attempt that as a fix!)

onebeastchris commented 1 year ago

Not sure; haven't tried local linking. But I'd assume it would have the same issue :/ Anyways, we should probably discuss this on the floodgate-fabric post, that's more fitting to the issue instead of here

unilock commented 1 year ago

FabricProxy-Lite itself does not delegate / "relay" packets or anything of the sort; it just allows Fabric to interpret the player data info packets Velocity sends (in "modern" forwarding mode). (Said packets are identical no matter which software your backend is running, i.e. Paper, Fabric, Forge, etc.; Velocity knows no difference. However, different backends require different implementations to interpret the packets.)

You can monitor packets going to/from the Fabric server (or any Minecraft server) by reconfiguring Log4j. Note the following, however:

Unfortunately, since the Netty rewrite (Minecraft 1.7) only packet IDs and classes are logged, and not their contents; however, this information may still be helpful.

(Velocity uses Log4j as well, so the same approach should work there, too - though I'm not sure what Velocity's packet debug logging looks like in comparison to Minecraft's)

onebeastchris commented 1 year ago

Oh. Well, thank you for explaining why this wouldn't be possible and for providing a solution for what to do instead :) I'll close this then.

unilock commented 1 year ago

Forgot to mention this - gadget is a Fabric / Quilt mod that can record and inspect incoming / outgoing packets in-game. Definitely a lot more helpful than "OUT: [PLAY:2] ClientboundCustomPayloadPacket; OUT: [PLAY:5] ClientboundCustomPayloadPacket; IN: [PLAY:13] ClientboundCustomPayloadPacket".