From 966c80c18f46d015135c95726cc233a4bce798db Mon Sep 17 00:00:00 2001
From: Bjarne Koll <git@lynxplay.dev>
Date: Sun, 27 Oct 2024 12:20:17 +0100
Subject: [PATCH] Update material tags and entity effect

---
 patches/api/Add-Material-Tags.patch         | 22 ++++++++++-----------
 patches/api/Improve-entity-effect-API.patch |  9 ++++++++-
 2 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/patches/api/Add-Material-Tags.patch b/patches/api/Add-Material-Tags.patch
index d83b9beb90..c416ce3d25 100644
--- a/patches/api/Add-Material-Tags.patch
+++ b/patches/api/Add-Material-Tags.patch
@@ -227,7 +227,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +     */
 +    public static final MaterialSetTag DOORS = new MaterialSetTag(keyFor("doors"))
 +        .endsWith("_DOOR")
-+        .ensureSize("DOORS", 20).lock();
++        .ensureSize("DOORS", 21).lock();
 +
 +    /**
 +     * Covers all dyes.
@@ -241,14 +241,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +     */
 +    public static final MaterialSetTag FENCE_GATES = new MaterialSetTag(keyFor("fence_gates"))
 +        .endsWith("_GATE")
-+        .ensureSize("FENCE_GATES", 11).lock();
++        .ensureSize("FENCE_GATES", 12).lock();
 +
 +    /**
 +     * Covers all variants of fences.
 +     */
 +    public static final MaterialSetTag FENCES = new MaterialSetTag(keyFor("fences"))
 +        .endsWith("_FENCE")
-+        .ensureSize("FENCES", 12).lock();
++        .ensureSize("FENCES", 13).lock();
 +
 +    /**
 +     * Covers all variants of fish buckets.
@@ -362,7 +362,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +     */
 +    public static final MaterialSetTag PRESSURE_PLATES = new MaterialSetTag(keyFor("pressure_plates"))
 +        .endsWith("_PRESSURE_PLATE")
-+        .ensureSize("PRESSURE_PLATES", 15).lock();
++        .ensureSize("PRESSURE_PLATES", 16).lock();
 +
 +    /**
 +     * Covers the variants of prismarine blocks.
@@ -441,7 +441,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +     */
 +    public static final MaterialSetTag SPAWN_EGGS = new MaterialSetTag(keyFor("spawn_eggs"))
 +        .endsWith("_SPAWN_EGG")
-+        .ensureSize("SPAWN_EGGS", 80).lock();
++        .ensureSize("SPAWN_EGGS", 81).lock();
 +
 +    /**
 +     * Covers all colors of stained glass.
@@ -462,7 +462,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +     */
 +    public static final MaterialSetTag TRAPDOORS = new MaterialSetTag(keyFor("trapdoors"))
 +        .endsWith("_TRAPDOOR")
-+        .ensureSize("TRAPDOORS", 20).lock();
++        .ensureSize("TRAPDOORS", 21).lock();
 +
 +    /**
 +     * Covers all wood variants of doors.
@@ -471,7 +471,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +        .endsWith("_DOOR")
 +        .not(Material.IRON_DOOR)
 +        .notContains("COPPER")
-+        .ensureSize("WOODEN_DOORS", 11).lock();
++        .ensureSize("WOODEN_DOORS", 12).lock();
 +
 +    /**
 +     * Covers all wood variants of fences.
@@ -479,7 +479,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +    public static final MaterialSetTag WOODEN_FENCES = new MaterialSetTag(keyFor("wooden_fences"))
 +        .endsWith("_FENCE")
 +        .not(Material.NETHER_BRICK_FENCE)
-+        .ensureSize("WOODEN_FENCES", 11).lock();
++        .ensureSize("WOODEN_FENCES", 12).lock();
 +
 +    /**
 +     * Covers all wood variants of trapdoors.
@@ -488,14 +488,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +        .endsWith("_TRAPDOOR")
 +        .not(Material.IRON_TRAPDOOR)
 +        .notContains("COPPER")
-+        .ensureSize("WOODEN_TRAPDOORS", 11).lock();
++        .ensureSize("WOODEN_TRAPDOORS", 12).lock();
 +
 +    /**
 +     * Covers the wood variants of gates.
 +     */
 +    public static final MaterialSetTag WOODEN_GATES = new MaterialSetTag(keyFor("wooden_gates"))
 +        .endsWith("_GATE")
-+        .ensureSize("WOODEN_GATES", 11).lock();
++        .ensureSize("WOODEN_GATES", 12).lock();
 +
 +    /**
 +     * Covers the variants of purpur.
@@ -509,7 +509,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +     */
 +    public static final MaterialSetTag SIGNS = new MaterialSetTag(keyFor("signs"))
 +        .endsWith("_SIGN")
-+        .ensureSize("SIGNS", 44).lock();
++        .ensureSize("SIGNS", 48).lock();
 +
 +    /**
 +     * Covers the variants of a regular torch.
diff --git a/patches/api/Improve-entity-effect-API.patch b/patches/api/Improve-entity-effect-API.patch
index c1c2fe5789..0277e12f49 100644
--- a/patches/api/Improve-entity-effect-API.patch
+++ b/patches/api/Improve-entity-effect-API.patch
@@ -90,7 +90,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +    /**
 +     * {@link org.bukkit.inventory.EquipmentSlot#BODY} armor piece breaks
 +     */
-+    BODY_BREAK(65, LivingEntity.class);
++    BODY_BREAK(65, LivingEntity.class),
++    /**
++     * A creaking transient shaking when being hit.
++     * Does not apply to plain creaking entities as they are not invulnerable like the transient ones spawned by the
++     * creaking heart.
++     */
++    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
++    SHAKE(66, org.bukkit.entity.CreakingTransient.class);
 +    // Paper end - add missing EntityEffect
  
      private final byte data;