From 3fb22e8951e052fcbc011eca0147f4222c2760d1 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 19 May 2024 17:15:44 -0700 Subject: [PATCH] fix CompassMeta not being correct (#10737) --- patches/server/General-ItemMeta-fixes.patch | 37 +++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/patches/server/General-ItemMeta-fixes.patch b/patches/server/General-ItemMeta-fixes.patch index ed5706a929..8eba6a66a0 100644 --- a/patches/server/General-ItemMeta-fixes.patch +++ b/patches/server/General-ItemMeta-fixes.patch @@ -194,6 +194,43 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } if (this.resolved) { +diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaCompass.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaCompass.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaCompass.java ++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaCompass.java +@@ -0,0 +0,0 @@ public class CraftMetaCompass extends CraftMetaItem implements CompassMeta { + private int lodestoneX; + private int lodestoneY; + private int lodestoneZ; +- private boolean tracked = true; ++ private Boolean tracked = null; // Paper - tri-state + + CraftMetaCompass(CraftMetaItem meta) { + super(meta); +@@ -0,0 +0,0 @@ public class CraftMetaCompass extends CraftMetaItem implements CompassMeta { + this.setLodestone(lodestone); + } + } +- this.tracked = SerializableMeta.getBoolean(map, CraftMetaCompass.LODESTONE_TRACKED.BUKKIT); ++ this.tracked = SerializableMeta.getObjectOptionally(Boolean.class, map, CraftMetaCompass.LODESTONE_TRACKED.BUKKIT, true).orElse(null); // Paper - tri-state + } + + @Override +@@ -0,0 +0,0 @@ public class CraftMetaCompass extends CraftMetaItem implements CompassMeta { + } + + boolean hasLodestoneTracked() { +- return !this.tracked; ++ return this.tracked != null; // Paper - tri-state + } + + @Override + public boolean isLodestoneTracked() { +- return this.tracked; ++ return this.tracked != null && this.tracked; // Paper - tri-state + } + + @Override diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaFirework.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaFirework.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaFirework.java