Pokechu22 / WorldDownloader

Makes a copy of parts of a multiplayer world for singleplayer use (EG, for backups or renders)

Home Page:https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/minecraft-mods/2520465-world-downloader-mod-create-backups-of-your-builds

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

hi @Zenthaa, could you help me please.
#265