Game crashes when opening a ReplayMod replay with WorldDownloader
Zenthaa opened this issue · comments
The game launches fine, and you can play on multiplayer, record using ReplayMod and download the server world without issues. However if you try view a ReplayMod replay while WorldDownloader is active, the game crashes (therefore you can't download replaymod worlds).
Crash report:
---- Minecraft Crash Report ----
// Surprise! Haha. Well, this is awkward.
Time: 2/19/22 1:41 PM
Description: Calling Gui method
java.lang.NullPointerException: Calling Gui method
at net.minecraft.client.network.NetHandlerPlayClient.handler$init$zzd000(NetHandlerPlayClient.java:2268)
at net.minecraft.client.network.NetHandlerPlayClient.<init>(NetHandlerPlayClient.java:287)
at com.replaymod.replay.ReplayHandler.setup(ReplayHandler.java:143)
at com.replaymod.replay.ReplayHandler.<init>(ReplayHandler.java:86)
at com.replaymod.replay.ReplayModReplay.startReplay(ReplayModReplay.java:194)
at com.replaymod.replay.ReplayModReplay.startReplay(ReplayModReplay.java:180)
at com.replaymod.replay.ReplayModReplay.startReplay(ReplayModReplay.java:176)
at com.replaymod.replay.gui.screen.GuiReplayViewer$3.run(GuiReplayViewer.java:113)
at de.johni0702.minecraft.gui.element.AbstractGuiClickable.onClick(AbstractGuiClickable.java:71)
at de.johni0702.minecraft.gui.element.AbstractGuiButton.onClick(AbstractGuiButton.java:98)
at de.johni0702.minecraft.gui.element.AbstractGuiClickable.mouseClick(AbstractGuiClickable.java:53)
at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at de.johni0702.minecraft.gui.element.AbstractComposedGuiElement$3.invoke(AbstractComposedGuiElement.java:151)
at com.sun.proxy.$Proxy32.mouseClick(Unknown Source)
at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at de.johni0702.minecraft.gui.element.AbstractComposedGuiElement$3.invoke(AbstractComposedGuiElement.java:148)
at com.sun.proxy.$Proxy32.mouseClick(Unknown Source)
at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at de.johni0702.minecraft.gui.element.AbstractComposedGuiElement$3.invoke(AbstractComposedGuiElement.java:148)
at com.sun.proxy.$Proxy32.mouseClick(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at de.johni0702.minecraft.gui.element.AbstractComposedGuiElement$2.invoke(AbstractComposedGuiElement.java:81)
at com.sun.proxy.$Proxy32.mouseClick(Unknown Source)
at de.johni0702.minecraft.gui.container.AbstractGuiScreen$MinecraftGuiScreen.func_73864_a(AbstractGuiScreen.java:181)
at net.minecraft.client.gui.GuiScreen.func_146274_d(GuiScreen.java:533)
at de.johni0702.minecraft.gui.container.AbstractGuiScreen$MinecraftGuiScreen.func_146274_d(AbstractGuiScreen.java:201)
at net.minecraft.client.gui.GuiScreen.func_146269_k(GuiScreen.java:501)
at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1759)
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1098)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:398)
at net.minecraft.client.main.Main.main(SourceFile:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Client thread
Stacktrace:
at net.minecraft.client.network.NetHandlerPlayClient.handler$init$zzd000(NetHandlerPlayClient.java:2268)
at net.minecraft.client.network.NetHandlerPlayClient.<init>(NetHandlerPlayClient.java:287)
at com.replaymod.replay.ReplayHandler.setup(ReplayHandler.java:143)
at com.replaymod.replay.ReplayHandler.<init>(ReplayHandler.java:86)
-- World Downloader Mod - Core --
Details:
WDL version: 4.0.4.0
Minecraft version: Minecraft 1.12.2 (1.12.2/fml,forge,LiteLoader/Forge)
Expected version: 1.12.2
Protocol version: 340
Data version: 1343
File location: ~~ERROR~~ IllegalArgumentException: URI is not hierarchical
Stacktrace:
at java.lang.Thread.getStackTrace(Thread.java:1552)
at net.minecraft.crash.CrashReportCategory.func_85073_a(CrashReportCategory.java:116)
at net.minecraft.crash.CrashReport.func_85057_a(CrashReport.java:292)
at wdl.WDL.addInfoToCrash(WDL.java:1580)
at wdl.WDLHooks.onCrashReportPopulateEnvironment0(WDLHooks.java:483)
at wdl.WDLHooks.onCrashReportPopulateEnvironment(WDLHooks.java:480)
at net.minecraft.crash.CrashReport.handler$onCrashReportPopulateEnvironment$zze000(CrashReport.java:532)
at net.minecraft.crash.CrashReport.func_71504_g(CrashReport.java:120)
at net.minecraft.crash.CrashReport.<init>(CrashReport.java:40)
at net.minecraft.crash.CrashReport.func_85055_a(CrashReport.java:359)
at de.johni0702.minecraft.gui.element.AbstractComposedGuiElement$3.invoke(AbstractComposedGuiElement.java:166)
at com.sun.proxy.$Proxy32.mouseClick(Unknown Source)
at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at de.johni0702.minecraft.gui.element.AbstractComposedGuiElement$3.invoke(AbstractComposedGuiElement.java:148)
at com.sun.proxy.$Proxy32.mouseClick(Unknown Source)
at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at de.johni0702.minecraft.gui.element.AbstractComposedGuiElement$3.invoke(AbstractComposedGuiElement.java:148)
at com.sun.proxy.$Proxy32.mouseClick(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at de.johni0702.minecraft.gui.element.AbstractComposedGuiElement$2.invoke(AbstractComposedGuiElement.java:81)
at com.sun.proxy.$Proxy32.mouseClick(Unknown Source)
at de.johni0702.minecraft.gui.container.AbstractGuiScreen$MinecraftGuiScreen.func_73864_a(AbstractGuiScreen.java:181)
at net.minecraft.client.gui.GuiScreen.func_146274_d(GuiScreen.java:533)
at de.johni0702.minecraft.gui.container.AbstractGuiScreen$MinecraftGuiScreen.func_146274_d(AbstractGuiScreen.java:201)
at net.minecraft.client.gui.GuiScreen.func_146269_k(GuiScreen.java:501)
at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1759)
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1098)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:398)
at net.minecraft.client.main.Main.main(SourceFile:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
-- World Downloader Mod - Extensions --
Details:
Number loaded: 2
Hologram: Id: Hologram
Version: 2.0
Display name: Hologram support
Main author: Pokechu22
Description:
Provides basic support for disabling holograms.
Main class: wdl.HologramHandler
Containing file: Unknown (java.lang.IllegalArgumentException: URI is not hierarchical)
Implemented interfaces (2)
0: wdl.api.IEntityManager
1: wdl.api.IWDLModDescripted
Superclass: java.lang.Object
Classloader: net.minecraft.launchwrapper.LaunchClassLoader@5fdef03a (net.minecraft.launchwrapper.LaunchClassLoader)
Annotations (0)
EntityRealigner: Id: EntityRealigner
Version: 1.0
Display name: Entity realigner
Main author: Pokechu22
Description:
Realigns entities to their serverside position to deal with entities that drift clientside (for example, boats).
Main class: wdl.EntityRealigner
Containing file: Unknown (java.lang.IllegalArgumentException: URI is not hierarchical)
Implemented interfaces (2)
0: wdl.api.IEntityEditor
1: wdl.api.IWDLModDescripted
Superclass: java.lang.Object
Classloader: net.minecraft.launchwrapper.LaunchClassLoader@5fdef03a (net.minecraft.launchwrapper.LaunchClassLoader)
Annotations (0)
-- World Downloader Mod - State --
Details:
minecraft: net.minecraft.client.Minecraft@23d07ad3
worldClient: ~~NULL~~
networkManager: ~~NULL~~
thePlayer: ~~NULL~~
windowContainer: ~~NULL~~
lastClickedBlock: ~~NULL~~
lastEntity: ~~NULL~~
saveHandler: ~~NULL~~
chunkLoader: ~~NULL~~
newTileEntities: {}
newEntities: {}
newMapDatas: {}
downloading: false
isMultiworld: false
propsFound: false
startOnChange: false
overrideLastModifiedCheck: false
saving: false
worldLoadingDeferred: false
worldName: ~~NULL~~
baseFolderName: ~~NULL~~
baseProps: wdl.config.Configuration@164db8f0
worldProps: wdl.config.Configuration@164db8f0
globalProps: wdl.config.Configuration@8a7cd7c
defaultProps: wdl.config.DefaultConfiguration@21f0cc97
gameRules: net.minecraft.world.GameRules@1f6d3a81
-- World Downloader Mod - Base properties --
Details:
-: empty
-- World Downloader Mod - World properties --
Details:
-: empty
-- World Downloader Mod - Global properties --
Details:
TutorialShown: true
UpdateETag: W/"8e54330af12571ea153877feea31b94468ff888c30268b2adcf79370e6437df6"
-- Sanity checks --
Details:
TRIPWIRE: Passed
VERSION: Passed
TRANSLATION: Passed
MIXIN_INVENTORYBASIC: Passed
MIXIN_GUIINGAMEMENU: Passed
MIXIN_WORLDCLIENT: Passed
MIXIN_NHPC: Passed
MIXIN_CRASHREPORT: Passed
ENCODING: Passed
-- Gui --
Details:
Method: public abstract boolean de.johni0702.minecraft.gui.function.Clickable.mouseClick(org.lwjgl.util.ReadablePoint,int)
ComposedElement: de.johni0702.minecraft.gui.element.GuiButton@13775818
Element: de.johni0702.minecraft.gui.element.GuiButton@13775818
-- Gui --
Details:
Method: public abstract boolean de.johni0702.minecraft.gui.function.Clickable.mouseClick(org.lwjgl.util.ReadablePoint,int)
ComposedElement: de.johni0702.minecraft.gui.container.GuiPanel@67e55073
Element: de.johni0702.minecraft.gui.container.GuiPanel@67e55073
-- Gui --
Details:
Method: public abstract boolean de.johni0702.minecraft.gui.function.Clickable.mouseClick(org.lwjgl.util.ReadablePoint,int)
ComposedElement: de.johni0702.minecraft.gui.container.GuiPanel@26fee400
Element: de.johni0702.minecraft.gui.container.GuiPanel@26fee400
-- Gui --
Details:
Method: public abstract boolean de.johni0702.minecraft.gui.function.Clickable.mouseClick(org.lwjgl.util.ReadablePoint,int)
ComposedElement: com.replaymod.replay.gui.screen.GuiReplayViewer@331df3e
Element: com.replaymod.replay.gui.screen.GuiReplayViewer@331df3e
-- Affected screen --
Details:
Screen name: de.johni0702.minecraft.gui.container.AbstractGuiScreen.MinecraftGuiScreen
-- System Details --
Details:
Minecraft Version: 1.12.2
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_51, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 465809600 bytes (444 MB) / 973078528 bytes (928 MB) up to 2147483648 bytes (2048 MB)
JVM Flags: 8 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP 9.42 Powered by Forge 14.23.5.2859 13 mods loaded, 13 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
| State | ID | Version | Source | Signature |
|:------ |:----------------------- |:--------------- |:----------------------------- |:---------------------------------------- |
| LCHIJA | minecraft | 1.12.2 | minecraft.jar | None |
| LCHIJA | mcp | 9.42 | minecraft.jar | None |
| LCHIJA | FML | 8.0.99.99 | forge-1.12.2-14.23.5.2859.jar | e3c3d50c7c986df74c645c0ac54639741c90a557 |
| LCHIJA | forge | 14.23.5.2859 | forge-1.12.2-14.23.5.2859.jar | e3c3d50c7c986df74c645c0ac54639741c90a557 |
| LCHIJA | replaymod-compat | 1.12.2-2.0.1-b1 | replaymod-1.12.2-2.0.1-b1.jar | None |
| LCHIJA | replaymod-replay | 1.12.2-2.0.1-b1 | replaymod-1.12.2-2.0.1-b1.jar | None |
| LCHIJA | replaymod | 1.12.2-2.0.1-b1 | replaymod-1.12.2-2.0.1-b1.jar | None |
| LCHIJA | replaymod-render | 1.12.2-2.0.1-b1 | replaymod-1.12.2-2.0.1-b1.jar | None |
| LCHIJA | replaymod-editor | 1.12.2-2.0.1-b1 | replaymod-1.12.2-2.0.1-b1.jar | None |
| LCHIJA | replaymod-extras | 1.12.2-2.0.1-b1 | replaymod-1.12.2-2.0.1-b1.jar | None |
| LCHIJA | replaymod-online | 1.12.2-2.0.1-b1 | replaymod-1.12.2-2.0.1-b1.jar | None |
| LCHIJA | replaymod-recording | 1.12.2-2.0.1-b1 | replaymod-1.12.2-2.0.1-b1.jar | None |
| LCHIJA | replaymod-simplepathing | 1.12.2-2.0.1-b1 | replaymod-1.12.2-2.0.1-b1.jar | None |
Loaded coremods (and transformers):
LoadingPlugin (replaymod-1.12.2-2.0.1-b1.jar)
GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 456.71' Renderer: 'GeForce GTX 950/PCIe/SSE2'
Launched Version: 1.12.2
LWJGL: 2.9.4
OpenGL: GeForce GTX 950/PCIe/SSE2 GL version 4.6.0 NVIDIA 456.71, NVIDIA Corporation
GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Shaders are available because OpenGL 2.1 is supported.
VBOs are available because OpenGL 1.5 is supported.
Using VBOs: Yes
Is Modded: Definitely; Client brand changed to 'fml,forge,LiteLoader'
Type: Client (map_client.txt)
Resource Packs: �l�b Zentha �6[16x]
Current Language: English (US)
Profiler Position: N/A (disabled)
CPU: 4x Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz
This is something that theoretically should work (and I think worked in the past, but was also broken at other times in the past), but I've never tested myself. I don't know when I'll have time to look into it, but it is something that should be fixable (though I can't tell exactly what the cause is from that crash report).
Do you know any historical versions which work with ReplayMod? Apparently in v4.0.4.0 you fixed compatibility with ReplayMod, but im not sure which version of ReplayMod you were talking about. The latest version just crashes on startup, and the one I used (the very first 1.12.2 release) has this issue, but maybe something in between them works? I can test each version out if you'd like.
I unfortunately don't know/remember. But it'd probably have been one that was released at around the same time.
Okay, I'll look for a version which would be the most recent at that time.
I found a working version :)
For anyone who needs it, Replay Mod v1.12.2-2.2.0-b7 and World Downloader v4.0.4.0 are compatible (although the disconnect button on servers is like hidden behind the pause recording and stop recording buttons, but is still accessible if you click in the small gap between the 2 of them)
I'd appreciate it if you could try and figure out the first version of WDL that stopped working with Replay Mod v1.12.2-2.2.0-b7 (assuming that the current version doesn't work - check that first), and the first version of replaymod that stopped working with WDL, though if you don't have time to do that it's fine. The binary search algorithm (AKA bisecting; you just pick a version halfway between the ones that work and the ones that don't and use whether it works to narrow in on the version where it change) makes doing something like that fairly easy.
I can do that tomorrow, or maybe later today if I get the chance. It should only take about 15 minutes I think since theres ~2^5 versions, and I can test each one in 2-3 minutes. I'll let you know when I find out which version causes it
The latest version of WDL is compatible with Replay Mod v1.12.2-2.2.0-b7. But the latest version of WDL causes Replay Mod to disable itself in the following 2 versions (Replay Mod v1.12.2-2.3.0-b1 and Replay Mod v1.12.2-2.3.0) before it completely fails to launch in Replay Mod v1.12.2-2.3.1
Thanks. Looking at differences between those versions, I'm guessing this has to do with an update to the Mixin library used by replaymod conflicting with the version liteloader users. ReplayMod has instructions on how to work around that on their website, though I think that will result in using 1.12.2-2.4.5
(possibly the snippet can be edited to use a newer version).
Sounds good :) Let me know if you need me to test anything else