Fails to start on 1.20 due to old blockdata
DrPepplies opened this issue ยท 4 comments
Describe the bug
The plugin is not starting for me after updating to 1.20, due to this error:
[13:45:48] [Server thread/ERROR]: Error occurred while enabling TARDIS v5.0.0-b2638 (Is it up to date?)
java.lang.IllegalArgumentException: Could not parse data: minecraft:cauldron[level=3]
at org.bukkit.craftbukkit.v1_20_R1.block.data.CraftBlockData.createNewData(CraftBlockData.java:582) ~[paper-1.20.1.jar:git-Paper-61]
at org.bukkit.craftbukkit.v1_20_R1.block.data.CraftBlockData.lambda$newData$1(CraftBlockData.java:557) ~[paper-1.20.1.jar:git-Paper-61]
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) ~[?:?]
at org.bukkit.craftbukkit.v1_20_R1.block.data.CraftBlockData.newData(CraftBlockData.java:557) ~[paper-1.20.1.jar:git-Paper-61]
at org.bukkit.craftbukkit.v1_20_R1.CraftServer.createBlockData(CraftServer.java:2662) ~[paper-1.20.1.jar:git-Paper-61]
at org.bukkit.craftbukkit.v1_20_R1.CraftServer.createBlockData(CraftServer.java:2655) ~[paper-1.20.1.jar:git-Paper-61]
at me.eccentric_nz.TARDIS.files.TARDISRoomMap.getMaterialAsString(TARDISRoomMap.java:125) ~[TARDIS-b2638.jar:?]
at me.eccentric_nz.TARDIS.files.TARDISRoomMap.makeRoomMap(TARDISRoomMap.java:106) ~[TARDIS-b2638.jar:?]
at me.eccentric_nz.TARDIS.files.TARDISRoomMap.lambda$load$0(TARDISRoomMap.java:55) ~[TARDIS-b2638.jar:?]
at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
at me.eccentric_nz.TARDIS.files.TARDISRoomMap.load(TARDISRoomMap.java:53) ~[TARDIS-b2638.jar:?]
at me.eccentric_nz.TARDIS.TARDIS.loadFiles(TARDIS.java:1575) ~[TARDIS-b2638.jar:?]
at me.eccentric_nz.TARDIS.TARDIS.onEnable(TARDIS.java:405) ~[TARDIS-b2638.jar:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:281) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:189) ~[paper-1.20.1.jar:git-Paper-61]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104) ~[paper-1.20.1.jar:git-Paper-61]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R1.CraftServer.enablePlugin(CraftServer.java:636) ~[paper-1.20.1.jar:git-Paper-61]
at org.bukkit.craftbukkit.v1_20_R1.CraftServer.enablePlugins(CraftServer.java:547) ~[paper-1.20.1.jar:git-Paper-61]
at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:636) ~[paper-1.20.1.jar:git-Paper-61]
at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:435) ~[paper-1.20.1.jar:git-Paper-61]
at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:308) ~[paper-1.20.1.jar:git-Paper-61]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1101) ~[paper-1.20.1.jar:git-Paper-61]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:318) ~[paper-1.20.1.jar:git-Paper-61]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: com.mojang.brigadier.exceptions.CommandSyntaxException: Block minecraft:cauldron does not have property 'level' at position 19: ...:cauldron[<--[HERE]
[13:45:48] [Server thread/INFO]: [TARDIS] Disabling TARDIS v5.0.0-b2638
To Reproduce
Not sure how to reproduce, as I don't know where that data is stored. I assume one player's console archive or custom chameleon has a cauldron in it?
'/tardis version' output
Can't run the command as the plugin disables, but it's Paper 1.20.1 build 61, and TARDIS build 2638 (latest).
Do you have custom rooms? If so, disable them in rooms.yml and try to start the server again
Okay that fixes it, so yeah it must be a custom room. Is there any way I can easily fix that to enable the room again?
I've added a check for invalid block data in old schematics, so the room will now load - look for warnings in the console - it will tell you which room is at fault - you should recreate the schematic, either by rebuilding it and using the /tschematic
command, or manually editing the schematic file - it is just a gzip compressed JSON file - unzip, edit JSON, recompress, change file extension from .gz
to .tschm