mojira.dev
MC-184653

[Crash] "java.lang.IllegalArgumentException: value already present:" - Game crashes when worldgen dimension type presets are not unique

The bug

When there are multiple dimensions with the same dimension type, the game crashes. When type is a string, it is supposedly a preset for dimension options like ultrawarm, shrunk, etc. However only one dimension can use the default values overworld, the_nether and the_end.

How to reproduce

  1. Download the worldgen settings

[media]
  1. Create a new world and select the downloaded file when importing world settings
    ❌ The game crashes because the custom:overworld also used the overworld dimension type preset.

Workaround

Instead of using one of the presets, specify all the default properties like this:

"type": {
  "ultrawarm": false,
  "natural": true,
  "shrunk": false,
  "ambient_light": 0,
  "has_skylight": true,
  "has_ceiling": false
}

Stack trace

20w21a\: https://pastebin.com/j9fPF0vs

Description: Exception in server tick loop
 
java.lang.IllegalArgumentException: value already present: chf@6204b89e
    at com.google.common.collect.HashBiMap.put(HashBiMap.java:287)
    at com.google.common.collect.HashBiMap.put(HashBiMap.java:262)
    at gg.a(SourceFile:51)
    at gg.a(SourceFile:62)
    at gl$a.a(SourceFile:28)
    at net.minecraft.server.MinecraftServer.a(SourceFile:407)
    at net.minecraft.server.MinecraftServer.i_(SourceFile:334)
    at enr.d(SourceFile:65)
    at net.minecraft.server.MinecraftServer.run(SourceFile:666)
    at java.lang.Thread.run(Thread.java:745)

Environment

– System Details –
Details:
Minecraft Version: 20w21a
Minecraft Version ID: 20w21a
Operating System: Windows 7 (amd64) version 6.1
Java Version: 1.8.0_51, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 1528227904 bytes (1457 MB) / 1979711488 bytes (1888 MB) up to 2147483648 bytes (2048 MB)
CPUs: 8
JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
Player Count: 0 / 8; []
Data Packs: vanilla
Type: Integrated Server (map_client.txt)
Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.

Linked issues

Attachments

Comments 4

In MC-184836, I provided a custom settings file that does not duplicate dimension names (as the example linked here), and also produces a crash.  In my example, a new dimension is added with a unique name and a copy/paste of the settings for the normal overworld, except the seed is changed.  The game crashes on world creation, and the crash report linked in MC-184836 has crash details.

Seems like you need to change the "type" element in the dimension values

Confirmed in 1.16 Pre-release 1.

Confirmed in 1.16 Pre-release 2.

MicherBugs

Fry

Confirmed

Very Important

Crash

20w21a, 20w22a, 1.16 Pre-release 2

1.16 Pre-release 3

Retrieved