BlueMap-Minecraft / BlueMap

A Minecraft mapping tool that creates 3D models of your Minecraft worlds and displays them in a web viewer.
https://bluecolo.red/bluemap
MIT License
1.76k stars 114 forks source link

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

Closed devdaniel closed 2 months ago

devdaniel commented 2 months ago

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

devdaniel commented 2 months ago

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

TBlueF commented 2 months ago

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