Crash on save with Biomes O' Plenty
amwaters opened this issue ยท 2 comments
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.
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.
Duplicate of #69