Skip to content

[Bug] 在 Websocket 带参数连接的情况下 遇到了如下错误 #224

@8MiYile

Description

@8MiYile
点击展开报错
java.lang.RuntimeException: XaeroPlus + Xaero's World Map has crashed! Please report to: https://github.com/rfresh2/XaeroPlus/issues or https://discord.gg/nJZrSaRKtb
	at knot//xaero.map.CrashHandler.checkForCrashes(CrashHandler.java:522)
	at knot//xaero.map.events.ClientEvents.handleClientTickStart(ClientEvents.java:209)
	at knot//net.minecraft.class_310.handler$ggj004$xaeroworldmap$onTickStart(class_310.java:34579)
	at knot//net.minecraft.class_310.method_1574(class_310.java)
	at knot//net.minecraft.class_310.method_1523(class_310.java:1302)
	at knot//net.minecraft.class_310.method_1514(class_310.java:922)
	at knot//net.minecraft.client.main.Main.main(Main.java:267)
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
Caused by: java.lang.RuntimeException: Exception initializing Xaero's World Map! 
	at knot//xaero.map.core.XaeroWorldMapCore.onPlayNetHandler(XaeroWorldMapCore.java:126)
	at knot//xaero.map.core.XaeroWorldMapCoreFabric.onPlayNetHandler(XaeroWorldMapCoreFabric.java:17)
	at knot//net.minecraft.class_634.handler$ggf002$xaeroworldmap$onOnGameJoin(class_634.java:24687)
	at knot//net.minecraft.class_634.method_11120(class_634.java:439)
	at knot//net.minecraft.class_2678.method_11567(class_2678.java:69)
	at knot//net.minecraft.class_2678.method_65081(class_2678.java:17)
	at knot//net.minecraft.class_2600.method_11072(class_2600.java:27)
	at knot//net.minecraft.class_1255.method_18859(class_1255.java:164)
	at knot//net.minecraft.class_4093.method_18859(class_4093.java:23)
	at knot//net.minecraft.class_1255.method_16075(class_1255.java:138)
	at knot//net.minecraft.class_1255.method_5383(class_1255.java:123)
	at knot//net.minecraft.class_310.method_1523(class_310.java:1296)
	... 5 more
Caused by: java.lang.RuntimeException: failed to auto-restore old world map folder
	at knot//xaero.map.MapProcessor.fixRootFolder(MapProcessor.java:1859)
	at knot//xaero.map.MapProcessor.fixRootFolder(MapProcessor.java:1841)
	at knot//xaero.map.MapProcessor.onInit(MapProcessor.java:290)
	at knot//xaero.map.WorldMapSession.init(WorldMapSession.java:67)
	at knot//xaero.map.core.XaeroWorldMapCore.onPlayNetHandler(XaeroWorldMapCore.java:120)
	... 16 more
Caused by: java.nio.file.NoSuchFileException: $HOME/.minecraft/versions/1.21.4-Fabric/xaero/world-map/Multiplayer_ws -> $HOME/.minecraft/versions/1.21.4-Fabric/xaero/world-map/Multiplayer_ws./example.com.port/endpoint
	at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.UnixFileSystem.move(Unknown Source)
	at java.base/sun.nio.fs.UnixFileSystemProvider.move(Unknown Source)
	at java.base/java.nio.file.Files.move(Unknown Source)
	at knot//xaero.map.MapProcessor.fixRootFolder(MapProcessor.java:1857)
	... 20 more

又臭又长的崩溃报告

由于该报错是因为连接方式的原因 因为客户端装载wsmc
对于这种地址,我们希望能够文本替换
例如地址是 ws://host:port/endpoint
那么文件夹名称是 Multiplayer_host_port_endpoint

若地址是 ws://host:port
那么文件夹名称是 Multiplayer_host_port

就是直接把开头的 ws:// 或者 wss:// 给过滤掉
这样利好那种原版连接的 host:port
他们只需要 Multiplayer_host_port

地址内只有IP或者域名的就更简单了
Multiplayer_host

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions