From 14a8204d3544293cb46a008c96aea834bd28da00 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sat, 8 Apr 2023 17:00:50 -0700 Subject: [PATCH] Updated Upstream (Bukkit/CraftBukkit/Spigot) (#9104) Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: eb4b416d PR-822: Add experimental armor trim API 33498e1d PR-831: Add a standard of annotations for Minecraft experimental things and API CraftBukkit Changes: 19de3550d SPIGOT-7315: Bed placement duplicates crops if cancelled 1eb88374e PR-1147: Add experimental armor trim API c4c0bb0e9 Show clean error for invalidly configured server.properties options 3ae90697f Fix UUID not being updated when changing world of MapView e43000601 PR-1164, MC-227255, MC-253819: Fix rotation of beehives and bells Spigot Changes: d2fdfe39 Rebuild patches --- ...lly-mark-mc-experimental-API-as-such.patch | 314 ++++ patches/api/Adventure.patch | 1 + patches/api/Build-system-changes.patch | 2 +- patches/api/Convert-project-to-Gradle.patch | 8 + .../api/Fix-Spigot-annotation-mistakes.patch | 71 +- patches/api/Fix-upstream-javadocs.patch | 4 +- .../api/Mark-experimental-api-as-such.patch | 1292 ----------------- ...Replace-ItemFlag.HIDE_POTION_EFFECTS.patch | 4 +- patches/api/fix-Instruments.patch | 23 +- .../server/Add-StructuresLocateEvent.patch | 2 +- .../Properly-cancel-bed-block-placement.patch | 19 - .../TODO-Registry-Modification-API.patch | 4 +- work/Bukkit | 2 +- work/CraftBukkit | 2 +- work/Spigot | 2 +- 15 files changed, 350 insertions(+), 1400 deletions(-) create mode 100644 patches/api/Actually-mark-mc-experimental-API-as-such.patch delete mode 100644 patches/api/Mark-experimental-api-as-such.patch delete mode 100644 patches/server/Properly-cancel-bed-block-placement.patch diff --git a/patches/api/Actually-mark-mc-experimental-API-as-such.patch b/patches/api/Actually-mark-mc-experimental-API-as-such.patch new file mode 100644 index 0000000000..0cf486ad26 --- /dev/null +++ b/patches/api/Actually-mark-mc-experimental-API-as-such.patch @@ -0,0 +1,314 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Thu, 8 Dec 2022 17:31:21 -0800 +Subject: [PATCH] Actually mark mc experimental API as such + +upstream has inconsistent and incomplete +minecraft experimental annotations + +diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/Material.java ++++ b/src/main/java/org/bukkit/Material.java +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla + /** + * BlockData: {@link Orientable} + */ ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + STRIPPED_BAMBOO_BLOCK(14799, Orientable.class), + /** + * BlockData: {@link Orientable} +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla + /** + * BlockData: {@link Fence} + */ ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BAMBOO_FENCE(17207, Fence.class), + /** + * BlockData: {@link Fence} +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla + /** + * BlockData: {@link Switch} + */ ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BAMBOO_BUTTON(21810, Switch.class), + /** + * BlockData: {@link Switch} +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla + /** + * BlockData: {@link Powerable} + */ ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BAMBOO_PRESSURE_PLATE(26740, Powerable.class), + /** + * BlockData: {@link Powerable} +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla + /** + * BlockData: {@link Door} + */ ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BAMBOO_DOOR(19971, Door.class), + /** + * BlockData: {@link Door} +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla + /** + * BlockData: {@link TrapDoor} + */ ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BAMBOO_TRAPDOOR(9174, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla + /** + * BlockData: {@link Gate} + */ ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BAMBOO_FENCE_GATE(14290, Gate.class), + /** + * BlockData: {@link Gate} +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla + DARK_OAK_CHEST_BOAT(8733, 1), + MANGROVE_BOAT(20792, 1), + MANGROVE_CHEST_BOAT(18572, 1), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BAMBOO_RAFT(25901, 1), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BAMBOO_CHEST_RAFT(20056, 1), + /** + * BlockData: {@link StructureBlock} +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla + /** + * BlockData: {@link Sign} + */ ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BAMBOO_SIGN(26139, 16, Sign.class), + /** + * BlockData: {@link Sign} +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla + /** + * BlockData: {@link WallSign} + */ ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BAMBOO_WALL_SIGN(18857, 16, WallSign.class), + /** + * BlockData: {@link WallHangingSign} +diff --git a/src/main/java/org/bukkit/Sound.java b/src/main/java/org/bukkit/Sound.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/Sound.java ++++ b/src/main/java/org/bukkit/Sound.java +@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa + BLOCK_BAMBOO_SAPLING_HIT("block.bamboo_sapling.hit"), + BLOCK_BAMBOO_SAPLING_PLACE("block.bamboo_sapling.place"), + BLOCK_BAMBOO_STEP("block.bamboo.step"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_BREAK("block.bamboo_wood.break"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_BUTTON_CLICK_OFF("block.bamboo_wood_button.click_off"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_BUTTON_CLICK_ON("block.bamboo_wood_button.click_on"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_DOOR_CLOSE("block.bamboo_wood_door.close"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_DOOR_OPEN("block.bamboo_wood_door.open"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_FALL("block.bamboo_wood.fall"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_FENCE_GATE_CLOSE("block.bamboo_wood_fence_gate.close"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_FENCE_GATE_OPEN("block.bamboo_wood_fence_gate.open"), + @MinecraftExperimental + @ApiStatus.Experimental +@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa + @MinecraftExperimental + @ApiStatus.Experimental + BLOCK_BAMBOO_WOOD_HANGING_SIGN_STEP("block.bamboo_wood_hanging_sign.step"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_HIT("block.bamboo_wood.hit"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_PLACE("block.bamboo_wood.place"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_PRESSURE_PLATE_CLICK_OFF("block.bamboo_wood_pressure_plate.click_off"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_PRESSURE_PLATE_CLICK_ON("block.bamboo_wood_pressure_plate.click_on"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_STEP("block.bamboo_wood.step"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_TRAPDOOR_CLOSE("block.bamboo_wood_trapdoor.close"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_BAMBOO_WOOD_TRAPDOOR_OPEN("block.bamboo_wood_trapdoor.open"), + BLOCK_BARREL_CLOSE("block.barrel.close"), + BLOCK_BARREL_OPEN("block.barrel.open"), +@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa + BLOCK_HANGING_ROOTS_HIT("block.hanging_roots.hit"), + BLOCK_HANGING_ROOTS_PLACE("block.hanging_roots.place"), + BLOCK_HANGING_ROOTS_STEP("block.hanging_roots.step"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_HANGING_SIGN_BREAK("block.hanging_sign.break"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_HANGING_SIGN_FALL("block.hanging_sign.fall"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_HANGING_SIGN_HIT("block.hanging_sign.hit"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_HANGING_SIGN_PLACE("block.hanging_sign.place"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_HANGING_SIGN_STEP("block.hanging_sign.step"), + BLOCK_HONEY_BLOCK_BREAK("block.honey_block.break"), + BLOCK_HONEY_BLOCK_FALL("block.honey_block.fall"), +@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa + BLOCK_NOTE_BLOCK_GUITAR("block.note_block.guitar"), + BLOCK_NOTE_BLOCK_HARP("block.note_block.harp"), + BLOCK_NOTE_BLOCK_HAT("block.note_block.hat"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_NOTE_BLOCK_IMITATE_CREEPER("block.note_block.imitate.creeper"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_NOTE_BLOCK_IMITATE_ENDER_DRAGON("block.note_block.imitate.ender_dragon"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_NOTE_BLOCK_IMITATE_PIGLIN("block.note_block.imitate.piglin"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_NOTE_BLOCK_IMITATE_SKELETON("block.note_block.imitate.skeleton"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_NOTE_BLOCK_IMITATE_WITHER_SKELETON("block.note_block.imitate.wither_skeleton"), ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + BLOCK_NOTE_BLOCK_IMITATE_ZOMBIE("block.note_block.imitate.zombie"), + BLOCK_NOTE_BLOCK_IRON_XYLOPHONE("block.note_block.iron_xylophone"), + BLOCK_NOTE_BLOCK_PLING("block.note_block.pling"), +@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa + ENTITY_BOAT_PADDLE_LAND("entity.boat.paddle_land"), + ENTITY_BOAT_PADDLE_WATER("entity.boat.paddle_water"), + @MinecraftExperimental ++ @ApiStatus.Experimental // Paper + ENTITY_CAMEL_AMBIENT("entity.camel.ambient"), + @MinecraftExperimental ++ @ApiStatus.Experimental // Paper + ENTITY_CAMEL_DASH("entity.camel.dash"), + @MinecraftExperimental ++ @ApiStatus.Experimental // Paper + ENTITY_CAMEL_DASH_READY("entity.camel.dash_ready"), + @MinecraftExperimental ++ @ApiStatus.Experimental // Paper + ENTITY_CAMEL_DEATH("entity.camel.death"), + @MinecraftExperimental ++ @ApiStatus.Experimental // Paper + ENTITY_CAMEL_EAT("entity.camel.eat"), + @MinecraftExperimental ++ @ApiStatus.Experimental // Paper + ENTITY_CAMEL_HURT("entity.camel.hurt"), + @MinecraftExperimental ++ @ApiStatus.Experimental // Paper + ENTITY_CAMEL_SADDLE("entity.camel.saddle"), + @MinecraftExperimental ++ @ApiStatus.Experimental // Paper + ENTITY_CAMEL_SIT("entity.camel.sit"), + @MinecraftExperimental ++ @ApiStatus.Experimental // Paper + ENTITY_CAMEL_STAND("entity.camel.stand"), + @MinecraftExperimental ++ @ApiStatus.Experimental // Paper + ENTITY_CAMEL_STEP("entity.camel.step"), + @MinecraftExperimental ++ @ApiStatus.Experimental // Paper + ENTITY_CAMEL_STEP_SAND("entity.camel.step_sand"), + ENTITY_CAT_AMBIENT("entity.cat.ambient"), + ENTITY_CAT_BEG_FOR_FOOD("entity.cat.beg_for_food"), +diff --git a/src/main/java/org/bukkit/Tag.java b/src/main/java/org/bukkit/Tag.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/Tag.java ++++ b/src/main/java/org/bukkit/Tag.java +@@ -0,0 +0,0 @@ public interface Tag extends Keyed { + /** + * Vanilla block tag representing all bamboo blocks. + */ ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + Tag BAMBOO_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bamboo_blocks"), Material.class); + /** + * Vanilla block tag representing all banner blocks. +@@ -0,0 +0,0 @@ public interface Tag extends Keyed { + /** + * Vanilla item tag representing all books that may be placed on bookshelves. + */ ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + Tag ITEMS_BOOKSHELF_BOOKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bookshelf_books"), Material.class); + /** + * Vanilla item tag representing all items that may be placed in beacons. +@@ -0,0 +0,0 @@ public interface Tag extends Keyed { + /** + * Vanilla item tag representing all hanging signs. + */ ++ @MinecraftExperimental // Paper ++ @ApiStatus.Experimental // Paper + Tag ITEMS_HANGING_SIGNS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("hanging_signs"), Material.class); + /** + * Vanilla item tag representing all items which will ignite creepers when +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 { + /** + * Pseudo chiseled bookshelf inventory, with 6 slots of undefined type. + */ ++ @MinecraftExperimental // Paper ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper + CHISELED_BOOKSHELF(6, "Chiseled Bookshelf", false), + /** + * Pseudo jukebox inventory with 1 slot of undefined type. +@@ -0,0 +0,0 @@ public enum InventoryType { + * @apiNote draft, experimental 1.20 API + */ + @MinecraftExperimental ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper + SMITHING_NEW(4, "Upgrade Gear"), + ; + +diff --git a/src/main/java/org/bukkit/inventory/SmithingTransformRecipe.java b/src/main/java/org/bukkit/inventory/SmithingTransformRecipe.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/inventory/SmithingTransformRecipe.java ++++ b/src/main/java/org/bukkit/inventory/SmithingTransformRecipe.java +@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull; + /** + * Represents a smithing transform recipe. + */ ++@org.bukkit.MinecraftExperimental // Paper ++@org.jetbrains.annotations.ApiStatus.Experimental // Paper + public class SmithingTransformRecipe extends SmithingRecipe { + + private final RecipeChoice template; diff --git a/patches/api/Adventure.patch b/patches/api/Adventure.patch index 9562e21cdc..23eadd4235 100644 --- a/patches/api/Adventure.patch +++ b/patches/api/Adventure.patch @@ -64,6 +64,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + "https://jd.advntr.dev/text-serializer-plain/$adventureVersion/", + // Paper end ) + options.tags("apiNote:a:API Note:") + inputs.files(apiAndDocs).ignoreEmptyDirectories().withPropertyName(apiAndDocs.name + "-configuration") + doFirst { diff --git a/patches/api/Build-system-changes.patch b/patches/api/Build-system-changes.patch index c4b2dd9dc6..fa4e7c0466 100644 --- a/patches/api/Build-system-changes.patch +++ b/patches/api/Build-system-changes.patch @@ -45,7 +45,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + "https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/", // Paper - we don't want Java 5 annotations "https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/", ) - + options.tags("apiNote:a:API Note:") @@ -0,0 +0,0 @@ tasks.withType { } } diff --git a/patches/api/Convert-project-to-Gradle.patch b/patches/api/Convert-project-to-Gradle.patch index 7096d7421f..aeebbac825 100644 --- a/patches/api/Convert-project-to-Gradle.patch +++ b/patches/api/Convert-project-to-Gradle.patch @@ -101,6 +101,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + "https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/", + "https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/", + ) ++ options.tags("apiNote:a:API Note:") + + // workaround for https://github.com/gradle/gradle/issues/4046 + inputs.dir("src/main/javadoc").withPropertyName("javadoc-sourceset") @@ -319,6 +320,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 - https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/ - https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/ - +- +- +- apiNote +- a +- API Note: +- +- - - - diff --git a/patches/api/Fix-Spigot-annotation-mistakes.patch b/patches/api/Fix-Spigot-annotation-mistakes.patch index 8e72436f37..9bd0d2bcdb 100644 --- a/patches/api/Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/Fix-Spigot-annotation-mistakes.patch @@ -203,14 +203,14 @@ diff --git a/src/main/java/org/bukkit/UndefinedNullability.java b/src/main/java/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/UndefinedNullability.java +++ b/src/main/java/org/bukkit/UndefinedNullability.java -@@ -0,0 +0,0 @@ import java.lang.annotation.RetentionPolicy; +@@ -0,0 +0,0 @@ import org.jetbrains.annotations.ApiStatus; * suggests a bad API design. */ @Retention(RetentionPolicy.CLASS) +@java.lang.annotation.Documented // Paper + @ApiStatus.Internal @Deprecated public @interface UndefinedNullability { - diff --git a/src/main/java/org/bukkit/Vibration.java b/src/main/java/org/bukkit/Vibration.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/Vibration.java @@ -369,43 +369,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + @Deprecated // Paper public MaterialData getDisplayBlock(); - /** -diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/entity/Player.java -+++ b/src/main/java/org/bukkit/entity/Player.java -@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM - * - * @param plugin Plugin that wants to hide the entity - * @param entity Entity to hide -- * @deprecated draft API - */ -- @Deprecated -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - public void hideEntity(@NotNull Plugin plugin, @NotNull Entity entity); - - /** -@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM - * - * @param plugin Plugin that wants to show the entity - * @param entity Entity to show -- * @deprecated draft API - */ -- @Deprecated -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - public void showEntity(@NotNull Plugin plugin, @NotNull Entity entity); - - /** -@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM - * @param entity Entity to check - * @return True if the provided entity is not being hidden from this - * player -- * @deprecated draft API - */ -- @Deprecated -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - public boolean canSee(@NotNull Entity entity); - /** diff --git a/src/main/java/org/bukkit/entity/Projectile.java b/src/main/java/org/bukkit/entity/Projectile.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 @@ -495,21 +458,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @Override public void setCancelled(boolean cancel) { this.cancel = cancel; -diff --git a/src/main/java/org/bukkit/event/player/PlayerHideEntityEvent.java b/src/main/java/org/bukkit/event/player/PlayerHideEntityEvent.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/event/player/PlayerHideEntityEvent.java -+++ b/src/main/java/org/bukkit/event/player/PlayerHideEntityEvent.java -@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull; - * This event is called regardless of if the entity was within tracking range. - * - * @see Player#hideEntity(org.bukkit.plugin.Plugin, org.bukkit.entity.Entity) -- * @deprecated draft API - */ --@Deprecated -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - @Warning(false) - public class PlayerHideEntityEvent extends PlayerEvent { - diff --git a/src/main/java/org/bukkit/event/player/PlayerMoveEvent.java b/src/main/java/org/bukkit/event/player/PlayerMoveEvent.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/event/player/PlayerMoveEvent.java @@ -523,21 +471,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public Location getTo() { return to; } -diff --git a/src/main/java/org/bukkit/event/player/PlayerShowEntityEvent.java b/src/main/java/org/bukkit/event/player/PlayerShowEntityEvent.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/event/player/PlayerShowEntityEvent.java -+++ b/src/main/java/org/bukkit/event/player/PlayerShowEntityEvent.java -@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull; - * range. - * - * @see Player#showEntity(org.bukkit.plugin.Plugin, org.bukkit.entity.Entity) -- * @deprecated draft API - */ --@Deprecated -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - @Warning(false) - public class PlayerShowEntityEvent extends PlayerEvent { - diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java diff --git a/patches/api/Fix-upstream-javadocs.patch b/patches/api/Fix-upstream-javadocs.patch index 6441f92427..10e40c9125 100644 --- a/patches/api/Fix-upstream-javadocs.patch +++ b/patches/api/Fix-upstream-javadocs.patch @@ -972,8 +972,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 - * Setting to show/hide armor trim from leather armor. + * Setting to show/hide armor trim from armor. */ - HIDE_ARMOR_TRIM; - } + @MinecraftExperimental + @ApiStatus.Experimental diff --git a/src/main/java/org/bukkit/inventory/PlayerInventory.java b/src/main/java/org/bukkit/inventory/PlayerInventory.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/inventory/PlayerInventory.java diff --git a/patches/api/Mark-experimental-api-as-such.patch b/patches/api/Mark-experimental-api-as-such.patch deleted file mode 100644 index 6ff31ed61f..0000000000 --- a/patches/api/Mark-experimental-api-as-such.patch +++ /dev/null @@ -1,1292 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jake Potrebic -Date: Thu, 8 Dec 2022 17:31:21 -0800 -Subject: [PATCH] Mark experimental api as such - - -diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/Material.java -+++ b/src/main/java/org/bukkit/Material.java -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - BIRCH_PLANKS(29322), - JUNGLE_PLANKS(26445), - ACACIA_PLANKS(31312), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_PLANKS(8354), - DARK_OAK_PLANKS(20869), - MANGROVE_PLANKS(7078), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_PLANKS(8520), - CRIMSON_PLANKS(18812), - WARPED_PLANKS(16045), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_MOSAIC(10715), - /** - * BlockData: {@link Sapling} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Sapling} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_SAPLING(25204, Sapling.class), - /** - * BlockData: {@link Sapling} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link SuspiciousSand} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - SUSPICIOUS_SAND(18410, SuspiciousSand.class), - RED_SAND(16279), - GRAVEL(7804), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Orientable} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_LOG(20847, Orientable.class), - /** - * BlockData: {@link Orientable} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Orientable} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_BLOCK(20770, Orientable.class), - /** - * BlockData: {@link Orientable} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Orientable} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - STRIPPED_CHERRY_LOG(18061, Orientable.class), - /** - * BlockData: {@link Orientable} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Orientable} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - STRIPPED_CHERRY_WOOD(19647, Orientable.class), - /** - * BlockData: {@link Orientable} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Orientable} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - STRIPPED_BAMBOO_BLOCK(14799, Orientable.class), - /** - * BlockData: {@link Orientable} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Orientable} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_WOOD(9826, Orientable.class), - /** - * BlockData: {@link Orientable} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Leaves} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_LEAVES(20856, Leaves.class), - /** - * BlockData: {@link Leaves} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - CORNFLOWER(15405), - LILY_OF_THE_VALLEY(7185), - WITHER_ROSE(8619), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - TORCHFLOWER(4501), - SPORE_BLOSSOM(20627), - BROWN_MUSHROOM(9665), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link PinkPetals} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - PINK_PETALS(10420, PinkPetals.class), - MOSS_BLOCK(9175), - /** -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Slab} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_SLAB(16673, Slab.class), - /** - * BlockData: {@link Slab} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Slab} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_SLAB(17798, Slab.class), - /** - * BlockData: {@link Slab} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_MOSAIC_SLAB(22118, Slab.class), - /** - * BlockData: {@link Slab} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link ChiseledBookshelf} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHISELED_BOOKSHELF(8099, ChiseledBookshelf.class), - /** - * BlockData: {@link DecoratedPot} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - DECORATED_POT(8720, 1, DecoratedPot.class), - MOSSY_COBBLESTONE(21900), - OBSIDIAN(32723), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Fence} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_FENCE(32047, Fence.class), - /** - * BlockData: {@link Fence} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Fence} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_FENCE(17207, Fence.class), - /** - * BlockData: {@link Fence} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Stairs} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_STAIRS(18380, Stairs.class), - /** - * BlockData: {@link Stairs} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Stairs} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_STAIRS(25674, Stairs.class), - /** - * BlockData: {@link Stairs} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_MOSAIC_STAIRS(20977, Stairs.class), - /** - * BlockData: {@link Stairs} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Switch} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_BUTTON(9058, Switch.class), - /** - * BlockData: {@link Switch} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Switch} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_BUTTON(21810, Switch.class), - /** - * BlockData: {@link Switch} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Powerable} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_PRESSURE_PLATE(8651, Powerable.class), - /** - * BlockData: {@link Powerable} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Powerable} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_PRESSURE_PLATE(26740, Powerable.class), - /** - * BlockData: {@link Powerable} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Door} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_DOOR(12684, Door.class), - /** - * BlockData: {@link Door} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Door} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_DOOR(19971, Door.class), - /** - * BlockData: {@link Door} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link TrapDoor} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_TRAPDOOR(6293, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link TrapDoor} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_TRAPDOOR(9174, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Gate} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_FENCE_GATE(28222, Gate.class), - /** - * BlockData: {@link Gate} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Gate} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_FENCE_GATE(14290, Gate.class), - /** - * BlockData: {@link Gate} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - JUNGLE_CHEST_BOAT(20133, 1), - ACACIA_BOAT(27326, 1), - ACACIA_CHEST_BOAT(28455, 1), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_BOAT(13628, 1), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_CHEST_BOAT(7165, 1), - DARK_OAK_BOAT(28618, 1), - DARK_OAK_CHEST_BOAT(8733, 1), - MANGROVE_BOAT(20792, 1), - MANGROVE_CHEST_BOAT(18572, 1), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_RAFT(25901, 1), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_CHEST_RAFT(20056, 1), - /** - * BlockData: {@link StructureBlock} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Sign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_SIGN(16520, 16, Sign.class), - /** - * BlockData: {@link Sign} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Sign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_SIGN(26139, 16, Sign.class), - /** - * BlockData: {@link Sign} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link HangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - OAK_HANGING_SIGN(20116, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - SPRUCE_HANGING_SIGN(24371, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BIRCH_HANGING_SIGN(17938, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - JUNGLE_HANGING_SIGN(27671, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ACACIA_HANGING_SIGN(30257, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_HANGING_SIGN(5088, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - DARK_OAK_HANGING_SIGN(23360, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - MANGROVE_HANGING_SIGN(25106, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_HANGING_SIGN(4726, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CRIMSON_HANGING_SIGN(20696, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - WARPED_HANGING_SIGN(8195, 16, HangingSign.class), - BUCKET(15215, 16), - WATER_BUCKET(8802, 1), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - EGG(21603, 16), - COMPASS(24139), - RECOVERY_COMPASS(12710), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BUNDLE(16835, 1), - FISHING_ROD(4167, 1, 64), - CLOCK(14980), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - BEE_SPAWN_EGG(22924), - BLAZE_SPAWN_EGG(4759), - CAT_SPAWN_EGG(29583), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CAMEL_SPAWN_EGG(14760), - CAVE_SPIDER_SPAWN_EGG(23341), - CHICKEN_SPAWN_EGG(5462), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - SKELETON_SPAWN_EGG(15261), - SKELETON_HORSE_SPAWN_EGG(21356), - SLIME_SPAWN_EGG(17196), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - SNIFFER_SPAWN_EGG(27473), - SNOW_GOLEM_SPAWN_EGG(24732), - SPIDER_SPAWN_EGG(14984), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Rotatable} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - PIGLIN_HEAD(5512, Rotatable.class), - NETHER_STAR(12469), - PUMPKIN_PIE(28725), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - END_CRYSTAL(19090), - CHORUS_FRUIT(7652), - POPPED_CHORUS_FRUIT(27844), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - TORCHFLOWER_SEEDS(18153), - BEETROOT(23305), - BEETROOT_SEEDS(21282), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - NAUTILUS_SHELL(19989), - HEART_OF_THE_SEA(11807), - CROSSBOW(4340, 1, 465), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - SUSPICIOUS_STEW(8173, 1), - /** - * BlockData: {@link Directional} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - PEARLESCENT_FROGLIGHT(21441, Orientable.class), - FROGSPAWN(8350), - ECHO_SHARD(12529), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BRUSH(30569, 1, 64), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - NETHERITE_UPGRADE_SMITHING_TEMPLATE(7615), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE(16124), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - DUNE_ARMOR_TRIM_SMITHING_TEMPLATE(30925), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - COAST_ARMOR_TRIM_SMITHING_TEMPLATE(25501), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - WILD_ARMOR_TRIM_SMITHING_TEMPLATE(5870), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - WARD_ARMOR_TRIM_SMITHING_TEMPLATE(24534), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - EYE_ARMOR_TRIM_SMITHING_TEMPLATE(14663), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - VEX_ARMOR_TRIM_SMITHING_TEMPLATE(25818), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - TIDE_ARMOR_TRIM_SMITHING_TEMPLATE(20420), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE(14386), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - RIB_ARMOR_TRIM_SMITHING_TEMPLATE(6010), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE(29143), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - POTTERY_SHARD_ARCHER(26154), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - POTTERY_SHARD_PRIZE(31677), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - POTTERY_SHARD_ARMS_UP(29222), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - POTTERY_SHARD_SKULL(14619), - /** - * BlockData: {@link Levelled} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link WallSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_WALL_SIGN(20188, 16, WallSign.class), - /** - * BlockData: {@link WallSign} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link WallSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_WALL_SIGN(18857, 16, WallSign.class), - /** - * BlockData: {@link WallHangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - OAK_WALL_HANGING_SIGN(15637, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - SPRUCE_WALL_HANGING_SIGN(18833, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BIRCH_WALL_HANGING_SIGN(15937, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ACACIA_WALL_HANGING_SIGN(22477, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_WALL_HANGING_SIGN(10953, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - JUNGLE_WALL_HANGING_SIGN(16691, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - DARK_OAK_WALL_HANGING_SIGN(14296, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - MANGROVE_WALL_HANGING_SIGN(16974, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CRIMSON_WALL_HANGING_SIGN(28982, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - WARPED_WALL_HANGING_SIGN(20605, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO_WALL_HANGING_SIGN(6669, WallHangingSign.class), - /** - * BlockData: {@link RedstoneWallTorch} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - * BlockData: {@link Tripwire} - */ - TRIPWIRE(8810, Tripwire.class), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - POTTED_TORCHFLOWER(21278), - POTTED_OAK_SAPLING(11905), - POTTED_SPRUCE_SAPLING(29498), - POTTED_BIRCH_SAPLING(32484), - POTTED_JUNGLE_SAPLING(7525), - POTTED_ACACIA_SAPLING(14096), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - POTTED_CHERRY_SAPLING(30785), - POTTED_DARK_OAK_SAPLING(6486), - POTTED_MANGROVE_PROPAGULE(22003), -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Directional} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - PIGLIN_WALL_HEAD(4446, Directional.class), - /** - * BlockData: {@link Directional} -@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla - /** - * BlockData: {@link Ageable} - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - TORCHFLOWER_CROP(28460, Ageable.class), - /** - * BlockData: {@link Ageable} -diff --git a/src/main/java/org/bukkit/Particle.java b/src/main/java/org/bukkit/Particle.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/Particle.java -+++ b/src/main/java/org/bukkit/Particle.java -@@ -0,0 +0,0 @@ public enum Particle { - SCULK_CHARGE(Float.class), - SCULK_CHARGE_POP, - SHRIEK(Integer.class), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - DRIPPING_CHERRY_LEAVES, -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - FALLING_CHERRY_LEAVES, -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - LANDING_CHERRY_LEAVES, - /** - * Uses {@link BlockData} as DataType -diff --git a/src/main/java/org/bukkit/Sound.java b/src/main/java/org/bukkit/Sound.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/Sound.java -+++ b/src/main/java/org/bukkit/Sound.java -@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - BLOCK_BAMBOO_SAPLING_HIT("block.bamboo_sapling.hit"), - BLOCK_BAMBOO_SAPLING_PLACE("block.bamboo_sapling.place"), - BLOCK_BAMBOO_STEP("block.bamboo.step"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_BREAK("block.bamboo_wood.break"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_BUTTON_CLICK_OFF("block.bamboo_wood_button.click_off"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_BUTTON_CLICK_ON("block.bamboo_wood_button.click_on"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_DOOR_CLOSE("block.bamboo_wood_door.close"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_DOOR_OPEN("block.bamboo_wood_door.open"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_FALL("block.bamboo_wood.fall"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_FENCE_GATE_CLOSE("block.bamboo_wood_fence_gate.close"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_FENCE_GATE_OPEN("block.bamboo_wood_fence_gate.open"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_HANGING_SIGN_BREAK("block.bamboo_wood_hanging_sign.break"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_HANGING_SIGN_FALL("block.bamboo_wood_hanging_sign.fall"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_HANGING_SIGN_HIT("block.bamboo_wood_hanging_sign.hit"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_HANGING_SIGN_PLACE("block.bamboo_wood_hanging_sign.place"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_HANGING_SIGN_STEP("block.bamboo_wood_hanging_sign.step"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_HIT("block.bamboo_wood.hit"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_PLACE("block.bamboo_wood.place"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_PRESSURE_PLATE_CLICK_OFF("block.bamboo_wood_pressure_plate.click_off"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_PRESSURE_PLATE_CLICK_ON("block.bamboo_wood_pressure_plate.click_on"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_STEP("block.bamboo_wood.step"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_TRAPDOOR_CLOSE("block.bamboo_wood_trapdoor.close"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_BAMBOO_WOOD_TRAPDOOR_OPEN("block.bamboo_wood_trapdoor.open"), - BLOCK_BARREL_CLOSE("block.barrel.close"), - BLOCK_BARREL_OPEN("block.barrel.open"), -@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - BLOCK_CHAIN_HIT("block.chain.hit"), - BLOCK_CHAIN_PLACE("block.chain.place"), - BLOCK_CHAIN_STEP("block.chain.step"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_LEAVES_BREAK("block.cherry_leaves.break"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_LEAVES_FALL("block.cherry_leaves.fall"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_LEAVES_HIT("block.cherry_leaves.hit"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_LEAVES_PLACE("block.cherry_leaves.place"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_LEAVES_STEP("block.cherry_leaves.step"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_SAPLING_BREAK("block.cherry_sapling.break"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_SAPLING_FALL("block.cherry_sapling.fall"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_SAPLING_HIT("block.cherry_sapling.hit"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_SAPLING_PLACE("block.cherry_sapling.place"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_SAPLING_STEP("block.cherry_sapling.step"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_BREAK("block.cherry_wood.break"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_BUTTON_CLICK_OFF("block.cherry_wood_button.click_off"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_BUTTON_CLICK_ON("block.cherry_wood_button.click_on"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_DOOR_CLOSE("block.cherry_wood_door.close"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_DOOR_OPEN("block.cherry_wood_door.open"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_FALL("block.cherry_wood.fall"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_FENCE_GATE_CLOSE("block.cherry_wood_fence_gate.close"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_FENCE_GATE_OPEN("block.cherry_wood_fence_gate.open"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_HANGING_SIGN_BREAK("block.cherry_wood_hanging_sign.break"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_HANGING_SIGN_FALL("block.cherry_wood_hanging_sign.fall"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_HANGING_SIGN_HIT("block.cherry_wood_hanging_sign.hit"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_HANGING_SIGN_PLACE("block.cherry_wood_hanging_sign.place"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_HANGING_SIGN_STEP("block.cherry_wood_hanging_sign.step"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_HIT("block.cherry_wood.hit"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_PLACE("block.cherry_wood.place"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_PRESSURE_PLATE_CLICK_OFF("block.cherry_wood_pressure_plate.click_off"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_PRESSURE_PLATE_CLICK_ON("block.cherry_wood_pressure_plate.click_on"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_STEP("block.cherry_wood.step"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_TRAPDOOR_CLOSE("block.cherry_wood_trapdoor.close"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHERRY_WOOD_TRAPDOOR_OPEN("block.cherry_wood_trapdoor.open"), - BLOCK_CHEST_CLOSE("block.chest.close"), - BLOCK_CHEST_LOCKED("block.chest.locked"), - BLOCK_CHEST_OPEN("block.chest.open"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHISELED_BOOKSHELF_BREAK("block.chiseled_bookshelf.break"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHISELED_BOOKSHELF_FALL("block.chiseled_bookshelf.fall"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHISELED_BOOKSHELF_HIT("block.chiseled_bookshelf.hit"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHISELED_BOOKSHELF_INSERT("block.chiseled_bookshelf.insert"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHISELED_BOOKSHELF_INSERT_ENCHANTED("block.chiseled_bookshelf.insert.enchanted"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHISELED_BOOKSHELF_PICKUP("block.chiseled_bookshelf.pickup"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHISELED_BOOKSHELF_PICKUP_ENCHANTED("block.chiseled_bookshelf.pickup.enchanted"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHISELED_BOOKSHELF_PLACE("block.chiseled_bookshelf.place"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_CHISELED_BOOKSHELF_STEP("block.chiseled_bookshelf.step"), - BLOCK_CHORUS_FLOWER_DEATH("block.chorus_flower.death"), - BLOCK_CHORUS_FLOWER_GROW("block.chorus_flower.grow"), -@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - BLOCK_CORAL_BLOCK_PLACE("block.coral_block.place"), - BLOCK_CORAL_BLOCK_STEP("block.coral_block.step"), - BLOCK_CROP_BREAK("block.crop.break"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_DECORATED_POT_BREAK("block.decorated_pot.break"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_DECORATED_POT_FALL("block.decorated_pot.fall"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_DECORATED_POT_HIT("block.decorated_pot.hit"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_DECORATED_POT_PLACE("block.decorated_pot.place"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_DECORATED_POT_SHATTER("block.decorated_pot.shatter"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_DECORATED_POT_STEP("block.decorated_pot.step"), - BLOCK_DEEPSLATE_BREAK("block.deepslate.break"), - BLOCK_DEEPSLATE_BRICKS_BREAK("block.deepslate_bricks.break"), -@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - BLOCK_HANGING_ROOTS_HIT("block.hanging_roots.hit"), - BLOCK_HANGING_ROOTS_PLACE("block.hanging_roots.place"), - BLOCK_HANGING_ROOTS_STEP("block.hanging_roots.step"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_HANGING_SIGN_BREAK("block.hanging_sign.break"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_HANGING_SIGN_FALL("block.hanging_sign.fall"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_HANGING_SIGN_HIT("block.hanging_sign.hit"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_HANGING_SIGN_PLACE("block.hanging_sign.place"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_HANGING_SIGN_STEP("block.hanging_sign.step"), - BLOCK_HONEY_BLOCK_BREAK("block.honey_block.break"), - BLOCK_HONEY_BLOCK_FALL("block.honey_block.fall"), -@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - BLOCK_NOTE_BLOCK_GUITAR("block.note_block.guitar"), - BLOCK_NOTE_BLOCK_HARP("block.note_block.harp"), - BLOCK_NOTE_BLOCK_HAT("block.note_block.hat"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_NOTE_BLOCK_IMITATE_CREEPER("block.note_block.imitate.creeper"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_NOTE_BLOCK_IMITATE_ENDER_DRAGON("block.note_block.imitate.ender_dragon"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_NOTE_BLOCK_IMITATE_PIGLIN("block.note_block.imitate.piglin"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_NOTE_BLOCK_IMITATE_SKELETON("block.note_block.imitate.skeleton"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_NOTE_BLOCK_IMITATE_WITHER_SKELETON("block.note_block.imitate.wither_skeleton"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_NOTE_BLOCK_IMITATE_ZOMBIE("block.note_block.imitate.zombie"), - BLOCK_NOTE_BLOCK_IRON_XYLOPHONE("block.note_block.iron_xylophone"), - BLOCK_NOTE_BLOCK_PLING("block.note_block.pling"), -@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - BLOCK_PACKED_MUD_HIT("block.packed_mud.hit"), - BLOCK_PACKED_MUD_PLACE("block.packed_mud.place"), - BLOCK_PACKED_MUD_STEP("block.packed_mud.step"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_PINK_PETALS_BREAK("block.pink_petals.break"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_PINK_PETALS_FALL("block.pink_petals.fall"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_PINK_PETALS_HIT("block.pink_petals.hit"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_PINK_PETALS_PLACE("block.pink_petals.place"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_PINK_PETALS_STEP("block.pink_petals.step"), - BLOCK_PISTON_CONTRACT("block.piston.contract"), - BLOCK_PISTON_EXTEND("block.piston.extend"), -@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - BLOCK_STONE_PRESSURE_PLATE_CLICK_OFF("block.stone_pressure_plate.click_off"), - BLOCK_STONE_PRESSURE_PLATE_CLICK_ON("block.stone_pressure_plate.click_on"), - BLOCK_STONE_STEP("block.stone.step"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_SUSPICIOUS_SAND_BREAK("block.suspicious_sand.break"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_SUSPICIOUS_SAND_FALL("block.suspicious_sand.fall"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_SUSPICIOUS_SAND_HIT("block.suspicious_sand.hit"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_SUSPICIOUS_SAND_PLACE("block.suspicious_sand.place"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BLOCK_SUSPICIOUS_SAND_STEP("block.suspicious_sand.step"), - BLOCK_SWEET_BERRY_BUSH_BREAK("block.sweet_berry_bush.break"), - BLOCK_SWEET_BERRY_BUSH_PICK_BERRIES("block.sweet_berry_bush.pick_berries"), -@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - ENTITY_BLAZE_SHOOT("entity.blaze.shoot"), - ENTITY_BOAT_PADDLE_LAND("entity.boat.paddle_land"), - ENTITY_BOAT_PADDLE_WATER("entity.boat.paddle_water"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_CAMEL_AMBIENT("entity.camel.ambient"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_CAMEL_DASH("entity.camel.dash"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_CAMEL_DASH_READY("entity.camel.dash_ready"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_CAMEL_DEATH("entity.camel.death"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_CAMEL_EAT("entity.camel.eat"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_CAMEL_HURT("entity.camel.hurt"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_CAMEL_SADDLE("entity.camel.saddle"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_CAMEL_SIT("entity.camel.sit"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_CAMEL_STAND("entity.camel.stand"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_CAMEL_STEP("entity.camel.step"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_CAMEL_STEP_SAND("entity.camel.step_sand"), - ENTITY_CAT_AMBIENT("entity.cat.ambient"), - ENTITY_CAT_BEG_FOR_FOOD("entity.cat.beg_for_food"), -@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - ENTITY_SLIME_JUMP_SMALL("entity.slime.jump_small"), - ENTITY_SLIME_SQUISH("entity.slime.squish"), - ENTITY_SLIME_SQUISH_SMALL("entity.slime.squish_small"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_SNIFFER_DEATH("entity.sniffer.death"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_SNIFFER_DIGGING("entity.sniffer.digging"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_SNIFFER_DIGGING_STOP("entity.sniffer.digging_stop"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_SNIFFER_DROP_SEED("entity.sniffer.drop_seed"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_SNIFFER_EAT("entity.sniffer.eat"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_SNIFFER_HAPPY("entity.sniffer.happy"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_SNIFFER_HURT("entity.sniffer.hurt"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_SNIFFER_IDLE("entity.sniffer.idle"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_SNIFFER_SCENTING("entity.sniffer.scenting"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_SNIFFER_SEARCHING("entity.sniffer.searching"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_SNIFFER_SNIFFING("entity.sniffer.sniffing"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ENTITY_SNIFFER_STEP("entity.sniffer.step"), - ENTITY_SNOWBALL_THROW("entity.snowball.throw"), - ENTITY_SNOW_GOLEM_AMBIENT("entity.snow_golem.ambient"), -@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - ITEM_BOTTLE_EMPTY("item.bottle.empty"), - ITEM_BOTTLE_FILL("item.bottle.fill"), - ITEM_BOTTLE_FILL_DRAGONBREATH("item.bottle.fill_dragonbreath"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ITEM_BRUSH_BRUSHING("item.brush.brushing"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - ITEM_BRUSH_BRUSH_SAND_COMPLETED("item.brush.brush_sand_completed"), - ITEM_BUCKET_EMPTY("item.bucket.empty"), - ITEM_BUCKET_EMPTY_AXOLOTL("item.bucket.empty_axolotl"), -@@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa - MUSIC_NETHER_NETHER_WASTES("music.nether.nether_wastes"), - MUSIC_NETHER_SOUL_SAND_VALLEY("music.nether.soul_sand_valley"), - MUSIC_NETHER_WARPED_FOREST("music.nether.warped_forest"), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - MUSIC_OVERWORLD_CHERRY_GROVE("music.overworld.cherry_grove"), - MUSIC_OVERWORLD_DEEP_DARK("music.overworld.deep_dark"), - MUSIC_OVERWORLD_DRIPSTONE_CAVES("music.overworld.dripstone_caves"), -diff --git a/src/main/java/org/bukkit/Tag.java b/src/main/java/org/bukkit/Tag.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/Tag.java -+++ b/src/main/java/org/bukkit/Tag.java -@@ -0,0 +0,0 @@ public interface Tag extends Keyed { - /** - * Vanilla block tag representing all cherry log and bark variants. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag CHERRY_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("cherry_logs"), Material.class); - /** - * Vanilla block tag representing all jungle log and bark variants. -@@ -0,0 +0,0 @@ public interface Tag extends Keyed { - /** - * Vanilla block tag representing all bamboo blocks. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag BAMBOO_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bamboo_blocks"), Material.class); - /** - * Vanilla block tag representing all banner blocks. -@@ -0,0 +0,0 @@ public interface Tag extends Keyed { - /** - * Vanilla block tag representing all ceiling signs. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag CEILING_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("ceiling_hanging_signs"), Material.class); - /** - * Vanilla block tag representing all wall hanging signs. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag WALL_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_hanging_signs"), Material.class); - /** - * Vanilla block tag representing all hanging signs. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag ALL_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("all_hanging_signs"), Material.class); - /** - * Vanilla block tag representing all signs, regardless of type. -@@ -0,0 +0,0 @@ public interface Tag extends Keyed { - /** - * Vanilla block tag representing blocks which can be dug by sniffers. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag SNIFFER_DIGGABLE_BLOCK = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sniffer_diggable_block"), Material.class); - /** - * Key for the built in item registry. -@@ -0,0 +0,0 @@ public interface Tag extends Keyed { - /** - * Vanilla item tag representing all books that may be placed on bookshelves. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag ITEMS_BOOKSHELF_BOOKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bookshelf_books"), Material.class); - /** - * Vanilla item tag representing all items that may be placed in beacons. -@@ -0,0 +0,0 @@ public interface Tag extends Keyed { - /** - * Vanilla item tag representing all hanging signs. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag ITEMS_HANGING_SIGNS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("hanging_signs"), Material.class); - /** - * Vanilla item tag representing all items which will ignite creepers when -@@ -0,0 +0,0 @@ public interface Tag extends Keyed { - /** - * Vanilla item tag representing all items which modify note block sounds when placed on top. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag ITEMS_NOTE_BLOCK_TOP_INSTRUMENTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("noteblock_top_instruments"), Material.class); - /** - * Vanilla item tag representing all trimmable armor items. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag ITEMS_TRIMMABLE_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trimmable_armor"), Material.class); - /** - * Vanilla item tag representing all materials which can be used for trimming armor. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag ITEMS_TRIM_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trim_materials"), Material.class); - /** - * Vanilla item tag representing all trimming templates. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag ITEMS_TRIM_TEMPLATES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trim_templates"), Material.class); - /** - * Vanilla item tag representing all food for sniffers. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag ITEMS_SNIFFER_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("sniffer_food"), Material.class); - /** - * Vanilla item tag representing all decorated pot shards. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag ITEMS_DECORATED_POT_SHARDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("decorated_pot_shards"), Material.class); - /** - * Vanilla item tag representing all swords. -@@ -0,0 +0,0 @@ public interface Tag extends Keyed { - /** - * Vanilla item tag representing all item which break decorated pots. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - Tag ITEMS_BREAKS_DECORATED_POTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("breaks_decorated_pots"), Material.class); - /** - * Vanilla item tag representing all items that confer freeze immunity on -diff --git a/src/main/java/org/bukkit/TreeType.java b/src/main/java/org/bukkit/TreeType.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/TreeType.java -+++ b/src/main/java/org/bukkit/TreeType.java -@@ -0,0 +0,0 @@ public enum TreeType { - /** - * Cherry tree - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY, - } -diff --git a/src/main/java/org/bukkit/block/Biome.java b/src/main/java/org/bukkit/block/Biome.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/block/Biome.java -+++ b/src/main/java/org/bukkit/block/Biome.java -@@ -0,0 +0,0 @@ public enum Biome implements Keyed, net.kyori.adventure.translation.Translatable - FROZEN_PEAKS, - JAGGED_PEAKS, - STONY_PEAKS, -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY_GROVE, - /** - * Represents a custom Biome -diff --git a/src/main/java/org/bukkit/block/ChiseledBookshelf.java b/src/main/java/org/bukkit/block/ChiseledBookshelf.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/block/ChiseledBookshelf.java -+++ b/src/main/java/org/bukkit/block/ChiseledBookshelf.java -@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull; - /** - * Represents a captured state of a chiseled bookshelf. - */ -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public interface ChiseledBookshelf extends TileState, BlockInventoryHolder { - - /** -diff --git a/src/main/java/org/bukkit/block/DecoratedPot.java b/src/main/java/org/bukkit/block/DecoratedPot.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/block/DecoratedPot.java -+++ b/src/main/java/org/bukkit/block/DecoratedPot.java -@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable; - /** - * Represents a captured state of a decorated pot. - */ -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public interface DecoratedPot extends TileState { - - /** -diff --git a/src/main/java/org/bukkit/block/HangingSign.java b/src/main/java/org/bukkit/block/HangingSign.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/block/HangingSign.java -+++ b/src/main/java/org/bukkit/block/HangingSign.java -@@ -0,0 +0,0 @@ package org.bukkit.block; - /** - * Represents a captured state of a hanging sign. - */ -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public interface HangingSign extends Sign { - } -diff --git a/src/main/java/org/bukkit/block/Skull.java b/src/main/java/org/bukkit/block/Skull.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/block/Skull.java -+++ b/src/main/java/org/bukkit/block/Skull.java -@@ -0,0 +0,0 @@ public interface Skull extends TileState { - * - * @return the key of the sound, or null - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - @Nullable - public NamespacedKey getNoteBlockSound(); - -@@ -0,0 +0,0 @@ public interface Skull extends TileState { - * - * @param noteBlockSound the key of the sound to be played, or null - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public void setNoteBlockSound(@Nullable NamespacedKey noteBlockSound); - - /** -diff --git a/src/main/java/org/bukkit/block/SuspiciousSand.java b/src/main/java/org/bukkit/block/SuspiciousSand.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/block/SuspiciousSand.java -+++ b/src/main/java/org/bukkit/block/SuspiciousSand.java -@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable; - /** - * Represents a captured state of suspicious sand. - */ -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public interface SuspiciousSand extends Lootable, TileState { - - /** -diff --git a/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java b/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java -+++ b/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java -@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull; - *
- * Block may have 0, 1... {@link #getMaximumOccupiedSlots()}-1 occupied slots. - */ -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public interface ChiseledBookshelf extends Directional { - - /** -diff --git a/src/main/java/org/bukkit/block/data/type/DecoratedPot.java b/src/main/java/org/bukkit/block/data/type/DecoratedPot.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/block/data/type/DecoratedPot.java -+++ b/src/main/java/org/bukkit/block/data/type/DecoratedPot.java -@@ -0,0 +0,0 @@ package org.bukkit.block.data.type; - import org.bukkit.block.data.Directional; - import org.bukkit.block.data.Waterlogged; - -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public interface DecoratedPot extends Directional, Waterlogged { - } -diff --git a/src/main/java/org/bukkit/block/data/type/HangingSign.java b/src/main/java/org/bukkit/block/data/type/HangingSign.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/block/data/type/HangingSign.java -+++ b/src/main/java/org/bukkit/block/data/type/HangingSign.java -@@ -0,0 +0,0 @@ import org.bukkit.block.data.Attachable; - import org.bukkit.block.data.Rotatable; - import org.bukkit.block.data.Waterlogged; - -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public interface HangingSign extends Attachable, Rotatable, Waterlogged { - } -diff --git a/src/main/java/org/bukkit/block/data/type/PinkPetals.java b/src/main/java/org/bukkit/block/data/type/PinkPetals.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/block/data/type/PinkPetals.java -+++ b/src/main/java/org/bukkit/block/data/type/PinkPetals.java -@@ -0,0 +0,0 @@ import org.bukkit.block.data.Directional; - /** - * 'flower_amount' represents the number of petals. - */ -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public interface PinkPetals extends Directional { - - /** -diff --git a/src/main/java/org/bukkit/block/data/type/SuspiciousSand.java b/src/main/java/org/bukkit/block/data/type/SuspiciousSand.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/block/data/type/SuspiciousSand.java -+++ b/src/main/java/org/bukkit/block/data/type/SuspiciousSand.java -@@ -0,0 +0,0 @@ import org.bukkit.block.data.BlockData; - /** - * 'dusted' represents how far uncovered by brush the block is. - */ -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public interface SuspiciousSand extends BlockData { - - /** -diff --git a/src/main/java/org/bukkit/block/data/type/WallHangingSign.java b/src/main/java/org/bukkit/block/data/type/WallHangingSign.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/block/data/type/WallHangingSign.java -+++ b/src/main/java/org/bukkit/block/data/type/WallHangingSign.java -@@ -0,0 +0,0 @@ package org.bukkit.block.data.type; - import org.bukkit.block.data.Directional; - import org.bukkit.block.data.Waterlogged; - -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public interface WallHangingSign extends Directional, Waterlogged { - } -diff --git a/src/main/java/org/bukkit/entity/Boat.java b/src/main/java/org/bukkit/entity/Boat.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/entity/Boat.java -+++ b/src/main/java/org/bukkit/entity/Boat.java -@@ -0,0 +0,0 @@ public interface Boat extends Vehicle { - BIRCH(Material.BIRCH_PLANKS), - JUNGLE(Material.JUNGLE_PLANKS), - ACACIA(Material.ACACIA_PLANKS), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHERRY(Material.CHERRY_PLANKS), - DARK_OAK(Material.DARK_OAK_PLANKS), - MANGROVE(Material.MANGROVE_PLANKS), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - BAMBOO(Material.BAMBOO_PLANKS), - ; - -diff --git a/src/main/java/org/bukkit/entity/Camel.java b/src/main/java/org/bukkit/entity/Camel.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/entity/Camel.java -+++ b/src/main/java/org/bukkit/entity/Camel.java -@@ -0,0 +0,0 @@ package org.bukkit.entity; - /** - * Represents a Camel. - */ -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public interface Camel extends AbstractHorse, Sittable { - - /** -diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org/bukkit/entity/EntityType.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/entity/EntityType.java -+++ b/src/main/java/org/bukkit/entity/EntityType.java -@@ -0,0 +0,0 @@ public enum EntityType implements Keyed, Translatable, net.kyori.adventure.trans - FROG("frog", Frog.class, -1), - TADPOLE("tadpole", Tadpole.class, -1), - WARDEN("warden", Warden.class, -1), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CAMEL("camel", Camel.class, -1), - BLOCK_DISPLAY("block_display", BlockDisplay.class, -1), - INTERACTION("interaction", Interaction.class, -1), - ITEM_DISPLAY("item_display", ItemDisplay.class, -1), -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - SNIFFER("sniffer", Sniffer.class, -1), - TEXT_DISPLAY("text_display", TextDisplay.class, -1), - /** -diff --git a/src/main/java/org/bukkit/entity/Sniffer.java b/src/main/java/org/bukkit/entity/Sniffer.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/entity/Sniffer.java -+++ b/src/main/java/org/bukkit/entity/Sniffer.java -@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable; - * Note: This entity is part of an experimental feature of Minecraft and - * hence subject to change. - */ --@ApiStatus.Experimental -+@ApiStatus.Experimental // Paper - 1.20 - public interface Sniffer extends Animals { - - /** -diff --git a/src/main/java/org/bukkit/entity/memory/MemoryKey.java b/src/main/java/org/bukkit/entity/memory/MemoryKey.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/entity/memory/MemoryKey.java -+++ b/src/main/java/org/bukkit/entity/memory/MemoryKey.java -@@ -0,0 +0,0 @@ public final class MemoryKey implements Keyed { - public static final MemoryKey LIKED_NOTEBLOCK_POSITION = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock"), Location.class); - public static final MemoryKey LIKED_NOTEBLOCK_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock_cooldown_ticks"), Integer.class); - public static final MemoryKey ITEM_PICKUP_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("item_pickup_cooldown_ticks"), Integer.class); -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public static final MemoryKey SNIFFER_EXPLORED_POSITIONS = new MemoryKey<>(NamespacedKey.minecraft("sniffer_explored_positions"), Location.class); - - /** -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 { - /** - * Pseudo chiseled bookshelf inventory, with 6 slots of undefined type. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - CHISELED_BOOKSHELF(6, "Chiseled Bookshelf", false), - /** - * Pseudo jukebox inventory with 1 slot of undefined type. -@@ -0,0 +0,0 @@ public enum InventoryType { - * - * @deprecated draft, experimental 1.20 API - */ -- @Deprecated -+ @Deprecated @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - SMITHING_NEW(4, "Upgrade Gear"), - ; - -diff --git a/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java b/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java -+++ b/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java -@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable; - /** - * Interface to the inventory of a chiseled bookshelf. - */ -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public interface ChiseledBookshelfInventory extends Inventory { - - @Nullable -diff --git a/src/main/java/org/bukkit/inventory/ItemFlag.java b/src/main/java/org/bukkit/inventory/ItemFlag.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/inventory/ItemFlag.java -+++ b/src/main/java/org/bukkit/inventory/ItemFlag.java -@@ -0,0 +0,0 @@ public enum ItemFlag { - /** - * Setting to show/hide armor trim from armor. - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - HIDE_ARMOR_TRIM; - } -diff --git a/src/main/java/org/bukkit/inventory/SmithingTransformRecipe.java b/src/main/java/org/bukkit/inventory/SmithingTransformRecipe.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/inventory/SmithingTransformRecipe.java -+++ b/src/main/java/org/bukkit/inventory/SmithingTransformRecipe.java -@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull; - /** - * Represents a smithing transform recipe. - */ -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public class SmithingTransformRecipe extends SmithingRecipe { - - private final RecipeChoice template; -diff --git a/src/main/java/org/bukkit/inventory/SmithingTrimRecipe.java b/src/main/java/org/bukkit/inventory/SmithingTrimRecipe.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/inventory/SmithingTrimRecipe.java -+++ b/src/main/java/org/bukkit/inventory/SmithingTrimRecipe.java -@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull; - /** - * Represents a smithing trim recipe. - */ -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public class SmithingTrimRecipe extends SmithingRecipe implements ComplexRecipe { - - private final RecipeChoice template; -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 -+++ b/src/main/java/org/bukkit/inventory/meta/BundleMeta.java -@@ -0,0 +0,0 @@ import org.bukkit.inventory.ItemStack; - import org.jetbrains.annotations.NotNull; - import org.jetbrains.annotations.Nullable; - -+@org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - public interface BundleMeta extends ItemMeta { - - /** -diff --git a/src/main/java/org/bukkit/inventory/meta/SkullMeta.java b/src/main/java/org/bukkit/inventory/meta/SkullMeta.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/inventory/meta/SkullMeta.java -+++ b/src/main/java/org/bukkit/inventory/meta/SkullMeta.java -@@ -0,0 +0,0 @@ public interface SkullMeta extends ItemMeta { - * - * @param noteBlockSound the key of the sound to be played, or null - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - void setNoteBlockSound(@Nullable NamespacedKey noteBlockSound); - - /** -@@ -0,0 +0,0 @@ public interface SkullMeta extends ItemMeta { - * - * @return the key of the sound, or null - */ -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 - @Nullable - NamespacedKey getNoteBlockSound(); - diff --git a/patches/api/Replace-ItemFlag.HIDE_POTION_EFFECTS.patch b/patches/api/Replace-ItemFlag.HIDE_POTION_EFFECTS.patch index ba023309e6..bb1e3e813d 100644 --- a/patches/api/Replace-ItemFlag.HIDE_POTION_EFFECTS.patch +++ b/patches/api/Replace-ItemFlag.HIDE_POTION_EFFECTS.patch @@ -19,8 +19,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 /** * Setting to show/hide dyes from colored leather armor. @@ -0,0 +0,0 @@ public enum ItemFlag { - */ - @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 + @MinecraftExperimental + @ApiStatus.Experimental HIDE_ARMOR_TRIM; + // Paper start + /** diff --git a/patches/api/fix-Instruments.patch b/patches/api/fix-Instruments.patch index bc8dc4492f..2799bb3202 100644 --- a/patches/api/fix-Instruments.patch +++ b/patches/api/fix-Instruments.patch @@ -29,47 +29,52 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 */ STICKS(0x3), @@ -0,0 +0,0 @@ public enum Instrument { - /** - * Zombie is normally played when a Zombie Head is on top of the note block. */ + @MinecraftExperimental + @ApiStatus.Experimental - ZOMBIE, -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 + ZOMBIE(0x10), // Paper /** * Skeleton is normally played when a Skeleton Head is on top of the note block. */ + @MinecraftExperimental + @ApiStatus.Experimental - SKELETON, -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 + SKELETON(0x11), // Paper /** * Creeper is normally played when a Creeper Head is on top of the note block. */ + @MinecraftExperimental + @ApiStatus.Experimental - CREEPER, -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 + CREEPER(0x12), // Paper /** * Dragon is normally played when a Dragon Head is on top of the note block. */ + @MinecraftExperimental + @ApiStatus.Experimental - DRAGON, -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 + DRAGON(0x13), // Paper /** * Wither Skeleton is normally played when a Wither Skeleton Head is on top of the note block. */ + @MinecraftExperimental + @ApiStatus.Experimental - WITHER_SKELETON, -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 + WITHER_SKELETON(0x14), // Paper /** * Piglin is normally played when a Piglin Head is on top of the note block. */ + @MinecraftExperimental + @ApiStatus.Experimental - PIGLIN, -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 + PIGLIN(0x15), // Paper /** * Custom Sound is normally played when a Player Head with the required data is on top of the note block. */ + @MinecraftExperimental + @ApiStatus.Experimental - CUSTOM_HEAD; -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - 1.20 + CUSTOM_HEAD(0x16); // Paper private final byte type; diff --git a/patches/server/Add-StructuresLocateEvent.patch b/patches/server/Add-StructuresLocateEvent.patch index bd3e10f101..ef574d9311 100644 --- a/patches/server/Add-StructuresLocateEvent.patch +++ b/patches/server/Add-StructuresLocateEvent.patch @@ -80,7 +80,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java @@ -0,0 +0,0 @@ public class CraftRegistry implements Registry { - return new CraftRegistry<>(BuiltInRegistries.STRUCTURE_TYPE, CraftStructureType::new); + return new CraftRegistry<>(registryHolder.registryOrThrow(Registries.TRIM_PATTERN), CraftTrimPattern::new); } // TODO registry modification API + // Paper start - remove this after a while along with all ConfiguredStructure stuff diff --git a/patches/server/Properly-cancel-bed-block-placement.patch b/patches/server/Properly-cancel-bed-block-placement.patch deleted file mode 100644 index 206515b7e6..0000000000 --- a/patches/server/Properly-cancel-bed-block-placement.patch +++ /dev/null @@ -1,19 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jake Potrebic -Date: Sun, 26 Mar 2023 13:17:41 -0700 -Subject: [PATCH] Properly cancel bed block placement - - -diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/net/minecraft/world/level/block/BedBlock.java -+++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java -@@ -0,0 +0,0 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock - - world.setBlock(blockposition1, (BlockState) state.setValue(BedBlock.PART, BedPart.HEAD), 3); - world.blockUpdated(pos, Blocks.AIR); -- state.updateNeighbourShapes(world, pos, 3); -+ // state.updateNeighbourShapes(world, pos, 3); // Paper - shapes will be updated on successful block place - } - - } diff --git a/patches/server/TODO-Registry-Modification-API.patch b/patches/server/TODO-Registry-Modification-API.patch index a284b1b8c5..f1f9e76fbf 100644 --- a/patches/server/TODO-Registry-Modification-API.patch +++ b/patches/server/TODO-Registry-Modification-API.patch @@ -9,8 +9,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java @@ -0,0 +0,0 @@ public class CraftRegistry implements Registry { - if (bukkitClass == StructureType.class) { - return new CraftRegistry<>(BuiltInRegistries.STRUCTURE_TYPE, CraftStructureType::new); + if (bukkitClass == TrimPattern.class) { + return new CraftRegistry<>(registryHolder.registryOrThrow(Registries.TRIM_PATTERN), CraftTrimPattern::new); } + // TODO registry modification API diff --git a/work/Bukkit b/work/Bukkit index 5efeb7bdbf..eb4b416d2b 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 5efeb7bdbfa459cd0a59aa6a8941ff962662617f +Subproject commit eb4b416d2b270c01dba22a583204e62c4440dd3d diff --git a/work/CraftBukkit b/work/CraftBukkit index be8682aa82..19de3550d8 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit be8682aa824764ebf811107c5eb928ffad6c1af5 +Subproject commit 19de3550d85d736cdf1ae0838fe7891576985e49 diff --git a/work/Spigot b/work/Spigot index b31949f2f3..d2fdfe3915 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit b31949f2f33ef94ed07dbe37fb00939cf049a989 +Subproject commit d2fdfe39154577ac5ee1dac1672eab79a9577dc2