abecderic / labyrinth

Explore the many rooms and corridors of Daedalus' labyrinth.
https://minecraft.curseforge.com/projects/daedalus-labyrinth
1 stars 1 forks source link

Invalid String nbt during world save #14

Closed LemADEC closed 5 years ago

LemADEC commented 6 years ago

As of 1.5, there's an exception when saving a world due to invalid empty string in NBT data:

[08:52:26] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 4134ms behind, skipping 82 tick(s)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]: java.lang.IllegalArgumentException: Empty string not allowed
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at net.minecraft.nbt.NBTTagString.<init>(NBTTagString.java:22)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at net.minecraft.nbt.NBTTagCompound.func_74778_a(NBTTagCompound.java:128)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at com.abecderic.labyrinth.worldgen.LabyrinthChunk.writeToNBT(LabyrinthChunk.java:49)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at com.abecderic.labyrinth.util.LabyrinthWorldData.func_189551_b(LabyrinthWorldData.java:62)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at net.minecraft.world.storage.MapStorage.func_75747_a(SourceFile:92)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at net.minecraft.world.storage.MapStorage.func_75744_a(SourceFile:78)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at net.minecraft.world.WorldServer.func_73042_a(WorldServer.java:1058)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at net.minecraft.world.WorldServer.func_73044_a(WorldServer.java:1006)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at org.spongepowered.common.world.WorldManager.saveWorld(WorldManager.java:535)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at net.minecraft.server.MinecraftServer.func_71267_a(MinecraftServer.java:3886)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at net.minecraft.server.MinecraftServer.constant$getSaveTickInterval$zhp000(MinecraftServer.java:3841)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:632)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:471)
[08:53:08] [Server thread/INFO] [STDERR]: [net.minecraft.world.storage.MapStorage:func_75747_a:99]:     at java.lang.Thread.run(Thread.java:748)
abecderic commented 6 years ago

Single or multiplayer? Forge and its version? Other mods and their versions? Custom config?, if yes upload it If possible: Check the entire log if it contains the chunk that is causing the crash and get me the output of the /labyrinth chunk-info command of that chunk.

LemADEC commented 6 years ago

That log is from a dedicated server running forge-1.10.2-12.18.3.2511-universal.jar + spongeforge-1.10.2-2477-5.2.0-BETA-2793.jar with following configuration file:

# Configuration file

general {
    # If players can use commands. [default: true]
    B:commands=true

    # The dimension id used for the labyrinth dimension [range: -2147483648 ~ 2147483647, default: 1024]
    I:dimensionId=1024

    # If the labyrinth should have a roof. [default: true]
    B:generateRoof=true

    # If the sun should shine in the labyrinth dimension. [default: false]
    B:sunlight=false

    # If Daedalus' Workshop should spawn in villages. [default: true]
    B:villageHouse=true
}

rooms {
    # A list of rooms in the labyrinth. Remove from here, if you don't want a room to spawn. Add here, if you added a room in a resource pack. [default: [empty_stonebrick], [empty_wood], [cave], [hallway], [workshop]$
    S:list <
        canal
        cave
        checkpoint
        desert
        empty_stonebrick
        empty_wood
        farm
        forest
        grasslands
        hallway
        lab
        library
        nether
        snow
        workshop
     >
}

There's no custom structures. There's no way for me to identify which chunk is having an issue to run that command. I suspect it's related to generating new chunks, probably a Forge event/call that is not happening the way the mod expects it.