diff --git a/paper-api/README.md b/paper-api/README.md index 8ae666096f..2f8abbb9db 100644 --- a/paper-api/README.md +++ b/paper-api/README.md @@ -83,6 +83,10 @@ Code Requirements * Do not attempt to fix multiple problems with a single patch or pull request. * Avoid moving or renaming classes. * All non-private methods and constructors must have specified nullability through [annotations](https://github.com/JetBrains/java-annotations) +* All classes/methods/fields related to a [Minecraft Experimental Feature](https://minecraft.fandom.com/wiki/Experimental_Gameplay) must be marked with [`@MinecraftExperimental`](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/MinecraftExperimental.html) +* If necessary, you may consider the use of one of the following [ApiStatus Annotations](https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/org/jetbrains/annotations/ApiStatus.html): + * [`@ApiStatus.Experimental`](https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/org/jetbrains/annotations/ApiStatus.Experimental.html) for API that is subject to change + * [`@ApiStatus.Internal`](https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/org/jetbrains/annotations/ApiStatus.Internal.html) for API that is intended only for internal use in the Bukkit project and will not adhere to Bukkit's API contract Bukkit/CraftBukkit employs [JUnit 4](https://www.vogella.com/tutorials/JUnit4/article.html) for testing. Pull Requests(PR) should attempt to integrate within that framework as appropriate. Bukkit is a large project and what seems simple to a PR author at the time of writing may easily be overlooked by other authors and updates. Including unit tests with your PR @@ -93,4 +97,4 @@ will help to ensure the PR can be easily maintained over time and encourage the * Do not group packages * __Absolutely no wildcard imports outside of tests.__ -Any questions about these requirements can be asked in #help-development in Discord. +Any questions about these requirements can be asked in [#help-development](https://www.spigotmc.org/go/discord) in Discord. diff --git a/paper-api/checkstyle.xml b/paper-api/checkstyle.xml index c658f38f1f..17748ef946 100644 --- a/paper-api/checkstyle.xml +++ b/paper-api/checkstyle.xml @@ -23,6 +23,10 @@ + + + + diff --git a/paper-api/pom.xml b/paper-api/pom.xml index 22daab8b22..11689d08a6 100644 --- a/paper-api/pom.xml +++ b/paper-api/pom.xml @@ -190,6 +190,13 @@ https://javadoc.io/doc/org.yaml/snakeyaml/1.33/ https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/ + + + apiNote + a + API Note: + + diff --git a/paper-api/src/main/java/org/bukkit/Instrument.java b/paper-api/src/main/java/org/bukkit/Instrument.java index de976be713..8f70d86a1d 100644 --- a/paper-api/src/main/java/org/bukkit/Instrument.java +++ b/paper-api/src/main/java/org/bukkit/Instrument.java @@ -2,6 +2,7 @@ package org.bukkit; import com.google.common.collect.Maps; import java.util.Map; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; public enum Instrument { @@ -78,30 +79,44 @@ public enum Instrument { /** * Zombie is normally played when a Zombie Head is on top of the note block. */ + @MinecraftExperimental + @ApiStatus.Experimental ZOMBIE, /** * Skeleton is normally played when a Skeleton Head is on top of the note block. */ + @MinecraftExperimental + @ApiStatus.Experimental SKELETON, /** * Creeper is normally played when a Creeper Head is on top of the note block. */ + @MinecraftExperimental + @ApiStatus.Experimental CREEPER, /** * Dragon is normally played when a Dragon Head is on top of the note block. */ + @MinecraftExperimental + @ApiStatus.Experimental DRAGON, /** * Wither Skeleton is normally played when a Wither Skeleton Head is on top of the note block. */ + @MinecraftExperimental + @ApiStatus.Experimental WITHER_SKELETON, /** * Piglin is normally played when a Piglin Head is on top of the note block. */ + @MinecraftExperimental + @ApiStatus.Experimental PIGLIN, /** * 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; private final byte type; diff --git a/paper-api/src/main/java/org/bukkit/Material.java b/paper-api/src/main/java/org/bukkit/Material.java index d018b7e55b..0d04591db6 100644 --- a/paper-api/src/main/java/org/bukkit/Material.java +++ b/paper-api/src/main/java/org/bukkit/Material.java @@ -109,6 +109,7 @@ import org.bukkit.block.data.type.WallSign; import org.bukkit.inventory.CreativeCategory; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.material.MaterialData; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -154,12 +155,18 @@ public enum Material implements Keyed, Translatable { BIRCH_PLANKS(29322), JUNGLE_PLANKS(26445), ACACIA_PLANKS(31312), + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_PLANKS(8354), DARK_OAK_PLANKS(20869), MANGROVE_PLANKS(7078), + @MinecraftExperimental + @ApiStatus.Experimental BAMBOO_PLANKS(8520), CRIMSON_PLANKS(18812), WARPED_PLANKS(16045), + @MinecraftExperimental + @ApiStatus.Experimental BAMBOO_MOSAIC(10715), /** * BlockData: {@link Sapling} @@ -184,6 +191,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Sapling} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_SAPLING(25204, Sapling.class), /** * BlockData: {@link Sapling} @@ -198,6 +207,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link SuspiciousSand} */ + @MinecraftExperimental + @ApiStatus.Experimental SUSPICIOUS_SAND(18410, SuspiciousSand.class), RED_SAND(16279), GRAVEL(7804), @@ -339,6 +350,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Orientable} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_LOG(20847, Orientable.class), /** * BlockData: {@link Orientable} @@ -367,6 +380,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Orientable} */ + @MinecraftExperimental + @ApiStatus.Experimental BAMBOO_BLOCK(20770, Orientable.class), /** * BlockData: {@link Orientable} @@ -391,6 +406,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Orientable} */ + @MinecraftExperimental + @ApiStatus.Experimental STRIPPED_CHERRY_LOG(18061, Orientable.class), /** * BlockData: {@link Orientable} @@ -431,6 +448,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Orientable} */ + @MinecraftExperimental + @ApiStatus.Experimental STRIPPED_CHERRY_WOOD(19647, Orientable.class), /** * BlockData: {@link Orientable} @@ -475,6 +494,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Orientable} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_WOOD(9826, Orientable.class), /** * BlockData: {@link Orientable} @@ -515,6 +536,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Leaves} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_LEAVES(20856, Leaves.class), /** * BlockData: {@link Leaves} @@ -580,6 +603,8 @@ public enum Material implements Keyed, Translatable { CORNFLOWER(15405), LILY_OF_THE_VALLEY(7185), WITHER_ROSE(8619), + @MinecraftExperimental + @ApiStatus.Experimental TORCHFLOWER(4501), SPORE_BLOSSOM(20627), BROWN_MUSHROOM(9665), @@ -609,6 +634,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link PinkPetals} */ + @MinecraftExperimental + @ApiStatus.Experimental PINK_PETALS(10420, PinkPetals.class), MOSS_BLOCK(9175), /** @@ -650,6 +677,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Slab} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_SLAB(16673, Slab.class), /** * BlockData: {@link Slab} @@ -662,10 +691,14 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Slab} */ + @MinecraftExperimental + @ApiStatus.Experimental BAMBOO_SLAB(17798, Slab.class), /** * BlockData: {@link Slab} */ + @MinecraftExperimental + @ApiStatus.Experimental BAMBOO_MOSAIC_SLAB(22118, Slab.class), /** * BlockData: {@link Slab} @@ -752,10 +785,14 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link ChiseledBookshelf} */ + @MinecraftExperimental + @ApiStatus.Experimental CHISELED_BOOKSHELF(8099, ChiseledBookshelf.class), /** * BlockData: {@link DecoratedPot} */ + @MinecraftExperimental + @ApiStatus.Experimental DECORATED_POT(8720, 1, DecoratedPot.class), MOSSY_COBBLESTONE(21900), OBSIDIAN(32723), @@ -841,6 +878,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Fence} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_FENCE(32047, Fence.class), /** * BlockData: {@link Fence} @@ -1021,6 +1060,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Stairs} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_STAIRS(18380, Stairs.class), /** * BlockData: {@link Stairs} @@ -1033,10 +1074,14 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Stairs} */ + @MinecraftExperimental + @ApiStatus.Experimental BAMBOO_STAIRS(25674, Stairs.class), /** * BlockData: {@link Stairs} */ + @MinecraftExperimental + @ApiStatus.Experimental BAMBOO_MOSAIC_STAIRS(20977, Stairs.class), /** * BlockData: {@link Stairs} @@ -1872,6 +1917,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Switch} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_BUTTON(9058, Switch.class), /** * BlockData: {@link Switch} @@ -1932,6 +1979,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Powerable} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_PRESSURE_PLATE(8651, Powerable.class), /** * BlockData: {@link Powerable} @@ -1980,6 +2029,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Door} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_DOOR(12684, Door.class), /** * BlockData: {@link Door} @@ -2028,6 +2079,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link TrapDoor} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_TRAPDOOR(6293, TrapDoor.class), /** * BlockData: {@link TrapDoor} @@ -2072,6 +2125,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Gate} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_FENCE_GATE(28222, Gate.class), /** * BlockData: {@link Gate} @@ -2128,7 +2183,11 @@ public enum Material implements Keyed, Translatable { JUNGLE_CHEST_BOAT(20133, 1), ACACIA_BOAT(27326, 1), ACACIA_CHEST_BOAT(28455, 1), + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_BOAT(13628, 1), + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_CHEST_BOAT(7165, 1), DARK_OAK_BOAT(28618, 1), DARK_OAK_CHEST_BOAT(8733, 1), @@ -2260,6 +2319,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Sign} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_SIGN(16520, 16, Sign.class), /** * BlockData: {@link Sign} @@ -2284,46 +2345,68 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link HangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental OAK_HANGING_SIGN(20116, 16, HangingSign.class), /** * BlockData: {@link HangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental SPRUCE_HANGING_SIGN(24371, 16, HangingSign.class), /** * BlockData: {@link HangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental BIRCH_HANGING_SIGN(17938, 16, HangingSign.class), /** * BlockData: {@link HangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental JUNGLE_HANGING_SIGN(27671, 16, HangingSign.class), /** * BlockData: {@link HangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental ACACIA_HANGING_SIGN(30257, 16, HangingSign.class), /** * BlockData: {@link HangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_HANGING_SIGN(5088, 16, HangingSign.class), /** * BlockData: {@link HangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental DARK_OAK_HANGING_SIGN(23360, 16, HangingSign.class), /** * BlockData: {@link HangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental MANGROVE_HANGING_SIGN(25106, 16, HangingSign.class), /** * BlockData: {@link HangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental BAMBOO_HANGING_SIGN(4726, 16, HangingSign.class), /** * BlockData: {@link HangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental CRIMSON_HANGING_SIGN(20696, 16, HangingSign.class), /** * BlockData: {@link HangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental WARPED_HANGING_SIGN(8195, 16, HangingSign.class), BUCKET(15215, 16), WATER_BUCKET(8802, 1), @@ -2347,6 +2430,8 @@ public enum Material implements Keyed, Translatable { EGG(21603, 16), COMPASS(24139), RECOVERY_COMPASS(12710), + @MinecraftExperimental + @ApiStatus.Experimental BUNDLE(16835, 1), FISHING_ROD(4167, 1, 64), CLOCK(14980), @@ -2487,6 +2572,8 @@ public enum Material implements Keyed, Translatable { BEE_SPAWN_EGG(22924), BLAZE_SPAWN_EGG(4759), CAT_SPAWN_EGG(29583), + @MinecraftExperimental + @ApiStatus.Experimental CAMEL_SPAWN_EGG(14760), CAVE_SPIDER_SPAWN_EGG(23341), CHICKEN_SPAWN_EGG(5462), @@ -2534,6 +2621,8 @@ public enum Material implements Keyed, Translatable { SKELETON_SPAWN_EGG(15261), SKELETON_HORSE_SPAWN_EGG(21356), SLIME_SPAWN_EGG(17196), + @MinecraftExperimental + @ApiStatus.Experimental SNIFFER_SPAWN_EGG(27473), SNOW_GOLEM_SPAWN_EGG(24732), SPIDER_SPAWN_EGG(14984), @@ -2598,6 +2687,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Rotatable} */ + @MinecraftExperimental + @ApiStatus.Experimental PIGLIN_HEAD(5512, Rotatable.class), NETHER_STAR(12469), PUMPKIN_PIE(28725), @@ -2689,6 +2780,8 @@ public enum Material implements Keyed, Translatable { END_CRYSTAL(19090), CHORUS_FRUIT(7652), POPPED_CHORUS_FRUIT(27844), + @MinecraftExperimental + @ApiStatus.Experimental TORCHFLOWER_SEEDS(18153), BEETROOT(23305), BEETROOT_SEEDS(21282), @@ -2936,22 +3029,56 @@ public enum Material implements Keyed, Translatable { PEARLESCENT_FROGLIGHT(21441, Orientable.class), FROGSPAWN(8350), ECHO_SHARD(12529), + @MinecraftExperimental + @ApiStatus.Experimental BRUSH(30569, 1, 64), + @MinecraftExperimental + @ApiStatus.Experimental NETHERITE_UPGRADE_SMITHING_TEMPLATE(7615), + @MinecraftExperimental + @ApiStatus.Experimental SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE(16124), + @MinecraftExperimental + @ApiStatus.Experimental DUNE_ARMOR_TRIM_SMITHING_TEMPLATE(30925), + @MinecraftExperimental + @ApiStatus.Experimental COAST_ARMOR_TRIM_SMITHING_TEMPLATE(25501), + @MinecraftExperimental + @ApiStatus.Experimental WILD_ARMOR_TRIM_SMITHING_TEMPLATE(5870), + @MinecraftExperimental + @ApiStatus.Experimental WARD_ARMOR_TRIM_SMITHING_TEMPLATE(24534), + @MinecraftExperimental + @ApiStatus.Experimental EYE_ARMOR_TRIM_SMITHING_TEMPLATE(14663), + @MinecraftExperimental + @ApiStatus.Experimental VEX_ARMOR_TRIM_SMITHING_TEMPLATE(25818), + @MinecraftExperimental + @ApiStatus.Experimental TIDE_ARMOR_TRIM_SMITHING_TEMPLATE(20420), + @MinecraftExperimental + @ApiStatus.Experimental SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE(14386), + @MinecraftExperimental + @ApiStatus.Experimental RIB_ARMOR_TRIM_SMITHING_TEMPLATE(6010), + @MinecraftExperimental + @ApiStatus.Experimental SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE(29143), + @MinecraftExperimental + @ApiStatus.Experimental POTTERY_SHARD_ARCHER(26154), + @MinecraftExperimental + @ApiStatus.Experimental POTTERY_SHARD_PRIZE(31677), + @MinecraftExperimental + @ApiStatus.Experimental POTTERY_SHARD_ARMS_UP(29222), + @MinecraftExperimental + @ApiStatus.Experimental POTTERY_SHARD_SKULL(14619), /** * BlockData: {@link Levelled} @@ -3005,6 +3132,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link WallSign} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_WALL_SIGN(20188, 16, WallSign.class), /** * BlockData: {@link WallSign} @@ -3025,46 +3154,68 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link WallHangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental OAK_WALL_HANGING_SIGN(15637, WallHangingSign.class), /** * BlockData: {@link WallHangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental SPRUCE_WALL_HANGING_SIGN(18833, WallHangingSign.class), /** * BlockData: {@link WallHangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental BIRCH_WALL_HANGING_SIGN(15937, WallHangingSign.class), /** * BlockData: {@link WallHangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental ACACIA_WALL_HANGING_SIGN(22477, WallHangingSign.class), /** * BlockData: {@link WallHangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_WALL_HANGING_SIGN(10953, WallHangingSign.class), /** * BlockData: {@link WallHangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental JUNGLE_WALL_HANGING_SIGN(16691, WallHangingSign.class), /** * BlockData: {@link WallHangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental DARK_OAK_WALL_HANGING_SIGN(14296, WallHangingSign.class), /** * BlockData: {@link WallHangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental MANGROVE_WALL_HANGING_SIGN(16974, WallHangingSign.class), /** * BlockData: {@link WallHangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental CRIMSON_WALL_HANGING_SIGN(28982, WallHangingSign.class), /** * BlockData: {@link WallHangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental WARPED_WALL_HANGING_SIGN(20605, WallHangingSign.class), /** * BlockData: {@link WallHangingSign} */ + @MinecraftExperimental + @ApiStatus.Experimental BAMBOO_WALL_HANGING_SIGN(6669, WallHangingSign.class), /** * BlockData: {@link RedstoneWallTorch} @@ -3112,12 +3263,16 @@ public enum Material implements Keyed, Translatable { * BlockData: {@link Tripwire} */ TRIPWIRE(8810, Tripwire.class), + @MinecraftExperimental + @ApiStatus.Experimental POTTED_TORCHFLOWER(21278), POTTED_OAK_SAPLING(11905), POTTED_SPRUCE_SAPLING(29498), POTTED_BIRCH_SAPLING(32484), POTTED_JUNGLE_SAPLING(7525), POTTED_ACACIA_SAPLING(14096), + @MinecraftExperimental + @ApiStatus.Experimental POTTED_CHERRY_SAPLING(30785), POTTED_DARK_OAK_SAPLING(6486), POTTED_MANGROVE_PROPAGULE(22003), @@ -3174,6 +3329,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Directional} */ + @MinecraftExperimental + @ApiStatus.Experimental PIGLIN_WALL_HEAD(4446, Directional.class), /** * BlockData: {@link Directional} @@ -3242,6 +3399,8 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Ageable} */ + @MinecraftExperimental + @ApiStatus.Experimental TORCHFLOWER_CROP(28460, Ageable.class), /** * BlockData: {@link Ageable} diff --git a/paper-api/src/main/java/org/bukkit/MinecraftExperimental.java b/paper-api/src/main/java/org/bukkit/MinecraftExperimental.java new file mode 100644 index 0000000000..4e7e692198 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/MinecraftExperimental.java @@ -0,0 +1,27 @@ +package org.bukkit; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import org.jetbrains.annotations.ApiStatus; + +/** + * Indicates that the annotated element (class, method, field, etc.) is part of a + * minecraft experimental feature + * and is subject to changes by Mojang. + *

+ * Note: Elements marked with this annotation require the use of a datapack or otherwise + * non-standard feature to be enabled on the server. + * + * @see Features Toggles - Minecraft Article + */ +@Documented +@Retention(RetentionPolicy.CLASS) +@Target({ + ElementType.TYPE, ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.PACKAGE +}) +@ApiStatus.Internal +public @interface MinecraftExperimental { +} diff --git a/paper-api/src/main/java/org/bukkit/Particle.java b/paper-api/src/main/java/org/bukkit/Particle.java index 0ca7955003..7336edb91e 100644 --- a/paper-api/src/main/java/org/bukkit/Particle.java +++ b/paper-api/src/main/java/org/bukkit/Particle.java @@ -4,6 +4,7 @@ import com.google.common.base.Preconditions; import org.bukkit.block.data.BlockData; import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; public enum Particle { @@ -123,8 +124,14 @@ public enum Particle { SCULK_CHARGE(Float.class), SCULK_CHARGE_POP, SHRIEK(Integer.class), + @MinecraftExperimental + @ApiStatus.Experimental DRIPPING_CHERRY_LEAVES, + @MinecraftExperimental + @ApiStatus.Experimental FALLING_CHERRY_LEAVES, + @MinecraftExperimental + @ApiStatus.Experimental LANDING_CHERRY_LEAVES, /** * Uses {@link BlockData} as DataType diff --git a/paper-api/src/main/java/org/bukkit/Sound.java b/paper-api/src/main/java/org/bukkit/Sound.java index 5676389bb8..4dda509173 100644 --- a/paper-api/src/main/java/org/bukkit/Sound.java +++ b/paper-api/src/main/java/org/bukkit/Sound.java @@ -1,5 +1,6 @@ package org.bukkit; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -84,10 +85,20 @@ public enum Sound implements Keyed { BLOCK_BAMBOO_WOOD_FALL("block.bamboo_wood.fall"), BLOCK_BAMBOO_WOOD_FENCE_GATE_CLOSE("block.bamboo_wood_fence_gate.close"), BLOCK_BAMBOO_WOOD_FENCE_GATE_OPEN("block.bamboo_wood_fence_gate.open"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_BAMBOO_WOOD_HANGING_SIGN_BREAK("block.bamboo_wood_hanging_sign.break"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_BAMBOO_WOOD_HANGING_SIGN_FALL("block.bamboo_wood_hanging_sign.fall"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_BAMBOO_WOOD_HANGING_SIGN_HIT("block.bamboo_wood_hanging_sign.hit"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_BAMBOO_WOOD_HANGING_SIGN_PLACE("block.bamboo_wood_hanging_sign.place"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_BAMBOO_WOOD_HANGING_SIGN_STEP("block.bamboo_wood_hanging_sign.step"), BLOCK_BAMBOO_WOOD_HIT("block.bamboo_wood.hit"), BLOCK_BAMBOO_WOOD_PLACE("block.bamboo_wood.place"), @@ -158,47 +169,125 @@ public enum Sound implements Keyed { BLOCK_CHAIN_HIT("block.chain.hit"), BLOCK_CHAIN_PLACE("block.chain.place"), BLOCK_CHAIN_STEP("block.chain.step"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_LEAVES_BREAK("block.cherry_leaves.break"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_LEAVES_FALL("block.cherry_leaves.fall"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_LEAVES_HIT("block.cherry_leaves.hit"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_LEAVES_PLACE("block.cherry_leaves.place"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_LEAVES_STEP("block.cherry_leaves.step"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_SAPLING_BREAK("block.cherry_sapling.break"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_SAPLING_FALL("block.cherry_sapling.fall"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_SAPLING_HIT("block.cherry_sapling.hit"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_SAPLING_PLACE("block.cherry_sapling.place"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_SAPLING_STEP("block.cherry_sapling.step"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_BREAK("block.cherry_wood.break"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_BUTTON_CLICK_OFF("block.cherry_wood_button.click_off"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_BUTTON_CLICK_ON("block.cherry_wood_button.click_on"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_DOOR_CLOSE("block.cherry_wood_door.close"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_DOOR_OPEN("block.cherry_wood_door.open"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_FALL("block.cherry_wood.fall"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_FENCE_GATE_CLOSE("block.cherry_wood_fence_gate.close"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_FENCE_GATE_OPEN("block.cherry_wood_fence_gate.open"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_HANGING_SIGN_BREAK("block.cherry_wood_hanging_sign.break"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_HANGING_SIGN_FALL("block.cherry_wood_hanging_sign.fall"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_HANGING_SIGN_HIT("block.cherry_wood_hanging_sign.hit"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_HANGING_SIGN_PLACE("block.cherry_wood_hanging_sign.place"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_HANGING_SIGN_STEP("block.cherry_wood_hanging_sign.step"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_HIT("block.cherry_wood.hit"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_PLACE("block.cherry_wood.place"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_PRESSURE_PLATE_CLICK_OFF("block.cherry_wood_pressure_plate.click_off"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_PRESSURE_PLATE_CLICK_ON("block.cherry_wood_pressure_plate.click_on"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_STEP("block.cherry_wood.step"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHERRY_WOOD_TRAPDOOR_CLOSE("block.cherry_wood_trapdoor.close"), + @MinecraftExperimental + @ApiStatus.Experimental 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"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHISELED_BOOKSHELF_BREAK("block.chiseled_bookshelf.break"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHISELED_BOOKSHELF_FALL("block.chiseled_bookshelf.fall"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHISELED_BOOKSHELF_HIT("block.chiseled_bookshelf.hit"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHISELED_BOOKSHELF_INSERT("block.chiseled_bookshelf.insert"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHISELED_BOOKSHELF_INSERT_ENCHANTED("block.chiseled_bookshelf.insert.enchanted"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHISELED_BOOKSHELF_PICKUP("block.chiseled_bookshelf.pickup"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHISELED_BOOKSHELF_PICKUP_ENCHANTED("block.chiseled_bookshelf.pickup.enchanted"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHISELED_BOOKSHELF_PLACE("block.chiseled_bookshelf.place"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_CHISELED_BOOKSHELF_STEP("block.chiseled_bookshelf.step"), BLOCK_CHORUS_FLOWER_DEATH("block.chorus_flower.death"), BLOCK_CHORUS_FLOWER_GROW("block.chorus_flower.grow"), @@ -223,11 +312,23 @@ public enum Sound implements Keyed { BLOCK_CORAL_BLOCK_PLACE("block.coral_block.place"), BLOCK_CORAL_BLOCK_STEP("block.coral_block.step"), BLOCK_CROP_BREAK("block.crop.break"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_DECORATED_POT_BREAK("block.decorated_pot.break"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_DECORATED_POT_FALL("block.decorated_pot.fall"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_DECORATED_POT_HIT("block.decorated_pot.hit"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_DECORATED_POT_PLACE("block.decorated_pot.place"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_DECORATED_POT_SHATTER("block.decorated_pot.shatter"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_DECORATED_POT_STEP("block.decorated_pot.step"), BLOCK_DEEPSLATE_BREAK("block.deepslate.break"), BLOCK_DEEPSLATE_BRICKS_BREAK("block.deepslate_bricks.break"), @@ -470,10 +571,20 @@ public enum Sound implements Keyed { BLOCK_PACKED_MUD_HIT("block.packed_mud.hit"), BLOCK_PACKED_MUD_PLACE("block.packed_mud.place"), BLOCK_PACKED_MUD_STEP("block.packed_mud.step"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_PINK_PETALS_BREAK("block.pink_petals.break"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_PINK_PETALS_FALL("block.pink_petals.fall"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_PINK_PETALS_HIT("block.pink_petals.hit"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_PINK_PETALS_PLACE("block.pink_petals.place"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_PINK_PETALS_STEP("block.pink_petals.step"), BLOCK_PISTON_CONTRACT("block.piston.contract"), BLOCK_PISTON_EXTEND("block.piston.extend"), @@ -612,10 +723,20 @@ public enum Sound implements Keyed { 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"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_SUSPICIOUS_SAND_BREAK("block.suspicious_sand.break"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_SUSPICIOUS_SAND_FALL("block.suspicious_sand.fall"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_SUSPICIOUS_SAND_HIT("block.suspicious_sand.hit"), + @MinecraftExperimental + @ApiStatus.Experimental BLOCK_SUSPICIOUS_SAND_PLACE("block.suspicious_sand.place"), + @MinecraftExperimental + @ApiStatus.Experimental 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"), @@ -708,16 +829,27 @@ public enum Sound implements Keyed { ENTITY_BLAZE_SHOOT("entity.blaze.shoot"), ENTITY_BOAT_PADDLE_LAND("entity.boat.paddle_land"), ENTITY_BOAT_PADDLE_WATER("entity.boat.paddle_water"), + @MinecraftExperimental ENTITY_CAMEL_AMBIENT("entity.camel.ambient"), + @MinecraftExperimental ENTITY_CAMEL_DASH("entity.camel.dash"), + @MinecraftExperimental ENTITY_CAMEL_DASH_READY("entity.camel.dash_ready"), + @MinecraftExperimental ENTITY_CAMEL_DEATH("entity.camel.death"), + @MinecraftExperimental ENTITY_CAMEL_EAT("entity.camel.eat"), + @MinecraftExperimental ENTITY_CAMEL_HURT("entity.camel.hurt"), + @MinecraftExperimental ENTITY_CAMEL_SADDLE("entity.camel.saddle"), + @MinecraftExperimental ENTITY_CAMEL_SIT("entity.camel.sit"), + @MinecraftExperimental ENTITY_CAMEL_STAND("entity.camel.stand"), + @MinecraftExperimental ENTITY_CAMEL_STEP("entity.camel.step"), + @MinecraftExperimental ENTITY_CAMEL_STEP_SAND("entity.camel.step_sand"), ENTITY_CAT_AMBIENT("entity.cat.ambient"), ENTITY_CAT_BEG_FOR_FOOD("entity.cat.beg_for_food"), @@ -1159,17 +1291,41 @@ public enum Sound implements Keyed { ENTITY_SLIME_JUMP_SMALL("entity.slime.jump_small"), ENTITY_SLIME_SQUISH("entity.slime.squish"), ENTITY_SLIME_SQUISH_SMALL("entity.slime.squish_small"), + @MinecraftExperimental + @ApiStatus.Experimental ENTITY_SNIFFER_DEATH("entity.sniffer.death"), + @MinecraftExperimental + @ApiStatus.Experimental ENTITY_SNIFFER_DIGGING("entity.sniffer.digging"), + @MinecraftExperimental + @ApiStatus.Experimental ENTITY_SNIFFER_DIGGING_STOP("entity.sniffer.digging_stop"), + @MinecraftExperimental + @ApiStatus.Experimental ENTITY_SNIFFER_DROP_SEED("entity.sniffer.drop_seed"), + @MinecraftExperimental + @ApiStatus.Experimental ENTITY_SNIFFER_EAT("entity.sniffer.eat"), + @MinecraftExperimental + @ApiStatus.Experimental ENTITY_SNIFFER_HAPPY("entity.sniffer.happy"), + @MinecraftExperimental + @ApiStatus.Experimental ENTITY_SNIFFER_HURT("entity.sniffer.hurt"), + @MinecraftExperimental + @ApiStatus.Experimental ENTITY_SNIFFER_IDLE("entity.sniffer.idle"), + @MinecraftExperimental + @ApiStatus.Experimental ENTITY_SNIFFER_SCENTING("entity.sniffer.scenting"), + @MinecraftExperimental + @ApiStatus.Experimental ENTITY_SNIFFER_SEARCHING("entity.sniffer.searching"), + @MinecraftExperimental + @ApiStatus.Experimental ENTITY_SNIFFER_SNIFFING("entity.sniffer.sniffing"), + @MinecraftExperimental + @ApiStatus.Experimental ENTITY_SNIFFER_STEP("entity.sniffer.step"), ENTITY_SNOWBALL_THROW("entity.snowball.throw"), ENTITY_SNOW_GOLEM_AMBIENT("entity.snow_golem.ambient"), @@ -1353,7 +1509,11 @@ public enum Sound implements Keyed { ITEM_BOTTLE_EMPTY("item.bottle.empty"), ITEM_BOTTLE_FILL("item.bottle.fill"), ITEM_BOTTLE_FILL_DRAGONBREATH("item.bottle.fill_dragonbreath"), + @MinecraftExperimental + @ApiStatus.Experimental ITEM_BRUSH_BRUSHING("item.brush.brushing"), + @MinecraftExperimental + @ApiStatus.Experimental ITEM_BRUSH_BRUSH_SAND_COMPLETED("item.brush.brush_sand_completed"), ITEM_BUCKET_EMPTY("item.bucket.empty"), ITEM_BUCKET_EMPTY_AXOLOTL("item.bucket.empty_axolotl"), @@ -1440,6 +1600,8 @@ public enum Sound implements Keyed { 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"), + @MinecraftExperimental + @ApiStatus.Experimental 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/paper-api/src/main/java/org/bukkit/Tag.java b/paper-api/src/main/java/org/bukkit/Tag.java index 3ba1efc150..2d25228016 100644 --- a/paper-api/src/main/java/org/bukkit/Tag.java +++ b/paper-api/src/main/java/org/bukkit/Tag.java @@ -2,6 +2,7 @@ package org.bukkit; import java.util.Set; import org.bukkit.entity.EntityType; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -118,6 +119,8 @@ public interface Tag extends Keyed { /** * Vanilla block tag representing all cherry log and bark variants. */ + @MinecraftExperimental + @ApiStatus.Experimental Tag CHERRY_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("cherry_logs"), Material.class); /** * Vanilla block tag representing all jungle log and bark variants. @@ -316,14 +319,20 @@ public interface Tag extends Keyed { /** * Vanilla block tag representing all ceiling signs. */ + @MinecraftExperimental + @ApiStatus.Experimental Tag CEILING_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("ceiling_hanging_signs"), Material.class); /** * Vanilla block tag representing all wall hanging signs. */ + @MinecraftExperimental + @ApiStatus.Experimental Tag WALL_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_hanging_signs"), Material.class); /** * Vanilla block tag representing all hanging signs. */ + @MinecraftExperimental + @ApiStatus.Experimental Tag ALL_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("all_hanging_signs"), Material.class); /** * Vanilla block tag representing all signs, regardless of type. @@ -687,6 +696,8 @@ public interface Tag extends Keyed { /** * Vanilla block tag representing blocks which can be dug by sniffers. */ + @MinecraftExperimental + @ApiStatus.Experimental Tag SNIFFER_DIGGABLE_BLOCK = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sniffer_diggable_block"), Material.class); /** * Key for the built in item registry. @@ -776,26 +787,38 @@ public interface Tag extends Keyed { /** * Vanilla item tag representing all items which modify note block sounds when placed on top. */ + @MinecraftExperimental + @ApiStatus.Experimental 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. */ + @MinecraftExperimental + @ApiStatus.Experimental 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. */ + @MinecraftExperimental + @ApiStatus.Experimental Tag ITEMS_TRIM_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trim_materials"), Material.class); /** * Vanilla item tag representing all trimming templates. */ + @MinecraftExperimental + @ApiStatus.Experimental Tag ITEMS_TRIM_TEMPLATES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trim_templates"), Material.class); /** * Vanilla item tag representing all food for sniffers. */ + @MinecraftExperimental + @ApiStatus.Experimental Tag ITEMS_SNIFFER_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("sniffer_food"), Material.class); /** * Vanilla item tag representing all decorated pot shards. */ + @MinecraftExperimental + @ApiStatus.Experimental Tag ITEMS_DECORATED_POT_SHARDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("decorated_pot_shards"), Material.class); /** * Vanilla item tag representing all swords. @@ -824,6 +847,8 @@ public interface Tag extends Keyed { /** * Vanilla item tag representing all item which break decorated pots. */ + @MinecraftExperimental + @ApiStatus.Experimental 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/paper-api/src/main/java/org/bukkit/TreeType.java b/paper-api/src/main/java/org/bukkit/TreeType.java index d355c91748..ec863899e8 100644 --- a/paper-api/src/main/java/org/bukkit/TreeType.java +++ b/paper-api/src/main/java/org/bukkit/TreeType.java @@ -1,5 +1,7 @@ package org.bukkit; +import org.jetbrains.annotations.ApiStatus; + /** * Tree and organic structure types. */ @@ -96,5 +98,7 @@ public enum TreeType { /** * Cherry tree */ + @MinecraftExperimental + @ApiStatus.Experimental CHERRY, } diff --git a/paper-api/src/main/java/org/bukkit/UndefinedNullability.java b/paper-api/src/main/java/org/bukkit/UndefinedNullability.java index f465ea001c..4d4265c237 100644 --- a/paper-api/src/main/java/org/bukkit/UndefinedNullability.java +++ b/paper-api/src/main/java/org/bukkit/UndefinedNullability.java @@ -2,6 +2,7 @@ package org.bukkit; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import org.jetbrains.annotations.ApiStatus; /** * Annotation for types, whose nullability is not well defined, so @@ -13,6 +14,7 @@ import java.lang.annotation.RetentionPolicy; * suggests a bad API design. */ @Retention(RetentionPolicy.CLASS) +@ApiStatus.Internal @Deprecated public @interface UndefinedNullability { diff --git a/paper-api/src/main/java/org/bukkit/block/Biome.java b/paper-api/src/main/java/org/bukkit/block/Biome.java index d3087d6037..a5908d0a03 100644 --- a/paper-api/src/main/java/org/bukkit/block/Biome.java +++ b/paper-api/src/main/java/org/bukkit/block/Biome.java @@ -2,7 +2,9 @@ package org.bukkit.block; import java.util.Locale; import org.bukkit.Keyed; +import org.bukkit.MinecraftExperimental; import org.bukkit.NamespacedKey; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -72,6 +74,8 @@ public enum Biome implements Keyed { FROZEN_PEAKS, JAGGED_PEAKS, STONY_PEAKS, + @MinecraftExperimental + @ApiStatus.Experimental CHERRY_GROVE, /** * Represents a custom Biome diff --git a/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java b/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java index 4cae298f18..be3b055ae1 100644 --- a/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java +++ b/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java @@ -1,12 +1,16 @@ package org.bukkit.block; +import org.bukkit.MinecraftExperimental; import org.bukkit.inventory.BlockInventoryHolder; import org.bukkit.inventory.ChiseledBookshelfInventory; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** * Represents a captured state of a chiseled bookshelf. */ +@MinecraftExperimental +@ApiStatus.Experimental public interface ChiseledBookshelf extends TileState, BlockInventoryHolder { /** diff --git a/paper-api/src/main/java/org/bukkit/block/DecoratedPot.java b/paper-api/src/main/java/org/bukkit/block/DecoratedPot.java index c943d2e5c9..5ff7735329 100644 --- a/paper-api/src/main/java/org/bukkit/block/DecoratedPot.java +++ b/paper-api/src/main/java/org/bukkit/block/DecoratedPot.java @@ -2,12 +2,16 @@ package org.bukkit.block; import java.util.List; import org.bukkit.Material; +import org.bukkit.MinecraftExperimental; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * Represents a captured state of a decorated pot. */ +@MinecraftExperimental +@ApiStatus.Experimental public interface DecoratedPot extends TileState { /** diff --git a/paper-api/src/main/java/org/bukkit/block/HangingSign.java b/paper-api/src/main/java/org/bukkit/block/HangingSign.java index 9bef6c6597..a82a5bb164 100644 --- a/paper-api/src/main/java/org/bukkit/block/HangingSign.java +++ b/paper-api/src/main/java/org/bukkit/block/HangingSign.java @@ -1,7 +1,12 @@ package org.bukkit.block; +import org.bukkit.MinecraftExperimental; +import org.jetbrains.annotations.ApiStatus; + /** * Represents a captured state of a hanging sign. */ +@MinecraftExperimental +@ApiStatus.Experimental public interface HangingSign extends Sign { } diff --git a/paper-api/src/main/java/org/bukkit/block/Skull.java b/paper-api/src/main/java/org/bukkit/block/Skull.java index 8d4093a413..fab2ca9f6c 100644 --- a/paper-api/src/main/java/org/bukkit/block/Skull.java +++ b/paper-api/src/main/java/org/bukkit/block/Skull.java @@ -1,11 +1,13 @@ package org.bukkit.block; import org.bukkit.Material; +import org.bukkit.MinecraftExperimental; import org.bukkit.NamespacedKey; import org.bukkit.OfflinePlayer; import org.bukkit.SkullType; import org.bukkit.block.data.BlockData; import org.bukkit.profile.PlayerProfile; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -94,6 +96,8 @@ public interface Skull extends TileState { * * @return the key of the sound, or null */ + @MinecraftExperimental + @ApiStatus.Experimental @Nullable public NamespacedKey getNoteBlockSound(); @@ -104,7 +108,10 @@ public interface Skull extends TileState { * see {@link org.bukkit.Instrument}. * * @param noteBlockSound the key of the sound to be played, or null + * */ + @MinecraftExperimental + @ApiStatus.Experimental public void setNoteBlockSound(@Nullable NamespacedKey noteBlockSound); /** diff --git a/paper-api/src/main/java/org/bukkit/block/SuspiciousSand.java b/paper-api/src/main/java/org/bukkit/block/SuspiciousSand.java index 2f64b66d10..73a684188d 100644 --- a/paper-api/src/main/java/org/bukkit/block/SuspiciousSand.java +++ b/paper-api/src/main/java/org/bukkit/block/SuspiciousSand.java @@ -1,12 +1,16 @@ package org.bukkit.block; +import org.bukkit.MinecraftExperimental; import org.bukkit.inventory.ItemStack; import org.bukkit.loot.Lootable; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; /** * Represents a captured state of suspicious sand. */ +@MinecraftExperimental +@ApiStatus.Experimental public interface SuspiciousSand extends Lootable, TileState { /** diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java b/paper-api/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java index a172e22ce4..66365eba4e 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java @@ -1,7 +1,9 @@ package org.bukkit.block.data.type; import java.util.Set; +import org.bukkit.MinecraftExperimental; import org.bukkit.block.data.Directional; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -11,6 +13,8 @@ import org.jetbrains.annotations.NotNull; *
* Block may have 0, 1... {@link #getMaximumOccupiedSlots()}-1 occupied slots. */ +@MinecraftExperimental +@ApiStatus.Experimental public interface ChiseledBookshelf extends Directional { /** diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/DecoratedPot.java b/paper-api/src/main/java/org/bukkit/block/data/type/DecoratedPot.java index eb0ffa9774..dad5c3f28b 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/DecoratedPot.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/DecoratedPot.java @@ -1,7 +1,11 @@ package org.bukkit.block.data.type; +import org.bukkit.MinecraftExperimental; import org.bukkit.block.data.Directional; import org.bukkit.block.data.Waterlogged; +import org.jetbrains.annotations.ApiStatus; +@MinecraftExperimental +@ApiStatus.Experimental public interface DecoratedPot extends Directional, Waterlogged { } diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/HangingSign.java b/paper-api/src/main/java/org/bukkit/block/data/type/HangingSign.java index c5a0c14763..a65123a7e0 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/HangingSign.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/HangingSign.java @@ -1,8 +1,12 @@ package org.bukkit.block.data.type; +import org.bukkit.MinecraftExperimental; import org.bukkit.block.data.Attachable; import org.bukkit.block.data.Rotatable; import org.bukkit.block.data.Waterlogged; +import org.jetbrains.annotations.ApiStatus; +@MinecraftExperimental +@ApiStatus.Experimental public interface HangingSign extends Attachable, Rotatable, Waterlogged { } diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/PinkPetals.java b/paper-api/src/main/java/org/bukkit/block/data/type/PinkPetals.java index a84b36f758..0d421d152e 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/PinkPetals.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/PinkPetals.java @@ -1,10 +1,14 @@ package org.bukkit.block.data.type; +import org.bukkit.MinecraftExperimental; import org.bukkit.block.data.Directional; +import org.jetbrains.annotations.ApiStatus; /** * 'flower_amount' represents the number of petals. */ +@MinecraftExperimental +@ApiStatus.Experimental public interface PinkPetals extends Directional { /** diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/SuspiciousSand.java b/paper-api/src/main/java/org/bukkit/block/data/type/SuspiciousSand.java index bb10fda944..9a3bf5cc1d 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/SuspiciousSand.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/SuspiciousSand.java @@ -1,10 +1,14 @@ package org.bukkit.block.data.type; +import org.bukkit.MinecraftExperimental; import org.bukkit.block.data.BlockData; +import org.jetbrains.annotations.ApiStatus; /** * 'dusted' represents how far uncovered by brush the block is. */ +@MinecraftExperimental +@ApiStatus.Experimental public interface SuspiciousSand extends BlockData { /** diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/WallHangingSign.java b/paper-api/src/main/java/org/bukkit/block/data/type/WallHangingSign.java index 283b21024d..13bf22353d 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/WallHangingSign.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/WallHangingSign.java @@ -1,7 +1,11 @@ package org.bukkit.block.data.type; +import org.bukkit.MinecraftExperimental; import org.bukkit.block.data.Directional; import org.bukkit.block.data.Waterlogged; +import org.jetbrains.annotations.ApiStatus; +@MinecraftExperimental +@ApiStatus.Experimental public interface WallHangingSign extends Directional, Waterlogged { } diff --git a/paper-api/src/main/java/org/bukkit/entity/Boat.java b/paper-api/src/main/java/org/bukkit/entity/Boat.java index 88852215d0..08e54aac52 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Boat.java +++ b/paper-api/src/main/java/org/bukkit/entity/Boat.java @@ -1,7 +1,9 @@ package org.bukkit.entity; import org.bukkit.Material; +import org.bukkit.MinecraftExperimental; import org.bukkit.TreeSpecies; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -141,9 +143,13 @@ public interface Boat extends Vehicle { BIRCH(Material.BIRCH_PLANKS), JUNGLE(Material.JUNGLE_PLANKS), ACACIA(Material.ACACIA_PLANKS), + @MinecraftExperimental + @ApiStatus.Experimental CHERRY(Material.CHERRY_PLANKS), DARK_OAK(Material.DARK_OAK_PLANKS), MANGROVE(Material.MANGROVE_PLANKS), + @MinecraftExperimental + @ApiStatus.Experimental BAMBOO(Material.BAMBOO_PLANKS), ; diff --git a/paper-api/src/main/java/org/bukkit/entity/Camel.java b/paper-api/src/main/java/org/bukkit/entity/Camel.java index 17e4e0a822..dfa2d666a8 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Camel.java +++ b/paper-api/src/main/java/org/bukkit/entity/Camel.java @@ -1,8 +1,16 @@ package org.bukkit.entity; +import org.bukkit.MinecraftExperimental; +import org.jetbrains.annotations.ApiStatus; + /** * Represents a Camel. + * + * @apiNote This entity is part of an experimental feature of Minecraft and + * hence subject to change. */ +@MinecraftExperimental +@ApiStatus.Experimental public interface Camel extends AbstractHorse, Sittable { /** diff --git a/paper-api/src/main/java/org/bukkit/entity/Entity.java b/paper-api/src/main/java/org/bukkit/entity/Entity.java index 2570b335ca..b75436ceef 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Entity.java +++ b/paper-api/src/main/java/org/bukkit/entity/Entity.java @@ -19,6 +19,7 @@ import org.bukkit.metadata.Metadatable; import org.bukkit.persistence.PersistentDataHolder; import org.bukkit.util.BoundingBox; import org.bukkit.util.Vector; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -528,9 +529,9 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * will need to be called before the entity is visible to a given player. * * @param visible default visibility status - * @deprecated draft API + * @apiNote draft API */ - @Deprecated + @ApiStatus.Experimental public void setVisibleByDefault(boolean visible); /** @@ -541,9 +542,9 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * will need to be called before the entity is visible to a given player. * * @return default visibility status - * @deprecated draft API + * @apiNote draft API */ - @Deprecated + @ApiStatus.Experimental public boolean isVisibleByDefault(); /** diff --git a/paper-api/src/main/java/org/bukkit/entity/EntityType.java b/paper-api/src/main/java/org/bukkit/entity/EntityType.java index 8b913a9458..bed9c519a5 100644 --- a/paper-api/src/main/java/org/bukkit/entity/EntityType.java +++ b/paper-api/src/main/java/org/bukkit/entity/EntityType.java @@ -6,6 +6,7 @@ import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.Keyed; import org.bukkit.Location; +import org.bukkit.MinecraftExperimental; import org.bukkit.NamespacedKey; import org.bukkit.Translatable; import org.bukkit.World; @@ -18,6 +19,7 @@ import org.bukkit.entity.minecart.SpawnerMinecart; import org.bukkit.entity.minecart.StorageMinecart; import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffectType; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -278,10 +280,14 @@ public enum EntityType implements Keyed, Translatable { FROG("frog", Frog.class, -1), TADPOLE("tadpole", Tadpole.class, -1), WARDEN("warden", Warden.class, -1), + @MinecraftExperimental + @ApiStatus.Experimental CAMEL("camel", Camel.class, -1), BLOCK_DISPLAY("block_display", BlockDisplay.class, -1), INTERACTION("interaction", Interaction.class, -1), ITEM_DISPLAY("item_display", ItemDisplay.class, -1), + @MinecraftExperimental + @ApiStatus.Experimental SNIFFER("sniffer", Sniffer.class, -1), TEXT_DISPLAY("text_display", TextDisplay.class, -1), /** diff --git a/paper-api/src/main/java/org/bukkit/entity/Player.java b/paper-api/src/main/java/org/bukkit/entity/Player.java index 5cf60bae46..04ef546884 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Player.java +++ b/paper-api/src/main/java/org/bukkit/entity/Player.java @@ -33,6 +33,7 @@ import org.bukkit.map.MapView; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.messaging.PluginMessageRecipient; import org.bukkit.scoreboard.Scoreboard; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -959,9 +960,9 @@ 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 + * @apiNote draft API */ - @Deprecated + @ApiStatus.Experimental public void hideEntity(@NotNull Plugin plugin, @NotNull Entity entity); /** @@ -971,9 +972,9 @@ 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 + * @apiNote draft API */ - @Deprecated + @ApiStatus.Experimental public void showEntity(@NotNull Plugin plugin, @NotNull Entity entity); /** @@ -982,9 +983,9 @@ 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 + * @apiNote draft API */ - @Deprecated + @ApiStatus.Experimental public boolean canSee(@NotNull Entity entity); /** diff --git a/paper-api/src/main/java/org/bukkit/entity/Sniffer.java b/paper-api/src/main/java/org/bukkit/entity/Sniffer.java index 6509d1ca35..e9a8c2c922 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Sniffer.java +++ b/paper-api/src/main/java/org/bukkit/entity/Sniffer.java @@ -2,6 +2,7 @@ package org.bukkit.entity; import java.util.Collection; import org.bukkit.Location; +import org.bukkit.MinecraftExperimental; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -9,15 +10,16 @@ import org.jetbrains.annotations.Nullable; /** * Represents a Sniffer. * - * Note: This entity is part of an experimental feature of Minecraft and - * hence subject to change. + * @apiNote This entity is part of an experimental feature of Minecraft and + * hence subject to change. */ +@MinecraftExperimental @ApiStatus.Experimental public interface Sniffer extends Animals { /** * Gets the locations explored by the sniffer. - * + *
* Note: the returned locations use sniffer's current world. * * @return a collection of locations @@ -27,11 +29,10 @@ public interface Sniffer extends Animals { /** * Remove a location of the explored locations. - * + *
* Note: the location must be in the sniffer's current world for this * method to have any effect. * - * * @param location the location to remove * @see #getExploredLocations() */ @@ -39,11 +40,10 @@ public interface Sniffer extends Animals { /** * Add a location to the explored locations. - * + *
* Note: the location must be in the sniffer's current world for this * method to have any effect. * - * * @param location the location to add * @see #getExploredLocations() */ diff --git a/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java b/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java index 8f601e85df..f1c184ed74 100644 --- a/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java +++ b/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java @@ -7,7 +7,9 @@ import java.util.Set; import java.util.UUID; import org.bukkit.Keyed; import org.bukkit.Location; +import org.bukkit.MinecraftExperimental; import org.bukkit.NamespacedKey; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -69,6 +71,8 @@ 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); + @MinecraftExperimental + @ApiStatus.Experimental public static final MemoryKey SNIFFER_EXPLORED_POSITIONS = new MemoryKey<>(NamespacedKey.minecraft("sniffer_explored_positions"), Location.class); /** diff --git a/paper-api/src/main/java/org/bukkit/event/block/InventoryBlockStartEvent.java b/paper-api/src/main/java/org/bukkit/event/block/InventoryBlockStartEvent.java index 12d8d5f50a..f30ed84186 100644 --- a/paper-api/src/main/java/org/bukkit/event/block/InventoryBlockStartEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/block/InventoryBlockStartEvent.java @@ -1,10 +1,10 @@ package org.bukkit.event.block; -import org.bukkit.Warning; import org.bukkit.block.Block; import org.bukkit.event.HandlerList; import org.bukkit.event.inventory.FurnaceStartSmeltEvent; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -15,10 +15,9 @@ import org.jetbrains.annotations.NotNull; *

  • A Campfire starts cooking {@link CampfireStartEvent}
  • * * - * @deprecated draft API + * @apiNote draft API */ -@Deprecated -@Warning(false) +@ApiStatus.Experimental public class InventoryBlockStartEvent extends BlockEvent { private static final HandlerList handlers = new HandlerList(); diff --git a/paper-api/src/main/java/org/bukkit/event/inventory/InventoryType.java b/paper-api/src/main/java/org/bukkit/event/inventory/InventoryType.java index 629c1bf79c..3eb3a2cb67 100644 --- a/paper-api/src/main/java/org/bukkit/event/inventory/InventoryType.java +++ b/paper-api/src/main/java/org/bukkit/event/inventory/InventoryType.java @@ -1,5 +1,6 @@ package org.bukkit.event.inventory; +import org.bukkit.MinecraftExperimental; import org.bukkit.inventory.InventoryHolder; import org.jetbrains.annotations.NotNull; @@ -145,9 +146,9 @@ public enum InventoryType { /** * The new smithing inventory, with 3 CRAFTING slots and 1 RESULT slot. * - * @deprecated draft, experimental 1.20 API + * @apiNote draft, experimental 1.20 API */ - @Deprecated + @MinecraftExperimental SMITHING_NEW(4, "Upgrade Gear"), ; diff --git a/paper-api/src/main/java/org/bukkit/event/player/PlayerHideEntityEvent.java b/paper-api/src/main/java/org/bukkit/event/player/PlayerHideEntityEvent.java index d8a73cd222..9d9cd7245c 100644 --- a/paper-api/src/main/java/org/bukkit/event/player/PlayerHideEntityEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/player/PlayerHideEntityEvent.java @@ -1,24 +1,23 @@ package org.bukkit.event.player; -import org.bukkit.Warning; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** * Called when a visible entity is hidden from a player. - * + *
    * This event is only called when the entity's visibility status is actually * changed. - * + *
    * 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 + * @apiNote draft API */ -@Deprecated -@Warning(false) +@ApiStatus.Experimental public class PlayerHideEntityEvent extends PlayerEvent { private static final HandlerList handlers = new HandlerList(); diff --git a/paper-api/src/main/java/org/bukkit/event/player/PlayerShowEntityEvent.java b/paper-api/src/main/java/org/bukkit/event/player/PlayerShowEntityEvent.java index 5408a8c123..6eb77dc1bb 100644 --- a/paper-api/src/main/java/org/bukkit/event/player/PlayerShowEntityEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/player/PlayerShowEntityEvent.java @@ -1,25 +1,24 @@ package org.bukkit.event.player; -import org.bukkit.Warning; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** * Called when a hidden entity is shown to a player. - * + *
    * This event is only called when the entity's visibility status is actually * changed. - * + *
    * This event is called regardless of whether the entity was within tracking * range. * * @see Player#showEntity(org.bukkit.plugin.Plugin, org.bukkit.entity.Entity) - * @deprecated draft API + * @apiNote draft API */ -@Deprecated -@Warning(false) +@ApiStatus.Experimental public class PlayerShowEntityEvent extends PlayerEvent { private static final HandlerList handlers = new HandlerList(); diff --git a/paper-api/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java b/paper-api/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java index b99f26079c..e7e3e85f30 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java +++ b/paper-api/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java @@ -1,11 +1,15 @@ package org.bukkit.inventory; +import org.bukkit.MinecraftExperimental; import org.bukkit.block.ChiseledBookshelf; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; /** * Interface to the inventory of a chiseled bookshelf. */ +@MinecraftExperimental +@ApiStatus.Experimental public interface ChiseledBookshelfInventory extends Inventory { @Nullable diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemFlag.java b/paper-api/src/main/java/org/bukkit/inventory/ItemFlag.java index 42fcc31147..0a1c39a2a0 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/ItemFlag.java +++ b/paper-api/src/main/java/org/bukkit/inventory/ItemFlag.java @@ -1,5 +1,8 @@ package org.bukkit.inventory; +import org.bukkit.MinecraftExperimental; +import org.jetbrains.annotations.ApiStatus; + /** * A ItemFlag can hide some Attributes from ItemStacks */ @@ -37,5 +40,7 @@ public enum ItemFlag { /** * Setting to show/hide armor trim from leather armor. */ + @MinecraftExperimental + @ApiStatus.Experimental HIDE_ARMOR_TRIM; } diff --git a/paper-api/src/main/java/org/bukkit/inventory/SmithingInventory.java b/paper-api/src/main/java/org/bukkit/inventory/SmithingInventory.java index 96d526b7b1..8f7749d10b 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/SmithingInventory.java +++ b/paper-api/src/main/java/org/bukkit/inventory/SmithingInventory.java @@ -1,10 +1,15 @@ package org.bukkit.inventory; +import org.bukkit.MinecraftExperimental; import org.jetbrains.annotations.Nullable; /** * Interface to the inventory of a Smithing table. + * + * @apiNote Check {@link #getType()} to better handle either the current or experimental + * variant of this inventory */ +@MinecraftExperimental public interface SmithingInventory extends Inventory { /** diff --git a/paper-api/src/main/java/org/bukkit/inventory/SmithingTrimRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/SmithingTrimRecipe.java index 32cbdc3426..8eff1b9163 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/SmithingTrimRecipe.java +++ b/paper-api/src/main/java/org/bukkit/inventory/SmithingTrimRecipe.java @@ -1,12 +1,19 @@ package org.bukkit.inventory; import org.bukkit.Material; +import org.bukkit.MinecraftExperimental; import org.bukkit.NamespacedKey; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** * Represents a smithing trim recipe. + * + * @apiNote This recipe is part of an experimental feature of Minecraft and + * hence subject to change. */ +@MinecraftExperimental +@ApiStatus.Experimental public class SmithingTrimRecipe extends SmithingRecipe implements ComplexRecipe { private final RecipeChoice template; diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java b/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java index bc992fdf6d..f7f8d0d0bf 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java +++ b/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java @@ -1,10 +1,14 @@ package org.bukkit.inventory.meta; import java.util.List; +import org.bukkit.MinecraftExperimental; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +@MinecraftExperimental +@ApiStatus.Experimental public interface BundleMeta extends ItemMeta { /** diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/SkullMeta.java b/paper-api/src/main/java/org/bukkit/inventory/meta/SkullMeta.java index 5a18a66a0b..461cdecc3e 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/meta/SkullMeta.java +++ b/paper-api/src/main/java/org/bukkit/inventory/meta/SkullMeta.java @@ -1,8 +1,10 @@ package org.bukkit.inventory.meta; +import org.bukkit.MinecraftExperimental; import org.bukkit.NamespacedKey; import org.bukkit.OfflinePlayer; import org.bukkit.profile.PlayerProfile; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -88,6 +90,8 @@ public interface SkullMeta extends ItemMeta { * * @param noteBlockSound the key of the sound to be played, or null */ + @MinecraftExperimental + @ApiStatus.Experimental void setNoteBlockSound(@Nullable NamespacedKey noteBlockSound); /** @@ -98,6 +102,8 @@ public interface SkullMeta extends ItemMeta { * * @return the key of the sound, or null */ + @MinecraftExperimental + @ApiStatus.Experimental @Nullable NamespacedKey getNoteBlockSound();