
Crash when opening upper door half without a lower door half
WardenDrew opened this issue ยท 1 comments
Information
Minecraft version: 1.20.1
Modloader: Fabric
Fabric loader version: 0.16.14
Environment: Multiplayer
Mod name: com.natamus.doubledoors_common_fabric
Mod version: 7.1
Description
A door generated that had the lower half of the door overwritten during world gen by another structure (in this case a mossy cobble block) A baby villager was walking the 1x1 gap with the door upper half and attempte to close the upper half, resuling in this crash
Reference Picture with the suspended villager entities (both of them did it in short succession from each other)
It appears that this mod is assuming the lower door segment exists and isn't try/catching the call to get the open
property of the block below the upper half to detect if the door has been broken like this.
Crash report
Neruina caught villager ticking error and suspended the villager, isolating the crash. Crash Log:
java.lang.IllegalArgumentException: Cannot get property class_2746{name=open, clazz=class java.lang.Boolean, values=[true, false]} as it does not exist in Block{minecraft:mossy_cobblestone}
at knot//net.minecraft.class_2688.method_11654(class_2688.java:98)
at knot//com.natamus.doubledoors_common_fabric.util.Util.processDoor(Util.java:56)
at knot//net.minecraft.class_4107.handler$deg000$doubledoors$rememberDoorToClose(class_4107.java:1039)
at knot//net.minecraft.class_4107.method_46969(class_4107.java)
at knot//net.minecraft.class_4107.md34019d$bewitchment$lambda$create$3$2(class_4107.java:573)
at knot//net.minecraft.class_7898$1.trigger(class_7898.java:53)
at knot//net.minecraft.class_7894.method_18922(class_7894.java:20)
at knot//net.minecraft.class_4095.method_18891(class_4095.java:736)
at knot//net.minecraft.class_4095.method_19542(class_4095.java:492)
at knot//net.minecraft.class_1646.method_5958(class_1646.java:279)
at knot//net.minecraft.class_1308.method_6023(class_1308.java:788)
at knot//net.minecraft.class_1309.method_6007(class_1309.java:2673)
at knot//net.minecraft.class_1308.method_6007(class_1308.java:550)
at knot//net.minecraft.class_1296.method_6007(class_1296.java:128)
at knot//net.minecraft.class_1309.method_5773(class_1309.java:2419)
at knot//net.minecraft.class_1308.method_5773(class_1308.java:351)
at knot//net.minecraft.class_1646.method_5773(class_1646.java:320)
at knot//net.minecraft.class_3218.method_18762(class_3218.java:739)
at knot//net.minecraft.class_1937.mixinextras$bridge$accept$206(class_1937.java)
at knot//com.bawnorton.neruina.handler.TickHandler.safelyTickEntities(TickHandler.java:112)
at knot//net.minecraft.class_1937.wrapOperation$fpl000$neruina$catchTickingEntities$notTheCauseOfTickLag(class_1937.java:15548)
at knot//net.minecraft.class_1937.method_18472(class_1937.java:480)
at knot//net.minecraft.class_3218.method_31420(class_3218.java:385)
at knot//net.minecraft.class_5574.method_31791(class_5574.java:54)
at knot//net.minecraft.class_3218.method_18765(class_3218.java:353)
at knot//net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:897)
at knot//net.minecraft.class_3176.method_3813(class_3176.java:283)
at knot//net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:824)
at knot//net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:671)
at knot//net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265)
at java.base/java.lang.Thread.run(Unknown Source)
Bug specifically is here:
https://github.com/Serilum/Double-Doors/blob/c86f1ee4e70d1d4dbcfa7c3c62875169ebe126f8/Common/src/main/java/com/natamus/doubledoors/util/Util.java#L56
I'm guessing a safety check that the block is actually a door after line 50 would address this