TARDIS

TARDIS

228k Downloads

Fails to start on 1.20 due to old blockdata

DrPepplies opened this issue ยท 4 comments

commented

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).

commented

Do you have custom rooms? If so, disable them in rooms.yml and try to start the server again

commented

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?

commented

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

invalid_blockdata

commented

Brilliant, thank you. That's found the right schematic and I've fixed it now.

Cheers!