GeyserMC / Geyser

A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock Edition.
https://geysermc.org
MIT License
4.63k stars 663 forks source link

Certain Server-Side Fabric Mods Do Not Display Mod Features Or Function Incorrectly #3660

Closed Merancapeman closed 1 year ago

Merancapeman commented 1 year ago

Describe the bug

I'm using Geyser Fabric in order to allow the use of server-side mods using Fabric on Bedrock clients so my family (mostly Bedrock users) and I can benefit from using commands and other functions. In particular, I'm utilizing server-side mods made by Patbox. In the screenshot included I'm using his mod called "Universal Shops" which allows players and admin to create personal/admin shops where you can trade one item for another that you specify. It works perfectly fine on Java clients, as expected. However, I brought it to Patbox's attention that when accessed on Bedrock clients, the custom ui that appears does not allow things to be edited, and the text is difficult to interpret.

Here is his mod functioning on a Java client. This is what you can expect to see when it is working, and you can utilize the custom UI just fine. Screenshot 2023-04-03 025518

Here is his mod on a Bedrock client. Screenshot 2023-04-03 023443

Patbox suggested it was a Geyser error, saying this: Screenshot 2023-04-03 025750

To Reproduce

So far this issue only presents itself with this mod installed, but I have yet to discover other server-side mods that may utilize the same functions or custom UI's.

Expected behaviour

UI functions should operate in Bedrock similar to how they function on Java clients, or at least call upon the same text data that they do in Java so they at least appear similar.

Screenshots / Videos

No response

Server Version and Plugins

Server: Geyser Fabric 1.19.4 Mods Installed So Far:
Screenshot 2023-04-03 080418

Geyser Dump

https://dump.geysermc.org/1nC8RbVaooOwDOEyuLtDPgbodnW81OPL

Geyser Version

Geyser version 2.1.0-SNAPSHOT (git-master-0f99abc)

Minecraft: Bedrock Edition Device/Version

Windows 10 version 1.19.73

Additional Context

No response

Camotoy commented 1 year ago

Patbox's comment is helpful, thanks. It appears that our chat serialization library supports the new chat fallback feature, and it should be relatively seamless to implement.

Merancapeman commented 1 year ago

Not sure if it's worth updating, but it looks like this problem occurs with other mods (which is probably like... DUH, lol) including Hey That's Mine for Fabric 1.19.4. Not sure how well you can see it, but this is my experience using it on Bedrock, whereas on Java it shows up fine:

geyserissue

Patbox commented 1 year ago

This is the same issue, as both mods use same api for server translations (which uses fallbacks since 1.19.4, as it is just nicer option)

Camotoy commented 1 year ago

The Adventure library we use has support for fallback components, but it appears there's still obstacles in handling this behavior on their end. I'm working with them to find a solution.

Camotoy commented 1 year ago

This issue should be fixed with this build: https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/feature%252Fprotocol-3.0/ but please note this is an unstable branch and there may be more bugs than usual.

Merancapeman commented 1 year ago

This is most definitely improved, and I appreciate the work it must have taken to fix this. Currently, some values are showing up as %s such as in this case, or commands from mods like Get Off My Lawn where values show up likewise. Here is an example: image

I'm assuming the issue with being unable to affect certain custom UI elements is not the same issue. Either way, I hope this helps!

onebeastchris commented 1 year ago

that looks like an issue with the mod's placeholders; do they work on java?

Merancapeman commented 1 year ago

This value presents itself normally in Java: image

Patbox commented 1 year ago

Geyser (or Adventure) doesn't handle translation fallback correctly here. It uses it as final value, instead of a template (like vanilla), so arguments aren't used

Camotoy commented 1 year ago

Noted; will see what I can do.

Merancapeman commented 1 year ago

Another example from a different mod such as GOML.

Bedrock: image

Java: image

(not sure if this helps, just posting it here for reference just in case. Sorry, just saw above comments, thank you all for the hard work you guys do to make Minecraft a modular and wonderful experience)

lgc2333 commented 1 year ago

same issue, will subscribe

Camotoy commented 1 year ago

This should be fixed in the next Protocol 3.0 build. Thanks as always to the Adventure folks for addressing this quickly on their end.