From 461f02dce2102fa86eb8bac5ea19f06dc2f180df Mon Sep 17 00:00:00 2001
From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
Date: Thu, 20 Jun 2024 18:03:09 +0200
Subject: [PATCH] Experimental annotation changes (#10914)
* Experimental annotation changes
* wind charge damage type is not experimental anymore
---
.../Add-missing-wind-charge-damage-type.patch | 18 +--
... => Experimental-annotations-change.patch} | 129 +++++++++++++++++-
...ntroduce-registry-entry-and-builders.patch | 12 +-
3 files changed, 135 insertions(+), 24 deletions(-)
rename patches/api/{add-missing-Experimental-annotations.patch => Experimental-annotations-change.patch} (54%)
diff --git a/patches/api/Add-missing-wind-charge-damage-type.patch b/patches/api/Add-missing-wind-charge-damage-type.patch
index 908e0b7b00..2a1fb0a45b 100644
--- a/patches/api/Add-missing-wind-charge-damage-type.patch
+++ b/patches/api/Add-missing-wind-charge-damage-type.patch
@@ -12,23 +12,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
public static final DamageType BAD_RESPAWN_POINT = getDamageType("bad_respawn_point");
public static final DamageType OUTSIDE_BORDER = getDamageType("outside_border");
public static final DamageType GENERIC_KILL = getDamageType("generic_kill");
-+ // Paper start
-+ @org.jetbrains.annotations.Nullable
-+ DamageType WIND_CHARGE = getExperimentalDamageType("wind_charge");
-+ // Paper end
++ DamageType WIND_CHARGE = getDamageType("wind_charge"); // Paper
@NotNull
private static DamageType getDamageType(@NotNull String key) {
-@@ -0,0 +0,0 @@ public interface DamageType extends Keyed, Translatable {
- return Preconditions.checkNotNull(Registry.DAMAGE_TYPE.get(namespacedKey), "No DamageType found for %s. This is a bug.", namespacedKey);
- }
-
-+ // Paper start
-+ private static @org.jetbrains.annotations.Nullable DamageType getExperimentalDamageType(@NotNull String key) {
-+ return Registry.DAMAGE_TYPE.get(NamespacedKey.minecraft(key));
-+ }
-+ // Paper end
-+
- /**
- * {@inheritDoc}
- *
diff --git a/patches/api/add-missing-Experimental-annotations.patch b/patches/api/Experimental-annotations-change.patch
similarity index 54%
rename from patches/api/add-missing-Experimental-annotations.patch
rename to patches/api/Experimental-annotations-change.patch
index f8847a7749..865a913cb2 100644
--- a/patches/api/add-missing-Experimental-annotations.patch
+++ b/patches/api/Experimental-annotations-change.patch
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jake Potrebic
Date: Sat, 9 Dec 2023 11:47:53 -0800
-Subject: [PATCH] add missing Experimental annotations
+Subject: [PATCH] Experimental annotations change
diff --git a/src/main/java/org/bukkit/FeatureFlag.java b/src/main/java/org/bukkit/FeatureFlag.java
@@ -68,6 +68,132 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
Tag ENTITY_TYPES_CAN_TURN_IN_BOATS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("can_turn_in_boats"), EntityType.class);
/**
* Vanilla tag representing all entities sensitive to illager enchantments.
+diff --git a/src/main/java/org/bukkit/block/Crafter.java b/src/main/java/org/bukkit/block/Crafter.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/block/Crafter.java
++++ b/src/main/java/org/bukkit/block/Crafter.java
+@@ -0,0 +0,0 @@ import org.jetbrains.annotations.ApiStatus;
+ /**
+ * Represents a captured state of a crafter.
+ */
+-@ApiStatus.Experimental
+ public interface Crafter extends Container, com.destroystokyo.paper.loottable.LootableBlockInventory { // Paper - LootTable API
+
+ /**
+diff --git a/src/main/java/org/bukkit/block/TrialSpawner.java b/src/main/java/org/bukkit/block/TrialSpawner.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/block/TrialSpawner.java
++++ b/src/main/java/org/bukkit/block/TrialSpawner.java
+@@ -0,0 +0,0 @@ import org.jetbrains.annotations.ApiStatus;
+ /**
+ * Represents a captured state of a trial spawner.
+ */
+-@ApiStatus.Experimental
+ public interface TrialSpawner extends TileState {
+ }
+diff --git a/src/main/java/org/bukkit/block/Vault.java b/src/main/java/org/bukkit/block/Vault.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/block/Vault.java
++++ b/src/main/java/org/bukkit/block/Vault.java
+@@ -0,0 +0,0 @@ import org.jetbrains.annotations.ApiStatus;
+ /**
+ * Represents a captured state of a trial spawner.
+ */
+-@ApiStatus.Experimental
+ public interface Vault extends TileState {
+ }
+diff --git a/src/main/java/org/bukkit/entity/AbstractWindCharge.java b/src/main/java/org/bukkit/entity/AbstractWindCharge.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/entity/AbstractWindCharge.java
++++ b/src/main/java/org/bukkit/entity/AbstractWindCharge.java
+@@ -0,0 +0,0 @@ import org.jetbrains.annotations.ApiStatus;
+ /**
+ * Represents a Wind Charge.
+ */
+-@ApiStatus.Experimental
+ public interface AbstractWindCharge extends Fireball {
+
+ /**
+diff --git a/src/main/java/org/bukkit/entity/Bogged.java b/src/main/java/org/bukkit/entity/Bogged.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/entity/Bogged.java
++++ b/src/main/java/org/bukkit/entity/Bogged.java
+@@ -0,0 +0,0 @@ import org.jetbrains.annotations.ApiStatus;
+ /**
+ * Represents a Bogged Skeleton.
+ */
+-@ApiStatus.Experimental
+ public interface Bogged extends AbstractSkeleton, io.papermc.paper.entity.Shearable { // Paper - Shear API
+ }
+diff --git a/src/main/java/org/bukkit/entity/Breeze.java b/src/main/java/org/bukkit/entity/Breeze.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/entity/Breeze.java
++++ b/src/main/java/org/bukkit/entity/Breeze.java
+@@ -0,0 +0,0 @@ import org.jetbrains.annotations.ApiStatus;
+ /**
+ * Represents a Breeze. Whoosh!
+ */
+-@ApiStatus.Experimental
+ public interface Breeze extends Monster {
+ }
+diff --git a/src/main/java/org/bukkit/entity/BreezeWindCharge.java b/src/main/java/org/bukkit/entity/BreezeWindCharge.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/entity/BreezeWindCharge.java
++++ b/src/main/java/org/bukkit/entity/BreezeWindCharge.java
+@@ -0,0 +0,0 @@ import org.jetbrains.annotations.ApiStatus;
+ /**
+ * Represents a Wind Charge.
+ */
+-@ApiStatus.Experimental
+ public interface BreezeWindCharge extends AbstractWindCharge {
+
+ }
+diff --git a/src/main/java/org/bukkit/entity/OminousItemSpawner.java b/src/main/java/org/bukkit/entity/OminousItemSpawner.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/entity/OminousItemSpawner.java
++++ b/src/main/java/org/bukkit/entity/OminousItemSpawner.java
+@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
+ /**
+ * Represents an ominous item spawner.
+ */
+-@ApiStatus.Experimental
+ public interface OminousItemSpawner extends Entity {
+
+ /**
+diff --git a/src/main/java/org/bukkit/entity/WindCharge.java b/src/main/java/org/bukkit/entity/WindCharge.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/entity/WindCharge.java
++++ b/src/main/java/org/bukkit/entity/WindCharge.java
+@@ -0,0 +0,0 @@ import org.jetbrains.annotations.ApiStatus;
+ /**
+ * Represents a Wind Charge.
+ */
+-@ApiStatus.Experimental
+ public interface WindCharge extends AbstractWindCharge {
+
+ }
+diff --git a/src/main/java/org/bukkit/event/inventory/InventoryType.java b/src/main/java/org/bukkit/event/inventory/InventoryType.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/event/inventory/InventoryType.java
++++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java
+@@ -0,0 +0,0 @@ public enum InventoryType {
+ /**
+ * A crafter inventory, with 9 CRAFTING slots.
+ */
+- @ApiStatus.Experimental
+ CRAFTER(9, "Crafter"),
+ /**
+ * The new smithing inventory, with 3 CRAFTING slots and 1 RESULT slot.
+diff --git a/src/main/java/org/bukkit/inventory/CrafterInventory.java b/src/main/java/org/bukkit/inventory/CrafterInventory.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/inventory/CrafterInventory.java
++++ b/src/main/java/org/bukkit/inventory/CrafterInventory.java
+@@ -0,0 +0,0 @@ import org.jetbrains.annotations.ApiStatus;
+ /**
+ * Interface to the inventory of a Crafter.
+ */
+-@ApiStatus.Experimental
+ public interface CrafterInventory extends Inventory { }
diff --git a/src/main/java/org/bukkit/inventory/meta/BundleMeta.java b/src/main/java/org/bukkit/inventory/meta/BundleMeta.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/inventory/meta/BundleMeta.java
@@ -107,6 +233,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
JUNGLE_TEMPLE(32, "jungle_temple"),
+ @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.TRADE_REBALANCE) // Paper - add missing annotation
++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
SWAMP_HUT(33, "swamp_hut"),
TRIAL_CHAMBERS(34, "trial_chambers")
;
diff --git a/patches/api/Introduce-registry-entry-and-builders.patch b/patches/api/Introduce-registry-entry-and-builders.patch
index 85e5b1400b..cc6749ac03 100644
--- a/patches/api/Introduce-registry-entry-and-builders.patch
+++ b/patches/api/Introduce-registry-entry-and-builders.patch
@@ -74,11 +74,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ * Provides the registry key set referencing the item types this enchantment can be applied to when
+ * enchanting in an enchantment table.
+ *
-+ * If this value is null, {@link #supportedItems()} will be sourced instead in the context of an enchantment table.
++ * If this value is {@code null}, {@link #supportedItems()} will be sourced instead in the context of an enchantment table.
+ * Additionally, the tag {@link io.papermc.paper.registry.keys.tags.EnchantmentTagKeys#IN_ENCHANTING_TABLE} defines
+ * which enchantments can even show up in an enchantment table.
+ *
-+ * @return the tag key.
++ * @return the registry key set.
+ */
+ @Nullable RegistryKeySet primaryItems();
+
@@ -127,7 +127,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ * information.
+ *
+ *
-+ * @return The anvil cost of this enchantment
++ * @return the anvil cost of this enchantment
+ */
+ @Range(from = 0, to = Integer.MAX_VALUE) int anvilCost();
+
@@ -189,7 +189,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ * {@link io.papermc.paper.registry.keys.tags.ItemTypeTagKeys#ENCHANTABLE_ARMOR} and
+ * {@link io.papermc.paper.registry.keys.tags.ItemTypeTagKeys#ENCHANTABLE_SWORD}.
+ *
-+ * @param supportedItems the tag key representing the supported items.
++ * @param supportedItems the registry key set representing the supported items.
+ * @return this builder.
+ * @see RegistrySet#keySet(RegistryKey, TypedKey[])
+ * @see io.papermc.paper.registry.event.RegistryFreezeEvent#getOrCreateTag(TagKey)
@@ -210,7 +210,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ * Additionally, the tag {@link io.papermc.paper.registry.keys.tags.EnchantmentTagKeys#IN_ENCHANTING_TABLE} defines
+ * which enchantments can even show up in an enchantment table.
+ *
-+ * @param primaryItems the tag key representing the primary items.
++ * @param primaryItems the registry key set representing the primary items.
+ * @return this builder.
+ * @see RegistrySet#keySet(RegistryKey, TypedKey[])
+ * @see io.papermc.paper.registry.event.RegistryFreezeEvent#getOrCreateTag(TagKey)
@@ -270,7 +270,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ * See https://minecraft.wiki/w/Anvil_mechanics for more information.
+ *
+ *
-+ * @param anvilCost The anvil cost of this enchantment
++ * @param anvilCost the anvil cost of this enchantment
+ * @return this builder.
+ * @see Enchantment#getAnvilCost()
+ */