From d4a957849c05a5cfcc3d85a2a25adb5ddbfe1181 Mon Sep 17 00:00:00 2001
From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
Date: Thu, 30 Jan 2025 20:02:14 +0100
Subject: [PATCH] Experimental annotation changes (#12028)

---
 .editorconfig                                 | 24 +++++++++----------
 CONTRIBUTING.md                               |  3 ++-
 .../src/main/java/org/bukkit/Registry.java    |  1 -
 .../main/java/org/bukkit/block/Crafter.java   |  3 ---
 .../java/org/bukkit/block/CreakingHeart.java  |  3 ---
 .../java/org/bukkit/block/TrialSpawner.java   |  1 -
 .../src/main/java/org/bukkit/block/Vault.java |  2 --
 .../bukkit/block/data/type/CreakingHeart.java |  2 --
 .../bukkit/block/data/type/HangingMoss.java   |  2 --
 .../bukkit/block/data/type/MossyCarpet.java   |  2 --
 .../org/bukkit/entity/AbstractWindCharge.java |  2 --
 .../main/java/org/bukkit/entity/Bogged.java   |  2 --
 .../main/java/org/bukkit/entity/Breeze.java   |  2 --
 .../org/bukkit/entity/BreezeWindCharge.java   |  2 --
 .../main/java/org/bukkit/entity/Creaking.java |  3 ---
 .../org/bukkit/entity/OminousItemSpawner.java |  1 -
 .../java/org/bukkit/entity/WindCharge.java    |  2 --
 .../org/bukkit/entity/boat/PaleOakBoat.java   |  4 +---
 .../bukkit/entity/boat/PaleOakChestBoat.java  |  4 +---
 .../bukkit/inventory/CrafterInventory.java    |  2 --
 .../org/bukkit/inventory/meta/BundleMeta.java |  2 --
 .../server/players/PlayerList.java.patch      |  2 +-
 .../world/level/block/CocoaBlock.java.patch   |  2 +-
 .../data/PaperEnchantmentRegistryEntry.java   |  3 ---
 .../craftbukkit/util/CraftMagicNumbers.java   |  2 +-
 25 files changed, 19 insertions(+), 59 deletions(-)

diff --git a/.editorconfig b/.editorconfig
index 65898b5181..76c44f0655 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,32 +1,32 @@
 [*]
-charset=utf-8
-end_of_line=lf
-insert_final_newline=true
-indent_style=space
-indent_size=4
+charset = utf-8
+end_of_line = lf
+insert_final_newline = true
+indent_style = space
+indent_size = 4
 ij_any_block_comment_add_space = false
 ij_any_block_comment_at_first_column = false
 ij_any_line_comment_at_first_column = false
 ij_any_line_comment_add_space = true
 
 [*.tiny]
-indent_style=tab
+indent_style = tab
 
 [*.bat]
-end_of_line=crlf
+end_of_line = crlf
 
 [*.yml]
-indent_size=2
+indent_size = 2
 
 [*.patch]
-trim_trailing_whitespace=false
+trim_trailing_whitespace = false
 
 [*.java]
 ij_continuation_indent_size = 4
 ij_java_class_count_to_use_import_on_demand = 999999
 ij_java_insert_inner_class_imports = false
 ij_java_names_count_to_use_import_on_demand = 999999
-ij_java_imports_layout = *,|,$*
+ij_java_imports_layout = *, |, $*
 ij_java_generate_final_locals = true
 ij_java_generate_final_parameters = true
 ij_java_method_parameters_new_line_after_left_paren = true
@@ -40,5 +40,5 @@ ij_java_use_fq_class_names = true
 [paper-server/src/minecraft/resources/data/**/*.json]
 indent_size = 2
 
-[paper-api-generator/generated/**/*.java]
-ij_java_imports_layout = $*,|,*
+[paper-api/src/generated/java/**/*.java]
+ij_java_imports_layout = $*, |, *
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c4c275a7f5..7805b0fbaa 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -208,7 +208,8 @@ required.
   with `// Paper end - <COMMIT DESCRIPTION>`.
 - One-line changes should have `// Paper - <COMMIT DESCRIPTION>` at the end of the line.
 
-> [!NOTE] These comments are incredibly important to be able to keep track of changes
+> [!NOTE]
+> These comments are incredibly important to be able to keep track of changes
 > across files and to remember what they are for, even a decade into the future.
 
 Here's an example of how to mark changes by Paper:
diff --git a/paper-api/src/main/java/org/bukkit/Registry.java b/paper-api/src/main/java/org/bukkit/Registry.java
index 50eea29671..8f96e193ca 100644
--- a/paper-api/src/main/java/org/bukkit/Registry.java
+++ b/paper-api/src/main/java/org/bukkit/Registry.java
@@ -271,7 +271,6 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
      * @see JukeboxSong
      * @deprecated use {@link RegistryAccess#getRegistry(RegistryKey)} with {@link RegistryKey#JUKEBOX_SONG}
      */
-    @ApiStatus.Experimental
     @Deprecated(since = "1.21")
     Registry<JukeboxSong> JUKEBOX_SONG = legacyRegistryFor(JukeboxSong.class);
     /**
diff --git a/paper-api/src/main/java/org/bukkit/block/Crafter.java b/paper-api/src/main/java/org/bukkit/block/Crafter.java
index f737a2aae3..42244aa28c 100644
--- a/paper-api/src/main/java/org/bukkit/block/Crafter.java
+++ b/paper-api/src/main/java/org/bukkit/block/Crafter.java
@@ -1,8 +1,5 @@
 package org.bukkit.block;
 
-import org.bukkit.loot.Lootable;
-import org.jetbrains.annotations.ApiStatus;
-
 /**
  * Represents a captured state of a crafter.
  */
diff --git a/paper-api/src/main/java/org/bukkit/block/CreakingHeart.java b/paper-api/src/main/java/org/bukkit/block/CreakingHeart.java
index 0b60d38f7e..f7648e5b22 100644
--- a/paper-api/src/main/java/org/bukkit/block/CreakingHeart.java
+++ b/paper-api/src/main/java/org/bukkit/block/CreakingHeart.java
@@ -1,10 +1,7 @@
 package org.bukkit.block;
 
-import org.jetbrains.annotations.ApiStatus;
-
 /**
  * Represents a captured state of a creaking heart.
  */
-@ApiStatus.Experimental
 public interface CreakingHeart extends TileState {
 }
diff --git a/paper-api/src/main/java/org/bukkit/block/TrialSpawner.java b/paper-api/src/main/java/org/bukkit/block/TrialSpawner.java
index 6fc7b5fe11..6c1e3b5f3d 100644
--- a/paper-api/src/main/java/org/bukkit/block/TrialSpawner.java
+++ b/paper-api/src/main/java/org/bukkit/block/TrialSpawner.java
@@ -4,7 +4,6 @@ import java.util.Collection;
 import org.bukkit.entity.Entity;
 import org.bukkit.entity.Player;
 import org.bukkit.spawner.TrialSpawnerConfiguration;
-import org.jetbrains.annotations.ApiStatus;
 import org.jetbrains.annotations.NotNull;
 
 /**
diff --git a/paper-api/src/main/java/org/bukkit/block/Vault.java b/paper-api/src/main/java/org/bukkit/block/Vault.java
index 375f41fe4a..64c7b432c3 100644
--- a/paper-api/src/main/java/org/bukkit/block/Vault.java
+++ b/paper-api/src/main/java/org/bukkit/block/Vault.java
@@ -1,7 +1,5 @@
 package org.bukkit.block;
 
-import org.jetbrains.annotations.ApiStatus;
-
 /**
  * Represents a captured state of a trial spawner.
  */
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/CreakingHeart.java b/paper-api/src/main/java/org/bukkit/block/data/type/CreakingHeart.java
index aadd902f37..42302837f7 100644
--- a/paper-api/src/main/java/org/bukkit/block/data/type/CreakingHeart.java
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/CreakingHeart.java
@@ -1,14 +1,12 @@
 package org.bukkit.block.data.type;
 
 import org.bukkit.block.data.Orientable;
-import org.jetbrains.annotations.ApiStatus;
 
 /**
  * 'active' is whether the block is active.
  * <br>
  * 'natural' is whether this is a naturally generated block.
  */
-@ApiStatus.Experimental
 public interface CreakingHeart extends Orientable {
 
     /**
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/HangingMoss.java b/paper-api/src/main/java/org/bukkit/block/data/type/HangingMoss.java
index a7f2954091..08ecd62cc8 100644
--- a/paper-api/src/main/java/org/bukkit/block/data/type/HangingMoss.java
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/HangingMoss.java
@@ -1,12 +1,10 @@
 package org.bukkit.block.data.type;
 
 import org.bukkit.block.data.BlockData;
-import org.jetbrains.annotations.ApiStatus;
 
 /**
  * 'tip' indicates whether this block is a tip.
  */
-@ApiStatus.Experimental
 public interface HangingMoss extends BlockData {
 
     /**
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java b/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java
index dd8264faa6..1c904b440c 100644
--- a/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java
@@ -2,7 +2,6 @@ package org.bukkit.block.data.type;
 
 import org.bukkit.block.BlockFace;
 import org.bukkit.block.data.BlockData;
-import org.jetbrains.annotations.ApiStatus;
 import org.jetbrains.annotations.NotNull;
 
 /**
@@ -11,7 +10,6 @@ import org.jetbrains.annotations.NotNull;
  *
  * 'bottom' denotes whether this is a bottom block.
  */
-@ApiStatus.Experimental
 public interface MossyCarpet extends BlockData {
 
     /**
diff --git a/paper-api/src/main/java/org/bukkit/entity/AbstractWindCharge.java b/paper-api/src/main/java/org/bukkit/entity/AbstractWindCharge.java
index ecff691c3a..ee8017139e 100644
--- a/paper-api/src/main/java/org/bukkit/entity/AbstractWindCharge.java
+++ b/paper-api/src/main/java/org/bukkit/entity/AbstractWindCharge.java
@@ -1,7 +1,5 @@
 package org.bukkit.entity;
 
-import org.jetbrains.annotations.ApiStatus;
-
 /**
  * Represents a Wind Charge.
  */
diff --git a/paper-api/src/main/java/org/bukkit/entity/Bogged.java b/paper-api/src/main/java/org/bukkit/entity/Bogged.java
index c84ddf808e..e6e10ad15c 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Bogged.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Bogged.java
@@ -1,7 +1,5 @@
 package org.bukkit.entity;
 
-import org.jetbrains.annotations.ApiStatus;
-
 /**
  * Represents a Bogged Skeleton.
  */
diff --git a/paper-api/src/main/java/org/bukkit/entity/Breeze.java b/paper-api/src/main/java/org/bukkit/entity/Breeze.java
index 254bc6e189..6b41c9258e 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Breeze.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Breeze.java
@@ -1,7 +1,5 @@
 package org.bukkit.entity;
 
-import org.jetbrains.annotations.ApiStatus;
-
 /**
  * Represents a Breeze. Whoosh!
  */
diff --git a/paper-api/src/main/java/org/bukkit/entity/BreezeWindCharge.java b/paper-api/src/main/java/org/bukkit/entity/BreezeWindCharge.java
index 748e58eb93..c37ee7cb2f 100644
--- a/paper-api/src/main/java/org/bukkit/entity/BreezeWindCharge.java
+++ b/paper-api/src/main/java/org/bukkit/entity/BreezeWindCharge.java
@@ -1,7 +1,5 @@
 package org.bukkit.entity;
 
-import org.jetbrains.annotations.ApiStatus;
-
 /**
  * Represents a Wind Charge.
  */
diff --git a/paper-api/src/main/java/org/bukkit/entity/Creaking.java b/paper-api/src/main/java/org/bukkit/entity/Creaking.java
index 6a7c952b61..2e85cc40e0 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Creaking.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Creaking.java
@@ -1,11 +1,8 @@
 package org.bukkit.entity;
 
-import org.jetbrains.annotations.ApiStatus;
-
 /**
  * Represents a Creaking.
  */
-@ApiStatus.Experimental
 public interface Creaking extends Monster {
 
 }
diff --git a/paper-api/src/main/java/org/bukkit/entity/OminousItemSpawner.java b/paper-api/src/main/java/org/bukkit/entity/OminousItemSpawner.java
index dbd4da4c63..1718277f55 100644
--- a/paper-api/src/main/java/org/bukkit/entity/OminousItemSpawner.java
+++ b/paper-api/src/main/java/org/bukkit/entity/OminousItemSpawner.java
@@ -1,7 +1,6 @@
 package org.bukkit.entity;
 
 import org.bukkit.inventory.ItemStack;
-import org.jetbrains.annotations.ApiStatus;
 import org.jetbrains.annotations.Nullable;
 
 /**
diff --git a/paper-api/src/main/java/org/bukkit/entity/WindCharge.java b/paper-api/src/main/java/org/bukkit/entity/WindCharge.java
index beb6242649..3baf72629d 100644
--- a/paper-api/src/main/java/org/bukkit/entity/WindCharge.java
+++ b/paper-api/src/main/java/org/bukkit/entity/WindCharge.java
@@ -1,7 +1,5 @@
 package org.bukkit.entity;
 
-import org.jetbrains.annotations.ApiStatus;
-
 /**
  * Represents a Wind Charge.
  */
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakBoat.java
index 604d46bb40..8b927c0112 100644
--- a/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakBoat.java
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakBoat.java
@@ -1,11 +1,9 @@
 package org.bukkit.entity.boat;
 
 import org.bukkit.entity.Boat;
-import org.jetbrains.annotations.ApiStatus;
 
 /**
- * Represents an pale oak boat.
+ * Represents a pale oak boat.
  */
-@ApiStatus.Experimental
 public interface PaleOakBoat extends Boat {
 }
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakChestBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakChestBoat.java
index ebb5ae22e3..97341eb017 100644
--- a/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakChestBoat.java
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakChestBoat.java
@@ -1,11 +1,9 @@
 package org.bukkit.entity.boat;
 
 import org.bukkit.entity.ChestBoat;
-import org.jetbrains.annotations.ApiStatus;
 
 /**
- * Represents an pale oak chest boat.
+ * Represents a pale oak chest boat.
  */
-@ApiStatus.Experimental
 public interface PaleOakChestBoat extends ChestBoat {
 }
diff --git a/paper-api/src/main/java/org/bukkit/inventory/CrafterInventory.java b/paper-api/src/main/java/org/bukkit/inventory/CrafterInventory.java
index 49d0a37bbe..0ce539fe97 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/CrafterInventory.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/CrafterInventory.java
@@ -1,7 +1,5 @@
 package org.bukkit.inventory;
 
-import org.jetbrains.annotations.ApiStatus;
-
 /**
  * Interface to the inventory of a Crafter.
  */
diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java b/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java
index e404cd1e2b..95bfdaa9eb 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java
@@ -2,11 +2,9 @@ package org.bukkit.inventory.meta;
 
 import java.util.List;
 import org.bukkit.inventory.ItemStack;
-import org.jetbrains.annotations.ApiStatus;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-@ApiStatus.Experimental
 public interface BundleMeta extends ItemMeta {
 
     /**
diff --git a/paper-server/patches/sources/net/minecraft/server/players/PlayerList.java.patch b/paper-server/patches/sources/net/minecraft/server/players/PlayerList.java.patch
index e9cb8b46e9..9acc6fa13d 100644
--- a/paper-server/patches/sources/net/minecraft/server/players/PlayerList.java.patch
+++ b/paper-server/patches/sources/net/minecraft/server/players/PlayerList.java.patch
@@ -938,7 +938,7 @@
 -        player.resetSentInfo();
 +        // entityplayer.resetSentInfo();
 +        player.getBukkitEntity().updateScaledHealth(); // CraftBukkit - Update scaled health on respawn and worldchange
-+        player.refreshEntityData(player); // CraftBukkkit - SPIGOT-7218: sync metadata
++        player.refreshEntityData(player); // CraftBukkit - SPIGOT-7218: sync metadata
          player.connection.send(new ClientboundSetHeldSlotPacket(player.getInventory().selected));
 +        // CraftBukkit start - from GameRules
 +        int i = player.serverLevel().getGameRules().getBoolean(GameRules.RULE_REDUCEDDEBUGINFO) ? 22 : 23;
diff --git a/paper-server/patches/sources/net/minecraft/world/level/block/CocoaBlock.java.patch b/paper-server/patches/sources/net/minecraft/world/level/block/CocoaBlock.java.patch
index 1b46405a40..1ba2e5608c 100644
--- a/paper-server/patches/sources/net/minecraft/world/level/block/CocoaBlock.java.patch
+++ b/paper-server/patches/sources/net/minecraft/world/level/block/CocoaBlock.java.patch
@@ -9,7 +9,7 @@
              int ageValue = state.getValue(AGE);
              if (ageValue < 2) {
 -                level.setBlock(pos, state.setValue(AGE, Integer.valueOf(ageValue + 1)), 2);
-+                org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockGrowEvent(level, pos, state.setValue(CocoaBlock.AGE, ageValue + 1), 2); // CraftBukkkit
++                org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockGrowEvent(level, pos, state.setValue(CocoaBlock.AGE, ageValue + 1), 2); // CraftBukkit
              }
          }
      }
diff --git a/paper-server/src/main/java/io/papermc/paper/registry/data/PaperEnchantmentRegistryEntry.java b/paper-server/src/main/java/io/papermc/paper/registry/data/PaperEnchantmentRegistryEntry.java
index 0191aa22a3..0c67c2d550 100644
--- a/paper-server/src/main/java/io/papermc/paper/registry/data/PaperEnchantmentRegistryEntry.java
+++ b/paper-server/src/main/java/io/papermc/paper/registry/data/PaperEnchantmentRegistryEntry.java
@@ -1,11 +1,9 @@
 package io.papermc.paper.registry.data;
 
-import com.google.common.base.Preconditions;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import io.papermc.paper.registry.PaperRegistryBuilder;
 import io.papermc.paper.registry.RegistryKey;
-import io.papermc.paper.registry.TypedKey;
 import io.papermc.paper.registry.data.util.Checks;
 import io.papermc.paper.registry.data.util.Conversions;
 import io.papermc.paper.registry.set.PaperRegistrySets;
@@ -189,7 +187,6 @@ public class PaperEnchantmentRegistryEntry implements EnchantmentRegistryEntry {
 
         @Override
         public Builder anvilCost(final @Range(from = 0, to = Integer.MAX_VALUE) int anvilCost) {
-            Preconditions.checkArgument(anvilCost >= 0, "anvilCost must be non-negative");
             this.anvilCost = OptionalInt.of(asArgumentMin(anvilCost, "anvilCost", 0));
             return this;
         }
diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/paper-server/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index bd8005cd3a..a2e9f8fbc3 100644
--- a/paper-server/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/paper-server/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -590,7 +590,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
                     e.getStringUUID()
                 );
             } else {
-                // Ensure player flag is not needed
+                // Ensure misc flag is not needed
                 Preconditions.checkArgument(
                     nmsEntity.getType().canSerialize() || allowMiscSerialization,
                     "Cannot serialize misc non-saveable entity %s(%s) without the MISC flag",