Paper/patches/api/0400-Actually-mark-mc-experimental-API-as-such.patch
Jake Potrebic b5ce6e3dc5
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
2023-04-09 01:00:50 +01:00

315 lines
14 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jake Potrebic <jake.m.potrebic@gmail.com>
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 7ce5ac66e6d598c9ecffc52e5c75d80f644e8895..adb2416887cc3b544ec36c552bdf7105328c24a5 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -471,6 +471,8 @@ 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}
@@ -893,6 +895,8 @@ 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}
@@ -1932,6 +1936,8 @@ 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}
@@ -1994,6 +2000,8 @@ 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}
@@ -2044,6 +2052,8 @@ 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}
@@ -2094,6 +2104,8 @@ 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}
@@ -2140,6 +2152,8 @@ 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}
@@ -2194,7 +2208,11 @@ 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}
@@ -2334,6 +2352,8 @@ 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}
@@ -3151,6 +3171,8 @@ 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 762b0d9ba22a1012ebe5ea77b6aef909fddc0403..55b8d67af1f75207cac36c197150601850a3f28b 100644
--- a/src/main/java/org/bukkit/Sound.java
+++ b/src/main/java/org/bukkit/Sound.java
@@ -77,13 +77,29 @@ 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
@@ -100,12 +116,26 @@ 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"),
@@ -412,10 +442,20 @@ 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"),
@@ -551,11 +591,23 @@ 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"),
@@ -830,26 +882,37 @@ 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 e8206aa4cb574ee629f375a85acf597ae164a1c3..30f9e5e28edd5c267cc1ddef4aa5eac1bdc14a36 100644
--- a/src/main/java/org/bukkit/Tag.java
+++ b/src/main/java/org/bukkit/Tag.java
@@ -149,6 +149,8 @@ public interface Tag<T extends Keyed> extends Keyed {
/**
* Vanilla block tag representing all bamboo blocks.
*/
+ @MinecraftExperimental // Paper
+ @ApiStatus.Experimental // Paper
Tag<Material> BAMBOO_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bamboo_blocks"), Material.class);
/**
* Vanilla block tag representing all banner blocks.
@@ -768,6 +770,8 @@ public interface Tag<T extends Keyed> extends Keyed {
/**
* Vanilla item tag representing all books that may be placed on bookshelves.
*/
+ @MinecraftExperimental // Paper
+ @ApiStatus.Experimental // Paper
Tag<Material> 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.
@@ -788,6 +792,8 @@ public interface Tag<T extends Keyed> extends Keyed {
/**
* Vanilla item tag representing all hanging signs.
*/
+ @MinecraftExperimental // Paper
+ @ApiStatus.Experimental // Paper
Tag<Material> 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 b821fa535b23fe5af5884e536b1708460076ee40..a8e631315f2da68895a258cf0ba9875bc88fc48c 100644
--- a/src/main/java/org/bukkit/event/inventory/InventoryType.java
+++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java
@@ -138,6 +138,8 @@ 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.
@@ -149,6 +151,7 @@ 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 08fd3eca8383cdc2d06c3ce973e8c402d279077e..999e60a4a0f20fe4bbf5d8eefbafe368b80d1c4d 100644
--- a/src/main/java/org/bukkit/inventory/SmithingTransformRecipe.java
+++ b/src/main/java/org/bukkit/inventory/SmithingTransformRecipe.java
@@ -6,6 +6,8 @@ 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;