MCXboxBroadcast / Broadcaster

A simple Geyser extension that broadcasts the server over Xbox Live.
GNU General Public License v3.0
233 stars 45 forks source link

"Outdated Client" when joining via MCXboxBroadcast - MC v1.21.0 #91

Closed TDGalea closed 4 months ago

TDGalea commented 4 months ago

At least I think this is the case. I've worked it down to seemingly just MCXboxBroadcast being the weak link now.

Paper has finally released some early 1.21 builds. They work on Java. BungeeCord (I know... I wanna migrate some time) is working. Geyser itself as well as Floodgate are working - Bedrock can join if the server is added manually.

But, joining via MCXboxBroadcast has it say "Outdated client".

Downloaded the build released an hour ago as of writing. Still the same. My apologies if this is just a case of the plugin needing to be updated to support 1.21, but I've not had this plugin do this before so just wanted to raise awareness.

rtm516 commented 4 months ago

This was an issue when 1.21 came out but should have been fixed in build 21+ and https://github.com/rtm516/MCXboxBroadcast/commit/d00bd20b28f2c5080e608ddbd47511d72687769b

Are you sure you are downloading the latest? (27 or 28) Are you sure your connecting with a 1.21 bedrock client?

TDGalea commented 4 months ago

Just looked back at my terminal history for the wget and can confirm it's 28 - the release was like 20 minutes old when I happened to poke my head in.

Bedrock is 100% v1.21.0 - tested via the Linux launcher (emulated Android) and an actual Android, and was originally brought to my attention by an Xbox friend.

rtm516 commented 4 months ago

Can you provide a session dump? mcxboxbroadcast dumpsession

TDGalea commented 4 months ago

Well...

>mcxboxbroadcast dumpsession
09:26:04 [INFO] [Geyser-BungeeCord] [mcxboxbroadcast] [Primary Session] Dumping current and last session responses
09:26:04 [INFO] An internal error occurred whilst executing this command, please check the console log for details.
09:26:04 [WARNING] Error in dispatching command
java.lang.IllegalArgumentException: Malformed escape pair at index 131: https://sessiondirectory.xboxlive.com/serviceconfigs/4fc10100-5f7a-4470-899b-280835760c07/sessionTemplates/MinecraftLobby/sessions/%sbb75f897-2390-49ea-9c96-bbdee08d8239
    at java.base/java.net.URI.create(URI.java:932)
    at com.rtm516.mcxboxbroadcast.core.SessionManager.dumpSession(SessionManager.java:173)
    at com.rtm516.mcxboxbroadcast.bootstrap.geyser.MCXboxBroadcastExtension.lambda$onCommandDefine$1(MCXboxBroadcastExtension.java:56)
    at org.geysermc.geyser.command.GeyserCommandManager$CommandBuilder$1.execute(GeyserCommandManager.java:294)
    at org.geysermc.geyser.platform.bungeecord.command.GeyserBungeeCommandExecutor.execute(GeyserBungeeCommandExecutor.java:71)
    at net.md_5.bungee.api.plugin.PluginManager.dispatchCommand(PluginManager.java:208)
    at net.md_5.bungee.api.plugin.PluginManager.dispatchCommand(PluginManager.java:158)
    at net.md_5.bungee.BungeeCordLauncher.main(BungeeCordLauncher.java:74)
    at net.md_5.bungee.Bootstrap.main(Bootstrap.java:15)
Caused by: java.net.URISyntaxException: Malformed escape pair at index 131: https://sessiondirectory.xboxlive.com/serviceconfigs/4fc10100-5f7a-4470-899b-280835760c07/sessionTemplates/MinecraftLobby/sessions/%sbb75f897-2390-49ea-9c96-bbdee08d8239
    at java.base/java.net.URI$Parser.fail(URI.java:2995)
    at java.base/java.net.URI$Parser.scanEscape(URI.java:3123)
    at java.base/java.net.URI$Parser.scan(URI.java:3146)
    at java.base/java.net.URI$Parser.checkChars(URI.java:3164)
    at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3248)
    at java.base/java.net.URI$Parser.parse(URI.java:3196)
    at java.base/java.net.URI.<init>(URI.java:645)
    at java.base/java.net.URI.create(URI.java:930)
    ... 8 more
>
rtm516 commented 4 months ago

That's an old version I fixed that bug a while back. Build 20 fixed it. I recommend stopping the server, deleting the jar and then re-uploading it to make sure you are on the latest version

TDGalea commented 4 months ago

Right, well I went and did the biz again. This time, instead of claiming I'm on an outdated client, it just fails to connect to world.

Yet again this is exclusive to joining via the Xbox account. If I join by adding as a server, it works fine.

rtm516 commented 4 months ago

Can you provide a session dump now?

TDGalea commented 4 months ago

Two successful dumps this time.

currentSessionResponse.json lastSessionResponse.json

rtm516 commented 4 months ago

The connection issue you are getting is due to the server broadcasting 192.168.1.251 as the IP, you need to alter the extension config remote-address to the IP that users connect to

TDGalea commented 4 months ago

Righto, that fixed it. The "auto" IP used to work perfectly fine, so that's broken now I guess. Hardly a hard one once you know it though.

Thanks for your help and huge thanks for this fantastic plugin.

rtm516 commented 4 months ago

The auto setting hasnt changed in 2 years. It will default to the geyser listen address and then try and find out what interface leads out onto the internet. Its something I should likely change to use https://ipv4.icanhazip.com/ instead

TDGalea commented 4 months ago

You are the one and only other person I've seen use icanhazip. +1.

I find it odd that auto's suddenly not working though without you changing anything. Perhaps Geyser themselves have broken something ¯⁠\⁠⁠(⁠ツ⁠)⁠⁠/⁠¯

rtm516 commented 4 months ago

Now changed so new builds auto setting should be more reliable

TDGalea commented 4 months ago

Fastest developer in the west.