Replay Mod (Fabric & Forge)

Replay Mod (Fabric & Forge)

1M Downloads

Crash on save with Biomes O' Plenty

amwaters opened this issue ยท 2 comments

commented

Replay mod crashes while attempting to save a replay when the world type is "Biomes O' Plenty" (biomesop) from the Biomes O' Plenty mod.

Potential incompatibility with any modded world types other than the standard ones (predefined in this list)

  • Minecraft 1.12.2
  • Forge 14.23.5.2844
  • ReplayMod 1.12.2-2.2.0-b7
  • Biomes O' Plenty 1.12.2-7.0.1.2439

java.lang.IllegalArgumentException: Value biomesop has no mapping for key class com.replaymod.lib.com.github.steveice10.mc.protocol.data.game.world.WorldType.

Exception and error log

[12:34:36] [Thread-11/ERROR] [com.replaymod.recording.packet.PacketListener]: Saving replay file:
java.io.IOException: decoding
	at com.replaymod.replaystudio.io.ReplayInputStream.fillBuffer(ReplayInputStream.java:233) ~[ReplayInputStream.class:?]
	at com.replaymod.replaystudio.io.ReplayInputStream.readPacket(ReplayInputStream.java:184) ~[ReplayInputStream.class:?]
	at com.replaymod.editor.gui.MarkerProcessor.apply(MarkerProcessor.java:146) ~[MarkerProcessor.class:?]
	at com.replaymod.recording.packet.PacketListener.lambda$channelInactive$8(PacketListener.java:225) ~[PacketListener.class:?]
	at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]
Caused by: java.lang.IllegalArgumentException: Value biomesop has no mapping for key class com.replaymod.lib.com.github.steveice10.mc.protocol.data.game.world.WorldType.
	at com.replaymod.lib.com.github.steveice10.mc.protocol.data.MagicValues.key(MagicValues.java:1081) ~[MagicValues.class:?]
	at com.replaymod.lib.com.github.steveice10.mc.protocol.packet.ingame.server.ServerJoinGamePacket.read(ServerJoinGamePacket.java:80) ~[ServerJoinGamePacket.class:?]
	at com.replaymod.lib.com.github.steveice10.packetlib.tcp.TcpPacketCodec.decode(TcpPacketCodec.java:41) ~[TcpPacketCodec.class:?]
	at com.replaymod.replaystudio.studio.protocol.StudioCodec.decode(StudioCodec.java:42) ~[StudioCodec.class:?]
	at com.replaymod.replaystudio.io.ReplayInputStream.fillBuffer(ReplayInputStream.java:229) ~[ReplayInputStream.class:?]
	... 4 more
[12:34:36] [Client thread/ERROR] [com.replaymod.recording.packet.PacketListener]: ---- Minecraft Crash Report ----
// Who set us up the TNT?

Time: 9/3/19 12:34 PM
Description: Saving replay file

java.io.IOException: decoding
	at com.replaymod.replaystudio.io.ReplayInputStream.fillBuffer(ReplayInputStream.java:233)
	at com.replaymod.replaystudio.io.ReplayInputStream.readPacket(ReplayInputStream.java:184)
	at com.replaymod.editor.gui.MarkerProcessor.apply(MarkerProcessor.java:146)
	at com.replaymod.recording.packet.PacketListener.lambda$channelInactive$8(PacketListener.java:225)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Value biomesop has no mapping for key class com.replaymod.lib.com.github.steveice10.mc.protocol.data.game.world.WorldType.
	at com.replaymod.lib.com.github.steveice10.mc.protocol.data.MagicValues.key(MagicValues.java:1081)
	at com.replaymod.lib.com.github.steveice10.mc.protocol.packet.ingame.server.ServerJoinGamePacket.read(ServerJoinGamePacket.java:80)
	at com.replaymod.lib.com.github.steveice10.packetlib.tcp.TcpPacketCodec.decode(TcpPacketCodec.java:41)
	at com.replaymod.replaystudio.studio.protocol.StudioCodec.decode(StudioCodec.java:42)
	at com.replaymod.replaystudio.io.ReplayInputStream.fillBuffer(ReplayInputStream.java:229)
	... 4 more


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- System Details --
Details:
	Minecraft Version: 1.12.2
	Operating System: Windows 10 (amd64) version 10.0
	Java Version: 1.8.0_211, Oracle Corporation
	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 2303640416 bytes (2196 MB) / 3154116608 bytes (3008 MB) up to 3154116608 bytes (3008 MB)
	JVM Flags: 9 total; -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=10 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=100 -XX:G1HeapRegionSize=32M -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xms3000m -Xmx3000m
	IntCache: cache: 0, tcache: 0, allocated: 11, tallocated: 96
	FML: MCP 9.42 Powered by Forge 14.23.5.2844 6 mods loaded, 6 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.2844-universal.jar       | None      |
	| LCHIJA | forge         | 14.23.5.2844    | forge-1.12.2-14.23.5.2844-universal.jar       | None      |
	| LCHIJA | replaymod     | 1.12.2-2.2.0-b7 | replaymod-1.12.2-2.2.0-b7.jar                 | None      |
	| LCHIJA | biomesoplenty | 7.0.1.2439      | BiomesOPlenty-1.12.2-7.0.1.2439-universal.jar | None      |

	Loaded coremods (and transformers): 
LoadingPlugin (replaymod-1.12.2-2.2.0-b7.jar)
  
	GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.

commented

Workaround (dirty hack):

Hack the bytecode of com/replaymod/lib/com/github/steveice10/mc/protocol/data/MagicValues.class and change an unused biome type (in my case flat) to biomesop.

Horrible, but it fixes the crash and illustrates the issue.

commented

Duplicate of #69