BlueMap

BlueMap

85.1k Downloads

Error reading world data with compactmachines mod on startup in 4.0+

devdaniel opened this issue ยท 2 comments

commented

What I did / Steps to reproduce

  1. Start up new forge modded server with compactmachines mod enabled (in my case, FTB direwolf20 1.16)
  2. Allow server to generate world data
  3. Start up new instance of BlueMap 4.0 or newer (no configuration outside of EULA agree/accept-download: true) pointed to shared world directory

bluemap service in docker-compose.yml:

  bluemap-dev:
    profiles:
      - bluemap-dev
    image: ghcr.io/bluemap-minecraft/bluemap:v4.0
    command: -r -u -w --mc-version 1.16.5
    ports:
      - '8100:8100'
    volumes:
      - world:/app/world
      - ./bluemap/config-dev:/app/config

Expected result

Start render task

Actual result

Error reported in console, example with v4.0:

dw20-116-bluemap-dev-1  | [
dw20-116-bluemap-dev-1  | 18:33:07 INFO
dw20-116-bluemap-dev-1  | ] Starting webserver ...
dw20-116-bluemap-dev-1  | [18:33:07 INFO
dw20-116-bluemap-dev-1  | ] Initializing Storage: 'file' (Type: FILE)
dw20-116-bluemap-dev-1  | [18:33:07 INFO] WebServer bound to all network interfaces on port 8100
dw20-116-bluemap-dev-1  | [18:33:07 INFO]
dw20-116-bluemap-dev-1  | WebServer started.
dw20-116-bluemap-dev-1  | [18:33:08 INFO
dw20-116-bluemap-dev-1  | ] Downloading https://piston-data.mojang.com/v1/objects/653e97a2d1d76f87653f02242d243cdee48a5144/client.jar to data/minecraft-client-1.16.2.jar ...
dw20-116-bluemap-dev-1  | [18:33:09 INFO] Loading resources...
dw20-116-bluemap-dev-1  | [18:33:09 INFO] Loading textures...
dw20-116-bluemap-dev-1  |
dw20-116-bluemap-dev-1  |
dw20-116-bluemap-dev-1  | [18:33:10 INFO] Baking resources...
dw20-116-bluemap-dev-1  | [18:33:10 INFO] Resources loaded.
dw20-116-bluemap-dev-1  | [18:33:10 ERROR] An unexpected error occurred!
dw20-116-bluemap-dev-1  | java.lang.IllegalStateException: STRING tag expected but got COMPOUND. At: Data.WorldGenSettings.dimensions.compactmachines:compact_world.type
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.PrimitiveAdapterFactory.readString(PrimitiveAdapterFactory.java:195)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.BlueNBT.read(BlueNBT.java:109)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.DefaultAdapterFactory$DefaultAdapter.lambda$new$17(DefaultAdapterFactory.java:111)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.DefaultAdapterFactory$TypeDeserializerFieldAccessor.read(DefaultAdapterFactory.java:167)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.DefaultAdapterFactory$DefaultAdapter.read(DefaultAdapterFactory.java:141)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.MapAdapterFactory$MapAdapter.read(MapAdapterFactory.java:74)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.MapAdapterFactory$MapAdapter.read(MapAdapterFactory.java:62)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.BlueNBT.read(BlueNBT.java:109)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.DefaultAdapterFactory$DefaultAdapter.lambda$new$17(DefaultAdapterFactory.java:111)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.DefaultAdapterFactory$TypeDeserializerFieldAccessor.read(DefaultAdapterFactory.java:167)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.DefaultAdapterFactory$DefaultAdapter.read(DefaultAdapterFactory.java:141)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.BlueNBT.read(BlueNBT.java:109)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.DefaultAdapterFactory$DefaultAdapter.lambda$new$17(DefaultAdapterFactory.java:111)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.DefaultAdapterFactory$TypeDeserializerFieldAccessor.read(DefaultAdapterFactory.java:167)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.DefaultAdapterFactory$DefaultAdapter.read(DefaultAdapterFactory.java:141)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.BlueNBT.read(BlueNBT.java:109)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.DefaultAdapterFactory$DefaultAdapter.lambda$new$17(DefaultAdapterFactory.java:111)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.DefaultAdapterFactory$TypeDeserializerFieldAccessor.read(DefaultAdapterFactory.java:167)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.adapter.DefaultAdapterFactory$DefaultAdapter.read(DefaultAdapterFactory.java:141)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.BlueNBT.read(BlueNBT.java:109)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.BlueNBT.read(BlueNBT.java:105)
dw20-116-bluemap-dev-1  |       at de.bluecolored.shadow.bluenbt.BlueNBT.read(BlueNBT.java:113)
dw20-116-bluemap-dev-1  |       at de.bluecolored.bluemap.core.world.mca.MCAWorld.load(MCAWorld.java:262)
dw20-116-bluemap-dev-1  |       at de.bluecolored.bluemap.common.BlueMapService.loadMap(BlueMapService.java:228)
dw20-116-bluemap-dev-1  |       at de.bluecolored.bluemap.common.BlueMapService.getOrLoadMaps(BlueMapService.java:167)
dw20-116-bluemap-dev-1  |       at de.bluecolored.bluemap.cli.BlueMapCLI.renderMaps(BlueMapCLI.java:92)
dw20-116-bluemap-dev-1  |       at de.bluecolored.bluemap.cli.BlueMapCLI.main(BlueMapCLI.java:334)
dw20-116-bluemap-dev-1 exited with code 1

Context

Using BlueMap CLI
BlueMap Version: docker tag: ghcr.io/bluemap-minecraft/bluemap:v4.0
Reproduced with tag ghcr.io/bluemap-minecraft/bluemap:v4.1
Reproduced with latest build #411 artifact
Not reproduced in latest v3 v3.20
Not reproduced with tags v3.19 v3.18 v3.17 v3.16

Server Version:
FTB Presents Direwolf20 1.16 1.13.2 2113

Running on Ubuntu 22.04 with docker-compose
Separate services for minecraft and bluemap
Sharing a common volume for world data
No additional mods or services

NBTExplorer does indeed show the type for compactmachines being in a non-string format, unlike other worlds such as the minecraft:overworld.

image

level.dat file
level.zip

commented

For this modpack (Direwolf20 1.16) it appears this is the only world where this occurs. All of the other worlds in this level.dat use a simple string here. I do find it odd that this mod shoves this data into the type parameter and changes its type, but this was not an issue prior to the 4.0 rewrite.
Compact Machines 4.0-beta2

commented

Hey! Thanks for the detailed report, this is a duplicate of #517 .. closing in favour of that issue :)