diff --git a/paper-api/pom.xml b/paper-api/pom.xml index 8364ea5d8d..d67e2c83a7 100644 --- a/paper-api/pom.xml +++ b/paper-api/pom.xml @@ -5,7 +5,7 @@ org.bukkit bukkit - 1.20.6-R0.1-SNAPSHOT + 1.21-R0.1-SNAPSHOT jar Bukkit diff --git a/paper-api/src/main/java/org/bukkit/Art.java b/paper-api/src/main/java/org/bukkit/Art.java index 0c20c6bf44..dadff073ab 100644 --- a/paper-api/src/main/java/org/bukkit/Art.java +++ b/paper-api/src/main/java/org/bukkit/Art.java @@ -40,7 +40,27 @@ public enum Art implements Keyed { EARTH(26, 2, 2), WIND(27, 2, 2), WATER(28, 2, 2), - FIRE(29, 2, 2); + FIRE(29, 2, 2), + BAROQUE(30, 2, 2), + HUMBLE(31, 2, 2), + MEDITATIVE(32, 1, 1), + PRAIRIE_RIDE(33, 1, 2), + UNPACKED(34, 4, 4), + BACKYARD(35, 3, 4), + BOUQUET(36, 3, 3), + CAVEBIRD(37, 3, 3), + CHANGING(38, 4, 2), + COTAN(39, 3, 3), + ENDBOSS(40, 3, 3), + FERN(41, 3, 3), + FINDING(42, 4, 2), + LOWMIST(43, 4, 2), + ORB(44, 4, 4), + OWLEMONS(45, 3, 3), + PASSAGE(46, 4, 2), + POND(47, 3, 4), + SUNFLOWERS(48, 3, 3), + TIDES(49, 3, 3); private final int id, width, height; private final NamespacedKey key; diff --git a/paper-api/src/main/java/org/bukkit/Bukkit.java b/paper-api/src/main/java/org/bukkit/Bukkit.java index c19f89f7d6..acb00301aa 100644 --- a/paper-api/src/main/java/org/bukkit/Bukkit.java +++ b/paper-api/src/main/java/org/bukkit/Bukkit.java @@ -57,6 +57,7 @@ import org.bukkit.scoreboard.Criteria; import org.bukkit.scoreboard.ScoreboardManager; import org.bukkit.structure.StructureManager; import org.bukkit.util.CachedServerIcon; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -1694,6 +1695,17 @@ public final class Bukkit { server.setMotd(motd); } + /** + * Gets the server links which will be sent to clients + * + * @return the server's links + */ + @NotNull + @ApiStatus.Experimental + public static ServerLinks getServerLinks() { + return server.getServerLinks(); + } + /** * Gets the default message that is displayed when the server is stopped. * diff --git a/paper-api/src/main/java/org/bukkit/FeatureFlag.java b/paper-api/src/main/java/org/bukkit/FeatureFlag.java index 6b68c92ec8..7522c611b5 100644 --- a/paper-api/src/main/java/org/bukkit/FeatureFlag.java +++ b/paper-api/src/main/java/org/bukkit/FeatureFlag.java @@ -25,5 +25,11 @@ public interface FeatureFlag extends Keyed { public static final FeatureFlag TRADE_REBALANCE = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("trade_rebalance")); + /** + * AVAILABLE BETWEEN VERSIONS: 1.20.5 - 1.20.6 + * + * @deprecated not available since 1.21 + */ + @Deprecated public static final FeatureFlag UPDATE_121 = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("update_1_21")); } diff --git a/paper-api/src/main/java/org/bukkit/JukeboxSong.java b/paper-api/src/main/java/org/bukkit/JukeboxSong.java new file mode 100644 index 0000000000..3bf2743fbf --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/JukeboxSong.java @@ -0,0 +1,37 @@ +package org.bukkit; + +import java.util.Objects; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +/** + * Represents a song which may play in a Jukebox. + */ +@ApiStatus.Experimental +public interface JukeboxSong extends Keyed, Translatable { + + public static final JukeboxSong THIRTEEN = get("13"); + public static final JukeboxSong CAT = get("cat"); + public static final JukeboxSong BLOCKS = get("blocks"); + public static final JukeboxSong CHIRP = get("chirp"); + public static final JukeboxSong FAR = get("far"); + public static final JukeboxSong MALL = get("mall"); + public static final JukeboxSong MELLOHI = get("mellohi"); + public static final JukeboxSong STAL = get("stal"); + public static final JukeboxSong STRAD = get("strad"); + public static final JukeboxSong WARD = get("ward"); + public static final JukeboxSong ELEVEN = get("11"); + public static final JukeboxSong WAIT = get("wait"); + public static final JukeboxSong PIGSTEP = get("pigstep"); + public static final JukeboxSong OTHERSIDE = get("otherside"); + public static final JukeboxSong FIVE = get("5"); + public static final JukeboxSong RELIC = get("relic"); + public static final JukeboxSong PRECIPICE = get("precipice"); + public static final JukeboxSong CREATOR = get("creator"); + public static final JukeboxSong CREATOR_MUSIC_BOX = get("creator_music_box"); + + @NotNull + private static JukeboxSong get(@NotNull String s) { + return Objects.requireNonNull(Registry.JUKEBOX_SONG.get(NamespacedKey.minecraft(s)), "Missing song " + s); + } +} diff --git a/paper-api/src/main/java/org/bukkit/Material.java b/paper-api/src/main/java/org/bukkit/Material.java index 471da1c5b7..019cc6baf8 100644 --- a/paper-api/src/main/java/org/bukkit/Material.java +++ b/paper-api/src/main/java/org/bukkit/Material.java @@ -7,7 +7,6 @@ import java.lang.reflect.Constructor; import java.util.Locale; import java.util.Map; import java.util.function.Consumer; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeModifier; import org.bukkit.block.Block; @@ -149,55 +148,42 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Slab} */ - @MinecraftExperimental(Requires.UPDATE_1_21) TUFF_SLAB(19305, Slab.class), /** * BlockData: {@link Stairs} */ - @MinecraftExperimental(Requires.UPDATE_1_21) TUFF_STAIRS(11268, Stairs.class), /** * BlockData: {@link Wall} */ - @MinecraftExperimental(Requires.UPDATE_1_21) TUFF_WALL(24395, Wall.class), - @MinecraftExperimental(Requires.UPDATE_1_21) CHISELED_TUFF(15831), - @MinecraftExperimental(Requires.UPDATE_1_21) POLISHED_TUFF(17801), /** * BlockData: {@link Slab} */ - @MinecraftExperimental(Requires.UPDATE_1_21) POLISHED_TUFF_SLAB(31096, Slab.class), /** * BlockData: {@link Stairs} */ - @MinecraftExperimental(Requires.UPDATE_1_21) POLISHED_TUFF_STAIRS(7964, Stairs.class), /** * BlockData: {@link Wall} */ - @MinecraftExperimental(Requires.UPDATE_1_21) POLISHED_TUFF_WALL(28886, Wall.class), - @MinecraftExperimental(Requires.UPDATE_1_21) TUFF_BRICKS(26276), /** * BlockData: {@link Slab} */ - @MinecraftExperimental(Requires.UPDATE_1_21) TUFF_BRICK_SLAB(11843, Slab.class), /** * BlockData: {@link Stairs} */ - @MinecraftExperimental(Requires.UPDATE_1_21) TUFF_BRICK_STAIRS(30753, Stairs.class), /** * BlockData: {@link Wall} */ - @MinecraftExperimental(Requires.UPDATE_1_21) TUFF_BRICK_WALL(11761, Wall.class), - @MinecraftExperimental(Requires.UPDATE_1_21) CHISELED_TUFF_BRICKS(8601), DRIPSTONE_BLOCK(26227), /** @@ -303,7 +289,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) HEAVY_CORE(15788, Waterlogged.class), AMETHYST_BLOCK(18919), BUDDING_AMETHYST(13963), @@ -315,13 +300,9 @@ public enum Material implements Keyed, Translatable { EXPOSED_COPPER(28488), WEATHERED_COPPER(19699), OXIDIZED_COPPER(19490), - @MinecraftExperimental(Requires.UPDATE_1_21) CHISELED_COPPER(12143), - @MinecraftExperimental(Requires.UPDATE_1_21) EXPOSED_CHISELED_COPPER(4570), - @MinecraftExperimental(Requires.UPDATE_1_21) WEATHERED_CHISELED_COPPER(30876), - @MinecraftExperimental(Requires.UPDATE_1_21) OXIDIZED_CHISELED_COPPER(27719), CUT_COPPER(32519), EXPOSED_CUT_COPPER(18000), @@ -363,13 +344,9 @@ public enum Material implements Keyed, Translatable { WAXED_EXPOSED_COPPER(27989), WAXED_WEATHERED_COPPER(5960), WAXED_OXIDIZED_COPPER(25626), - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_CHISELED_COPPER(7500), - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_EXPOSED_CHISELED_COPPER(30658), - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_WEATHERED_CHISELED_COPPER(5970), - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_OXIDIZED_CHISELED_COPPER(7735), WAXED_CUT_COPPER(11030), WAXED_EXPOSED_CUT_COPPER(30043), @@ -2110,42 +2087,34 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) COPPER_DOOR(26809, Door.class), /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) EXPOSED_COPPER_DOOR(13236, Door.class), /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WEATHERED_COPPER_DOOR(10208, Door.class), /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) OXIDIZED_COPPER_DOOR(5348, Door.class), /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_COPPER_DOOR(9954, Door.class), /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_EXPOSED_COPPER_DOOR(20748, Door.class), /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_WEATHERED_COPPER_DOOR(25073, Door.class), /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_OXIDIZED_COPPER_DOOR(23888, Door.class), /** * BlockData: {@link TrapDoor} @@ -2198,42 +2167,34 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) COPPER_TRAPDOOR(12110, TrapDoor.class), /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) EXPOSED_COPPER_TRAPDOOR(19219, TrapDoor.class), /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WEATHERED_COPPER_TRAPDOOR(28254, TrapDoor.class), /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) OXIDIZED_COPPER_TRAPDOOR(26518, TrapDoor.class), /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_COPPER_TRAPDOOR(12626, TrapDoor.class), /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_EXPOSED_COPPER_TRAPDOOR(11010, TrapDoor.class), /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_WEATHERED_COPPER_TRAPDOOR(30709, TrapDoor.class), /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_OXIDIZED_COPPER_TRAPDOOR(21450, TrapDoor.class), /** * BlockData: {@link Gate} @@ -2335,6 +2296,7 @@ public enum Material implements Keyed, Translatable { ARMADILLO_SCUTE(11497), WOLF_ARMOR(17138, 1, 64), FLINT_AND_STEEL(28620, 1, 64), + BOWL(32661), APPLE(7720), BOW(8745, 1, 384), ARROW(31091), @@ -2384,7 +2346,6 @@ public enum Material implements Keyed, Translatable { NETHERITE_AXE(29533, 1, 2031), NETHERITE_HOE(27385, 1, 2031), STICK(9773), - BOWL(32661), MUSHROOM_STEW(16336, 1), STRING(12806), FEATHER(30548), @@ -2640,7 +2601,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Crafter} */ - @MinecraftExperimental(Requires.UPDATE_1_21) CRAFTER(25243, Crafter.class), FILLED_MAP(23504), SHEARS(27971, 1, 238), @@ -2680,9 +2640,7 @@ public enum Material implements Keyed, Translatable { BAT_SPAWN_EGG(14607), BEE_SPAWN_EGG(22924), BLAZE_SPAWN_EGG(4759), - @MinecraftExperimental(Requires.UPDATE_1_21) BOGGED_SPAWN_EGG(12042), - @MinecraftExperimental(Requires.UPDATE_1_21) BREEZE_SPAWN_EGG(7580), CAT_SPAWN_EGG(29583), CAMEL_SPAWN_EGG(14760), @@ -2758,12 +2716,10 @@ public enum Material implements Keyed, Translatable { ZOMBIFIED_PIGLIN_SPAWN_EGG(6626), EXPERIENCE_BOTTLE(12858), FIRE_CHARGE(4842), - @MinecraftExperimental(Requires.UPDATE_1_21) WIND_CHARGE(23928), WRITABLE_BOOK(13393, 1), WRITTEN_BOOK(24164, 16), - @MinecraftExperimental(Requires.UPDATE_1_21) - MACE(4771, 1, 250), + MACE(4771, 1, 500), ITEM_FRAME(27318), GLOW_ITEM_FRAME(26473), FLOWER_POT(30567), @@ -2911,6 +2867,8 @@ public enum Material implements Keyed, Translatable { MUSIC_DISC_CAT(16246, 1), MUSIC_DISC_BLOCKS(26667, 1), MUSIC_DISC_CHIRP(19436, 1), + MUSIC_DISC_CREATOR(20345, 1), + MUSIC_DISC_CREATOR_MUSIC_BOX(7202, 1), MUSIC_DISC_FAR(31742, 1), MUSIC_DISC_MALL(11517, 1), MUSIC_DISC_MELLOHI(26117, 1), @@ -2923,6 +2881,7 @@ public enum Material implements Keyed, Translatable { MUSIC_DISC_RELIC(8200, 1), MUSIC_DISC_5(9212, 1), MUSIC_DISC_PIGSTEP(21323, 1), + MUSIC_DISC_PRECIPICE(28677, 1), DISC_FRAGMENT_5(29729), TRIDENT(7534, 1, 250), PHANTOM_MEMBRANE(18398), @@ -3160,9 +3119,7 @@ public enum Material implements Keyed, Translatable { SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE(7070), RAISER_ARMOR_TRIM_SMITHING_TEMPLATE(29116), HOST_ARMOR_TRIM_SMITHING_TEMPLATE(12165), - @MinecraftExperimental(Requires.UPDATE_1_21) FLOW_ARMOR_TRIM_SMITHING_TEMPLATE(29175), - @MinecraftExperimental(Requires.UPDATE_1_21) BOLT_ARMOR_TRIM_SMITHING_TEMPLATE(9698), ANGLER_POTTERY_SHERD(9952), ARCHER_POTTERY_SHERD(21629), @@ -3172,10 +3129,8 @@ public enum Material implements Keyed, Translatable { BURN_POTTERY_SHERD(21259), DANGER_POTTERY_SHERD(30506), EXPLORER_POTTERY_SHERD(5124), - @MinecraftExperimental(Requires.UPDATE_1_21) FLOW_POTTERY_SHERD(4896), FRIEND_POTTERY_SHERD(18221), - @MinecraftExperimental(Requires.UPDATE_1_21) GUSTER_POTTERY_SHERD(28193), HEART_POTTERY_SHERD(17607), HEARTBREAK_POTTERY_SHERD(21108), @@ -3184,7 +3139,6 @@ public enum Material implements Keyed, Translatable { MOURNER_POTTERY_SHERD(23993), PLENTY_POTTERY_SHERD(28236), PRIZE_POTTERY_SHERD(4341), - @MinecraftExperimental(Requires.UPDATE_1_21) SCRAPE_POTTERY_SHERD(30034), SHEAF_POTTERY_SHERD(23652), SHELTER_POTTERY_SHERD(28390), @@ -3193,100 +3147,78 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) COPPER_GRATE(16221, Waterlogged.class), /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) EXPOSED_COPPER_GRATE(7783, Waterlogged.class), /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WEATHERED_COPPER_GRATE(24954, Waterlogged.class), /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) OXIDIZED_COPPER_GRATE(14122, Waterlogged.class), /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_COPPER_GRATE(11230, Waterlogged.class), /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_EXPOSED_COPPER_GRATE(20520, Waterlogged.class), /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_WEATHERED_COPPER_GRATE(16533, Waterlogged.class), /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_OXIDIZED_COPPER_GRATE(32010, Waterlogged.class), /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) COPPER_BULB(21370, CopperBulb.class), /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) EXPOSED_COPPER_BULB(11944, CopperBulb.class), /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WEATHERED_COPPER_BULB(10800, CopperBulb.class), /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) OXIDIZED_COPPER_BULB(22421, CopperBulb.class), /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_COPPER_BULB(23756, CopperBulb.class), /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_EXPOSED_COPPER_BULB(5530, CopperBulb.class), /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_WEATHERED_COPPER_BULB(13239, CopperBulb.class), /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) WAXED_OXIDIZED_COPPER_BULB(26892, CopperBulb.class), /** * BlockData: {@link TrialSpawner} */ - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_SPAWNER(19902, TrialSpawner.class), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_KEY(12725), - @MinecraftExperimental(Requires.UPDATE_1_21) OMINOUS_TRIAL_KEY(4986), /** * BlockData: {@link Vault} */ - @MinecraftExperimental(Requires.UPDATE_1_21) VAULT(6288, Vault.class), - @MinecraftExperimental(Requires.UPDATE_1_21) OMINOUS_BOTTLE(26321), - @MinecraftExperimental(Requires.UPDATE_1_21) BREEZE_ROD(14281), /** * BlockData: {@link Levelled} diff --git a/paper-api/src/main/java/org/bukkit/MinecraftExperimental.java b/paper-api/src/main/java/org/bukkit/MinecraftExperimental.java index b6f4810e38..a86b87e4c3 100644 --- a/paper-api/src/main/java/org/bukkit/MinecraftExperimental.java +++ b/paper-api/src/main/java/org/bukkit/MinecraftExperimental.java @@ -47,6 +47,5 @@ public @interface MinecraftExperimental { @ApiStatus.Internal public enum Requires { - UPDATE_1_21 } } diff --git a/paper-api/src/main/java/org/bukkit/Particle.java b/paper-api/src/main/java/org/bukkit/Particle.java index 3d636cb7f2..62a8bb1885 100644 --- a/paper-api/src/main/java/org/bukkit/Particle.java +++ b/paper-api/src/main/java/org/bukkit/Particle.java @@ -1,7 +1,6 @@ package org.bukkit; import com.google.common.base.Preconditions; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.block.data.BlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -129,34 +128,21 @@ public enum Particle implements Keyed { EGG_CRACK("egg_crack"), DUST_PLUME("dust_plume"), WHITE_SMOKE("white_smoke"), - @MinecraftExperimental(Requires.UPDATE_1_21) GUST("gust"), - @MinecraftExperimental(Requires.UPDATE_1_21) SMALL_GUST("small_gust"), - @MinecraftExperimental(Requires.UPDATE_1_21) GUST_EMITTER_LARGE("gust_emitter_large"), - @MinecraftExperimental(Requires.UPDATE_1_21) GUST_EMITTER_SMALL("gust_emitter_small"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_SPAWNER_DETECTION("trial_spawner_detection"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_SPAWNER_DETECTION_OMINOUS("trial_spawner_detection_ominous"), - @MinecraftExperimental(Requires.UPDATE_1_21) VAULT_CONNECTION("vault_connection"), - @MinecraftExperimental(Requires.UPDATE_1_21) INFESTED("infested"), - @MinecraftExperimental(Requires.UPDATE_1_21) ITEM_COBWEB("item_cobweb"), /** * Uses {@link BlockData} as DataType */ - @MinecraftExperimental(Requires.UPDATE_1_21) DUST_PILLAR("dust_pillar", BlockData.class), - @MinecraftExperimental(Requires.UPDATE_1_21) OMINOUS_SPAWNING("ominous_spawning"), - @MinecraftExperimental(Requires.UPDATE_1_21) RAID_OMEN("raid_omen"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_OMEN("trial_omen"), /** * Uses {@link BlockData} as DataType diff --git a/paper-api/src/main/java/org/bukkit/Registry.java b/paper-api/src/main/java/org/bukkit/Registry.java index e723bafe37..f1a7f3b3e2 100644 --- a/paper-api/src/main/java/org/bukkit/Registry.java +++ b/paper-api/src/main/java/org/bukkit/Registry.java @@ -236,6 +236,13 @@ public interface Registry extends Iterable { */ @ApiStatus.Experimental Registry DAMAGE_TYPE = Objects.requireNonNull(Bukkit.getRegistry(DamageType.class), "No registry present for DamageType. This is a bug."); + /** + * Jukebox songs. + * + * @see JukeboxSong + */ + @ApiStatus.Experimental + Registry JUKEBOX_SONG = Objects.requireNonNull(Bukkit.getRegistry(JukeboxSong.class), "No registry present for JukeboxSong. This is a bug."); /** * Villager profession. * diff --git a/paper-api/src/main/java/org/bukkit/Server.java b/paper-api/src/main/java/org/bukkit/Server.java index bea7a3ccb8..a422f88026 100644 --- a/paper-api/src/main/java/org/bukkit/Server.java +++ b/paper-api/src/main/java/org/bukkit/Server.java @@ -58,6 +58,7 @@ import org.bukkit.scoreboard.Criteria; import org.bukkit.scoreboard.ScoreboardManager; import org.bukkit.structure.StructureManager; import org.bukkit.util.CachedServerIcon; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -1438,6 +1439,15 @@ public interface Server extends PluginMessageRecipient { */ void setMotd(@NotNull String motd); + /** + * Gets the server links which will be sent to clients + * + * @return the server's links + */ + @NotNull + @ApiStatus.Experimental + ServerLinks getServerLinks(); + /** * Gets the default message that is displayed when the server is stopped. * diff --git a/paper-api/src/main/java/org/bukkit/ServerLinks.java b/paper-api/src/main/java/org/bukkit/ServerLinks.java new file mode 100644 index 0000000000..18a5319448 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/ServerLinks.java @@ -0,0 +1,129 @@ +package org.bukkit; + +import java.net.URI; +import java.util.List; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Represents a collections of links which may be sent to a client. + */ +@ApiStatus.Experimental +public interface ServerLinks { + + /** + * Gets the link of a given type, if it exists. + * + * @param type link type + * @return link or null + */ + @Nullable + ServerLink getLink(@NotNull Type type); + + /** + * Gets an immutable list of all links. + * + * @return immutable list + */ + @NotNull + List getLinks(); + + /** + * Adds the given link, overwriting the first link of the same type if + * already set. + * + * @param type link type + * @param url link url + * @return the added link + */ + @NotNull + ServerLink setLink(@NotNull Type type, @NotNull URI url); + + /** + * Adds the given link to the list of links. + * + * @param type link type + * @param url link url + * @return the added link + */ + @NotNull + ServerLink addLink(@NotNull Type type, @NotNull URI url); + + /** + * Adds the given link to the list of links. + * + * @param displayName link name / display text + * @param url link url + * @return the added link + */ + @NotNull + ServerLink addLink(@NotNull String displayName, @NotNull URI url); + + /** + * Removes the given link. + * + * @param link the link to remove + * @return if the link existed and was removed + */ + boolean removeLink(@NotNull ServerLink link); + + /** + * Returns a copy of this link collection, unassociated from the server. + * + * @return copied links + */ + @NotNull + ServerLinks copy(); + + /** + * Represents a server link. + */ + public interface ServerLink { + + /** + * Gets the type of this link if it is a known special type. + * + * @return type or null + */ + @Nullable + Type getType(); + + /** + * Gets the display name/text of this link. + * + * @return display name + */ + @NotNull + String getDisplayName(); + + /** + * Gets the url of this link. + * + * @return link url + */ + @NotNull + URI getUrl(); + } + + /** + * Represents a known type of link which will be translated by the client + * and may have special functionality. + */ + public enum Type { + + /** + * Bug report links which may appear on disconnect/crash screens. + */ + REPORT_BUG, + COMMUNITY_GUIDELINES, + SUPPORT, + STATUS, + FEEDBACK, + COMMUNITY, + WEBSITE, + FORUMS, + NEWS, + ANNOUNCEMENTS; + } +} diff --git a/paper-api/src/main/java/org/bukkit/ServerTickManager.java b/paper-api/src/main/java/org/bukkit/ServerTickManager.java index aed9e09772..56e26c0169 100644 --- a/paper-api/src/main/java/org/bukkit/ServerTickManager.java +++ b/paper-api/src/main/java/org/bukkit/ServerTickManager.java @@ -1,7 +1,6 @@ package org.bukkit; import org.bukkit.entity.Entity; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -11,7 +10,6 @@ import org.jetbrains.annotations.NotNull; * * @see Tick Command */ -@ApiStatus.Experimental public interface ServerTickManager { /** diff --git a/paper-api/src/main/java/org/bukkit/Sound.java b/paper-api/src/main/java/org/bukkit/Sound.java index 72260e6284..f4d7efee38 100644 --- a/paper-api/src/main/java/org/bukkit/Sound.java +++ b/paper-api/src/main/java/org/bukkit/Sound.java @@ -1,6 +1,5 @@ package org.bukkit; -import org.bukkit.MinecraftExperimental.Requires; import org.jetbrains.annotations.NotNull; /** @@ -220,41 +219,25 @@ public enum Sound implements Keyed { BLOCK_CONDUIT_ATTACK_TARGET("block.conduit.attack.target"), BLOCK_CONDUIT_DEACTIVATE("block.conduit.deactivate"), BLOCK_COPPER_BREAK("block.copper.break"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_BULB_BREAK("block.copper_bulb.break"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_BULB_FALL("block.copper_bulb.fall"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_BULB_HIT("block.copper_bulb.hit"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_BULB_PLACE("block.copper_bulb.place"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_BULB_STEP("block.copper_bulb.step"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_BULB_TURN_OFF("block.copper_bulb.turn_off"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_BULB_TURN_ON("block.copper_bulb.turn_on"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_DOOR_CLOSE("block.copper_door.close"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_DOOR_OPEN("block.copper_door.open"), BLOCK_COPPER_FALL("block.copper.fall"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_GRATE_BREAK("block.copper_grate.break"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_GRATE_FALL("block.copper_grate.fall"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_GRATE_HIT("block.copper_grate.hit"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_GRATE_PLACE("block.copper_grate.place"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_GRATE_STEP("block.copper_grate.step"), BLOCK_COPPER_HIT("block.copper.hit"), BLOCK_COPPER_PLACE("block.copper.place"), BLOCK_COPPER_STEP("block.copper.step"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_TRAPDOOR_CLOSE("block.copper_trapdoor.close"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_COPPER_TRAPDOOR_OPEN("block.copper_trapdoor.open"), BLOCK_CORAL_BLOCK_BREAK("block.coral_block.break"), BLOCK_CORAL_BLOCK_FALL("block.coral_block.fall"), @@ -360,15 +343,10 @@ public enum Sound implements Keyed { BLOCK_HANGING_SIGN_PLACE("block.hanging_sign.place"), BLOCK_HANGING_SIGN_STEP("block.hanging_sign.step"), BLOCK_HANGING_SIGN_WAXED_INTERACT_FAIL("block.hanging_sign.waxed_interact_fail"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_HEAVY_CORE_BREAK("block.heavy_core.break"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_HEAVY_CORE_FALL("block.heavy_core.fall"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_HEAVY_CORE_HIT("block.heavy_core.hit"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_HEAVY_CORE_PLACE("block.heavy_core.place"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_HEAVY_CORE_STEP("block.heavy_core.step"), BLOCK_HONEY_BLOCK_BREAK("block.honey_block.break"), BLOCK_HONEY_BLOCK_FALL("block.honey_block.fall"), @@ -546,15 +524,10 @@ public enum Sound implements Keyed { BLOCK_POLISHED_DEEPSLATE_HIT("block.polished_deepslate.hit"), BLOCK_POLISHED_DEEPSLATE_PLACE("block.polished_deepslate.place"), BLOCK_POLISHED_DEEPSLATE_STEP("block.polished_deepslate.step"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_POLISHED_TUFF_BREAK("block.polished_tuff.break"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_POLISHED_TUFF_FALL("block.polished_tuff.fall"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_POLISHED_TUFF_HIT("block.polished_tuff.hit"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_POLISHED_TUFF_PLACE("block.polished_tuff.place"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_POLISHED_TUFF_STEP("block.polished_tuff.step"), BLOCK_PORTAL_AMBIENT("block.portal.ambient"), BLOCK_PORTAL_TRAVEL("block.portal.travel"), @@ -699,82 +672,49 @@ public enum Sound implements Keyed { BLOCK_SWEET_BERRY_BUSH_BREAK("block.sweet_berry_bush.break"), BLOCK_SWEET_BERRY_BUSH_PICK_BERRIES("block.sweet_berry_bush.pick_berries"), BLOCK_SWEET_BERRY_BUSH_PLACE("block.sweet_berry_bush.place"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TRIAL_SPAWNER_ABOUT_TO_SPAWN_ITEM("block.trial_spawner.about_to_spawn_item"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TRIAL_SPAWNER_AMBIENT("block.trial_spawner.ambient"), - @MinecraftExperimental(Requires.UPDATE_1_21) - BLOCK_TRIAL_SPAWNER_AMBIENT_CHARGED("block.trial_spawner.ambient_charged"), - @MinecraftExperimental(Requires.UPDATE_1_21) + BLOCK_TRIAL_SPAWNER_AMBIENT_OMINOUS("block.trial_spawner.ambient_ominous"), BLOCK_TRIAL_SPAWNER_BREAK("block.trial_spawner.break"), - @MinecraftExperimental(Requires.UPDATE_1_21) - BLOCK_TRIAL_SPAWNER_CHARGE_ACTIVATE("block.trial_spawner.charge_activate"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TRIAL_SPAWNER_CLOSE_SHUTTER("block.trial_spawner.close_shutter"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TRIAL_SPAWNER_DETECT_PLAYER("block.trial_spawner.detect_player"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TRIAL_SPAWNER_EJECT_ITEM("block.trial_spawner.eject_item"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TRIAL_SPAWNER_FALL("block.trial_spawner.fall"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TRIAL_SPAWNER_HIT("block.trial_spawner.hit"), - @MinecraftExperimental(Requires.UPDATE_1_21) + BLOCK_TRIAL_SPAWNER_OMINOUS_ACTIVATE("block.trial_spawner.ominous_activate"), BLOCK_TRIAL_SPAWNER_OPEN_SHUTTER("block.trial_spawner.open_shutter"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TRIAL_SPAWNER_PLACE("block.trial_spawner.place"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TRIAL_SPAWNER_SPAWN_ITEM("block.trial_spawner.spawn_item"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TRIAL_SPAWNER_SPAWN_ITEM_BEGIN("block.trial_spawner.spawn_item_begin"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TRIAL_SPAWNER_SPAWN_MOB("block.trial_spawner.spawn_mob"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TRIAL_SPAWNER_STEP("block.trial_spawner.step"), BLOCK_TRIPWIRE_ATTACH("block.tripwire.attach"), BLOCK_TRIPWIRE_CLICK_OFF("block.tripwire.click_off"), BLOCK_TRIPWIRE_CLICK_ON("block.tripwire.click_on"), BLOCK_TRIPWIRE_DETACH("block.tripwire.detach"), BLOCK_TUFF_BREAK("block.tuff.break"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TUFF_BRICKS_BREAK("block.tuff_bricks.break"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TUFF_BRICKS_FALL("block.tuff_bricks.fall"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TUFF_BRICKS_HIT("block.tuff_bricks.hit"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TUFF_BRICKS_PLACE("block.tuff_bricks.place"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_TUFF_BRICKS_STEP("block.tuff_bricks.step"), BLOCK_TUFF_FALL("block.tuff.fall"), BLOCK_TUFF_HIT("block.tuff.hit"), BLOCK_TUFF_PLACE("block.tuff.place"), BLOCK_TUFF_STEP("block.tuff.step"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_VAULT_ACTIVATE("block.vault.activate"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_VAULT_AMBIENT("block.vault.ambient"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_VAULT_BREAK("block.vault.break"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_VAULT_CLOSE_SHUTTER("block.vault.close_shutter"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_VAULT_DEACTIVATE("block.vault.deactivate"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_VAULT_EJECT_ITEM("block.vault.eject_item"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_VAULT_FALL("block.vault.fall"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_VAULT_HIT("block.vault.hit"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_VAULT_INSERT_ITEM("block.vault.insert_item"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_VAULT_INSERT_ITEM_FAIL("block.vault.insert_item_fail"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_VAULT_OPEN_SHUTTER("block.vault.open_shutter"), - @MinecraftExperimental(Requires.UPDATE_1_21) BLOCK_VAULT_PLACE("block.vault.place"), - @MinecraftExperimental(Requires.UPDATE_1_21) + BLOCK_VAULT_REJECT_REWARDED_PLAYER("block.vault.reject_rewarded_player"), BLOCK_VAULT_STEP("block.vault.step"), BLOCK_VINE_BREAK("block.vine.break"), BLOCK_VINE_FALL("block.vine.fall"), @@ -874,41 +814,23 @@ 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(Requires.UPDATE_1_21) ENTITY_BOGGED_AMBIENT("entity.bogged.ambient"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BOGGED_DEATH("entity.bogged.death"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BOGGED_HURT("entity.bogged.hurt"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BOGGED_SHEAR("entity.bogged.shear"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BOGGED_STEP("entity.bogged.step"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BREEZE_CHARGE("entity.breeze.charge"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BREEZE_DEATH("entity.breeze.death"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BREEZE_DEFLECT("entity.breeze.deflect"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BREEZE_HURT("entity.breeze.hurt"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BREEZE_IDLE_AIR("entity.breeze.idle_air"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BREEZE_IDLE_GROUND("entity.breeze.idle_ground"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BREEZE_INHALE("entity.breeze.inhale"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BREEZE_JUMP("entity.breeze.jump"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BREEZE_LAND("entity.breeze.land"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BREEZE_SHOOT("entity.breeze.shoot"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BREEZE_SLIDE("entity.breeze.slide"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BREEZE_WHIRL("entity.breeze.whirl"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_BREEZE_WIND_BURST("entity.breeze.wind_burst"), ENTITY_CAMEL_AMBIENT("entity.camel.ambient"), ENTITY_CAMEL_DASH("entity.camel.dash"), @@ -1207,9 +1129,7 @@ public enum Sound implements Keyed { ENTITY_PARROT_FLY("entity.parrot.fly"), ENTITY_PARROT_HURT("entity.parrot.hurt"), ENTITY_PARROT_IMITATE_BLAZE("entity.parrot.imitate.blaze"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_PARROT_IMITATE_BOGGED("entity.parrot.imitate.bogged"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_PARROT_IMITATE_BREEZE("entity.parrot.imitate.breeze"), ENTITY_PARROT_IMITATE_CREEPER("entity.parrot.imitate.creeper"), ENTITY_PARROT_IMITATE_DROWNED("entity.parrot.imitate.drowned"), @@ -1488,9 +1408,7 @@ public enum Sound implements Keyed { ENTITY_WARDEN_SONIC_CHARGE("entity.warden.sonic_charge"), ENTITY_WARDEN_STEP("entity.warden.step"), ENTITY_WARDEN_TENDRIL_CLICKS("entity.warden.tendril_clicks"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_WIND_CHARGE_THROW("entity.wind_charge.throw"), - @MinecraftExperimental(Requires.UPDATE_1_21) ENTITY_WIND_CHARGE_WIND_BURST("entity.wind_charge.wind_burst"), ENTITY_WITCH_AMBIENT("entity.witch.ambient"), ENTITY_WITCH_CELEBRATE("entity.witch.celebrate"), @@ -1546,11 +1464,8 @@ public enum Sound implements Keyed { ENTITY_ZOMBIFIED_PIGLIN_ANGRY("entity.zombified_piglin.angry"), ENTITY_ZOMBIFIED_PIGLIN_DEATH("entity.zombified_piglin.death"), ENTITY_ZOMBIFIED_PIGLIN_HURT("entity.zombified_piglin.hurt"), - @MinecraftExperimental(Requires.UPDATE_1_21) EVENT_MOB_EFFECT_BAD_OMEN("event.mob_effect.bad_omen"), - @MinecraftExperimental(Requires.UPDATE_1_21) EVENT_MOB_EFFECT_RAID_OMEN("event.mob_effect.raid_omen"), - @MinecraftExperimental(Requires.UPDATE_1_21) EVENT_MOB_EFFECT_TRIAL_OMEN("event.mob_effect.trial_omen"), EVENT_RAID_HORN("event.raid.horn"), INTENTIONALLY_EMPTY("intentionally_empty"), @@ -1623,14 +1538,10 @@ public enum Sound implements Keyed { ITEM_HONEY_BOTTLE_DRINK("item.honey_bottle.drink"), ITEM_INK_SAC_USE("item.ink_sac.use"), ITEM_LODESTONE_COMPASS_LOCK("item.lodestone_compass.lock"), - @MinecraftExperimental(Requires.UPDATE_1_21) ITEM_MACE_SMASH_AIR("item.mace.smash_air"), - @MinecraftExperimental(Requires.UPDATE_1_21) ITEM_MACE_SMASH_GROUND("item.mace.smash_ground"), - @MinecraftExperimental(Requires.UPDATE_1_21) ITEM_MACE_SMASH_GROUND_HEAVY("item.mace.smash_ground_heavy"), ITEM_NETHER_WART_PLANT("item.nether_wart.plant"), - @MinecraftExperimental(Requires.UPDATE_1_21) ITEM_OMINOUS_BOTTLE_DISPOSE("item.ominous_bottle.dispose"), ITEM_SHIELD_BLOCK("item.shield.block"), ITEM_SHIELD_BREAK("item.shield.break"), @@ -1646,13 +1557,9 @@ public enum Sound implements Keyed { ITEM_TRIDENT_RIPTIDE_3("item.trident.riptide_3"), ITEM_TRIDENT_THROW("item.trident.throw"), ITEM_TRIDENT_THUNDER("item.trident.thunder"), - @MinecraftExperimental(Requires.UPDATE_1_21) ITEM_WOLF_ARMOR_BREAK("item.wolf_armor.break"), - @MinecraftExperimental(Requires.UPDATE_1_21) ITEM_WOLF_ARMOR_CRACK("item.wolf_armor.crack"), - @MinecraftExperimental(Requires.UPDATE_1_21) ITEM_WOLF_ARMOR_DAMAGE("item.wolf_armor.damage"), - @MinecraftExperimental(Requires.UPDATE_1_21) ITEM_WOLF_ARMOR_REPAIR("item.wolf_armor.repair"), MUSIC_CREATIVE("music.creative"), MUSIC_CREDITS("music.credits"), @@ -1662,11 +1569,14 @@ public enum Sound implements Keyed { MUSIC_DISC_BLOCKS("music_disc.blocks"), MUSIC_DISC_CAT("music_disc.cat"), MUSIC_DISC_CHIRP("music_disc.chirp"), + MUSIC_DISC_CREATOR("music_disc.creator"), + MUSIC_DISC_CREATOR_MUSIC_BOX("music_disc.creator_music_box"), MUSIC_DISC_FAR("music_disc.far"), MUSIC_DISC_MALL("music_disc.mall"), MUSIC_DISC_MELLOHI("music_disc.mellohi"), MUSIC_DISC_OTHERSIDE("music_disc.otherside"), MUSIC_DISC_PIGSTEP("music_disc.pigstep"), + MUSIC_DISC_PRECIPICE("music_disc.precipice"), MUSIC_DISC_RELIC("music_disc.relic"), MUSIC_DISC_STAL("music_disc.stal"), MUSIC_DISC_STRAD("music_disc.strad"), diff --git a/paper-api/src/main/java/org/bukkit/Tag.java b/paper-api/src/main/java/org/bukkit/Tag.java index 54861b283e..e2a9b7db56 100644 --- a/paper-api/src/main/java/org/bukkit/Tag.java +++ b/paper-api/src/main/java/org/bukkit/Tag.java @@ -58,6 +58,10 @@ public interface Tag extends Keyed { * Vanilla block tag representing all wooden doors. */ Tag WOODEN_DOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_doors"), Material.class); + /** + * Vanilla block tag representing all doors which can be opened by mobs. + */ + Tag MOB_INTERACTABLE_DOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mob_interactable_doors"), Material.class); /** * Vanilla block tag representing all wooden stairs. */ @@ -771,6 +775,10 @@ public interface Tag extends Keyed { * Vanilla block tag representing solid blocks which do not block hopper operation. */ Tag DOES_NOT_BLOCK_HOPPERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("does_not_block_hoppers"), Material.class); + /** + * Vanilla block tag representing all blocks that resemble air. + */ + Tag AIR = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("air"), Material.class); /** * Key for the built in item registry. */ @@ -933,10 +941,6 @@ public interface Tag extends Keyed { * Vanilla item tag representing all fish items. */ Tag ITEMS_FISHES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("fishes"), Material.class); - /** - * Vanilla item tag representing all music disc items. - */ - Tag ITEMS_MUSIC_DISCS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("music_discs"), Material.class); /** * Vanilla item tag representing all music disc items dropped by creepers. */ diff --git a/paper-api/src/main/java/org/bukkit/attribute/Attribute.java b/paper-api/src/main/java/org/bukkit/attribute/Attribute.java index 3a7f6fd862..ef9c998691 100644 --- a/paper-api/src/main/java/org/bukkit/attribute/Attribute.java +++ b/paper-api/src/main/java/org/bukkit/attribute/Attribute.java @@ -83,6 +83,26 @@ public enum Attribute implements Keyed, Translatable { * Strength with which an Entity will jump. */ GENERIC_JUMP_STRENGTH("generic.jump_strength"), + /** + * How long an entity remains burning after ingition. + */ + GENERIC_BURNING_TIME("generic.burning_time"), + /** + * Resistance to knockback from explosions. + */ + GENERIC_EXPLOSION_KNOCKBACK_RESISTANCE("generic.explosion_knockback_resistance"), + /** + * Movement speed through difficult terrain. + */ + GENERIC_MOVEMENT_EFFICIENCY("generic.movement_efficiency"), + /** + * Oxygen use underwater. + */ + GENERIC_OXYGEN_BONUS("generic.oxygen_bonus"), + /** + * Movement speed through water. + */ + GENERIC_WATER_MOVEMENT_EFFICIENCY("generic.water_movement_efficiency"), /** * The block reach distance of a Player. */ @@ -95,6 +115,22 @@ public enum Attribute implements Keyed, Translatable { * Block break speed of a Player. */ PLAYER_BLOCK_BREAK_SPEED("player.block_break_speed"), + /** + * Mining speed for correct tools. + */ + PLAYER_MINING_EFFICIENCY("player.mining_efficiency"), + /** + * Sneaking speed. + */ + PLAYER_SNEAKING_SPEED("player.sneaking_speed"), + /** + * Underwater mining speed. + */ + PLAYER_SUBMERGED_MINING_SPEED("player.submerged_mining_speed"), + /** + * Sweeping damage. + */ + PLAYER_SWEEPING_DAMAGE_RATIO("player.sweeping_damage_ratio"), /** * Chance of a zombie to spawn reinforcements. */ diff --git a/paper-api/src/main/java/org/bukkit/attribute/AttributeModifier.java b/paper-api/src/main/java/org/bukkit/attribute/AttributeModifier.java index 9b47cbb933..d66502c9df 100644 --- a/paper-api/src/main/java/org/bukkit/attribute/AttributeModifier.java +++ b/paper-api/src/main/java/org/bukkit/attribute/AttributeModifier.java @@ -6,6 +6,8 @@ import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.UUID; +import org.bukkit.Keyed; +import org.bukkit.NamespacedKey; import org.bukkit.configuration.serialization.ConfigurationSerializable; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.EquipmentSlotGroup; @@ -16,33 +18,38 @@ import org.jetbrains.annotations.Nullable; /** * Concrete implementation of an attribute modifier. */ -public class AttributeModifier implements ConfigurationSerializable { +public class AttributeModifier implements ConfigurationSerializable, Keyed { - private final UUID uuid; - private final String name; + private final NamespacedKey key; private final double amount; private final Operation operation; private final EquipmentSlotGroup slot; + @Deprecated public AttributeModifier(@NotNull String name, double amount, @NotNull Operation operation) { this(UUID.randomUUID(), name, amount, operation); } + @Deprecated public AttributeModifier(@NotNull UUID uuid, @NotNull String name, double amount, @NotNull Operation operation) { this(uuid, name, amount, operation, (EquipmentSlot) null); } + @Deprecated public AttributeModifier(@NotNull UUID uuid, @NotNull String name, double amount, @NotNull Operation operation, @Nullable EquipmentSlot slot) { this(uuid, name, amount, operation, (slot) == null ? EquipmentSlotGroup.ANY : slot.getGroup()); } + @Deprecated public AttributeModifier(@NotNull UUID uuid, @NotNull String name, double amount, @NotNull Operation operation, @NotNull EquipmentSlotGroup slot) { - Preconditions.checkArgument(uuid != null, "UUID cannot be null"); - Preconditions.checkArgument(name != null, "Name cannot be null"); + this(NamespacedKey.fromString(uuid.toString()), amount, operation, slot); + } + + public AttributeModifier(@NotNull NamespacedKey key, double amount, @NotNull Operation operation, @NotNull EquipmentSlotGroup slot) { + Preconditions.checkArgument(key != null, "Key cannot be null"); Preconditions.checkArgument(operation != null, "Operation cannot be null"); Preconditions.checkArgument(slot != null, "EquipmentSlotGroup cannot be null"); - this.uuid = uuid; - this.name = name; + this.key = key; this.amount = amount; this.operation = operation; this.slot = slot; @@ -52,10 +59,19 @@ public class AttributeModifier implements ConfigurationSerializable { * Get the unique ID for this modifier. * * @return unique id + * @see #getKey() + * @deprecated attributes are now identified by keys */ @NotNull + @Deprecated public UUID getUniqueId() { - return uuid; + return UUID.fromString(getKey().toString()); + } + + @NotNull + @Override + public NamespacedKey getKey() { + return key; } /** @@ -65,7 +81,7 @@ public class AttributeModifier implements ConfigurationSerializable { */ @NotNull public String getName() { - return name; + return key.getKey(); } /** @@ -115,8 +131,7 @@ public class AttributeModifier implements ConfigurationSerializable { @Override public Map serialize() { Map data = new HashMap(); - data.put("uuid", uuid.toString()); - data.put("name", name); + data.put("key", key.toString()); data.put("operation", operation.ordinal()); data.put("amount", amount); if (slot != null && slot != EquipmentSlotGroup.ANY) { @@ -132,14 +147,13 @@ public class AttributeModifier implements ConfigurationSerializable { } AttributeModifier mod = (AttributeModifier) other; boolean slots = (this.slot != null ? (this.slot == mod.slot) : mod.slot == null); - return this.uuid.equals(mod.uuid) && this.name.equals(mod.name) && this.amount == mod.amount && this.operation == mod.operation && slots; + return this.key.equals(mod.key) && this.amount == mod.amount && this.operation == mod.operation && slots; } @Override public int hashCode() { int hash = 5; - hash = 17 * hash + Objects.hashCode(this.uuid); - hash = 17 * hash + Objects.hashCode(this.name); + hash = 17 * hash + Objects.hashCode(this.key); hash = 17 * hash + (int) (Double.doubleToLongBits(this.amount) ^ (Double.doubleToLongBits(this.amount) >>> 32)); hash = 17 * hash + Objects.hashCode(this.operation); hash = 17 * hash + Objects.hashCode(this.slot); @@ -149,8 +163,7 @@ public class AttributeModifier implements ConfigurationSerializable { @Override public String toString() { return "AttributeModifier{" - + "uuid=" + this.uuid.toString() - + ", name=" + this.name + + "key=" + this.key.toString() + ", operation=" + this.operation.name() + ", amount=" + this.amount + ", slot=" + (this.slot != null ? this.slot.toString() : "") @@ -159,6 +172,12 @@ public class AttributeModifier implements ConfigurationSerializable { @NotNull public static AttributeModifier deserialize(@NotNull Map args) { + NamespacedKey key; + if (args.containsKey("uuid")) { + key = NamespacedKey.fromString((String) args.get("uuid")); + } else { + key = NamespacedKey.fromString((String) args.get("key")); + } if (args.containsKey("slot")) { EquipmentSlotGroup slotGroup = EquipmentSlotGroup.getByName(args.get("slot").toString().toLowerCase(Locale.ROOT)); if (slotGroup == null) { @@ -170,9 +189,9 @@ public class AttributeModifier implements ConfigurationSerializable { } } - return new AttributeModifier(UUID.fromString((String) args.get("uuid")), (String) args.get("name"), NumberConversions.toDouble(args.get("amount")), Operation.values()[NumberConversions.toInt(args.get("operation"))], slotGroup); + return new AttributeModifier(key, NumberConversions.toDouble(args.get("amount")), Operation.values()[NumberConversions.toInt(args.get("operation"))], slotGroup); } - return new AttributeModifier(UUID.fromString((String) args.get("uuid")), (String) args.get("name"), NumberConversions.toDouble(args.get("amount")), Operation.values()[NumberConversions.toInt(args.get("operation"))]); + return new AttributeModifier(key, NumberConversions.toDouble(args.get("amount")), Operation.values()[NumberConversions.toInt(args.get("operation"))], EquipmentSlotGroup.ANY); } /** diff --git a/paper-api/src/main/java/org/bukkit/block/BlockType.java b/paper-api/src/main/java/org/bukkit/block/BlockType.java index 2fd6f52ad6..4288bebf69 100644 --- a/paper-api/src/main/java/org/bukkit/block/BlockType.java +++ b/paper-api/src/main/java/org/bukkit/block/BlockType.java @@ -4,8 +4,6 @@ import com.google.common.base.Preconditions; import java.util.function.Consumer; import org.bukkit.Keyed; import org.bukkit.Material; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.bukkit.Translatable; @@ -2877,68 +2875,42 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Slab} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed TUFF_SLAB = getBlockType("tuff_slab"); /** * BlockData: {@link Stairs} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed TUFF_STAIRS = getBlockType("tuff_stairs"); /** * BlockData: {@link Wall} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed TUFF_WALL = getBlockType("tuff_wall"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed POLISHED_TUFF = getBlockType("polished_tuff"); /** * BlockData: {@link Slab} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed POLISHED_TUFF_SLAB = getBlockType("polished_tuff_slab"); /** * BlockData: {@link Stairs} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed POLISHED_TUFF_STAIRS = getBlockType("polished_tuff_stairs"); /** * BlockData: {@link Wall} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed POLISHED_TUFF_WALL = getBlockType("polished_tuff_wall"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed CHISELED_TUFF = getBlockType("chiseled_tuff"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed TUFF_BRICKS = getBlockType("tuff_bricks"); /** * BlockData: {@link Slab} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed TUFF_BRICK_SLAB = getBlockType("tuff_brick_slab"); /** * BlockData: {@link Stairs} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed TUFF_BRICK_STAIRS = getBlockType("tuff_brick_stairs"); /** * BlockData: {@link Wall} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed TUFF_BRICK_WALL = getBlockType("tuff_brick_wall"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed CHISELED_TUFF_BRICKS = getBlockType("chiseled_tuff_bricks"); BlockType.Typed CALCITE = getBlockType("calcite"); BlockType.Typed TINTED_GLASS = getBlockType("tinted_glass"); @@ -2974,29 +2946,13 @@ public interface BlockType extends Keyed, Translatable { BlockType.Typed WEATHERED_CUT_COPPER = getBlockType("weathered_cut_copper"); BlockType.Typed EXPOSED_CUT_COPPER = getBlockType("exposed_cut_copper"); BlockType.Typed CUT_COPPER = getBlockType("cut_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed OXIDIZED_CHISELED_COPPER = getBlockType("oxidized_chiseled_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WEATHERED_CHISELED_COPPER = getBlockType("weathered_chiseled_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed EXPOSED_CHISELED_COPPER = getBlockType("exposed_chiseled_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed CHISELED_COPPER = getBlockType("chiseled_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_OXIDIZED_CHISELED_COPPER = getBlockType("waxed_oxidized_chiseled_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_WEATHERED_CHISELED_COPPER = getBlockType("waxed_weathered_chiseled_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_EXPOSED_CHISELED_COPPER = getBlockType("waxed_exposed_chiseled_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_CHISELED_COPPER = getBlockType("waxed_chiseled_copper"); /** * BlockData: {@link Stairs} @@ -3073,194 +3029,130 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed COPPER_DOOR = getBlockType("copper_door"); /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed EXPOSED_COPPER_DOOR = getBlockType("exposed_copper_door"); /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed OXIDIZED_COPPER_DOOR = getBlockType("oxidized_copper_door"); /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WEATHERED_COPPER_DOOR = getBlockType("weathered_copper_door"); /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_COPPER_DOOR = getBlockType("waxed_copper_door"); /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_EXPOSED_COPPER_DOOR = getBlockType("waxed_exposed_copper_door"); /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_OXIDIZED_COPPER_DOOR = getBlockType("waxed_oxidized_copper_door"); /** * BlockData: {@link Door} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_WEATHERED_COPPER_DOOR = getBlockType("waxed_weathered_copper_door"); /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed COPPER_TRAPDOOR = getBlockType("copper_trapdoor"); /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed EXPOSED_COPPER_TRAPDOOR = getBlockType("exposed_copper_trapdoor"); /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed OXIDIZED_COPPER_TRAPDOOR = getBlockType("oxidized_copper_trapdoor"); /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WEATHERED_COPPER_TRAPDOOR = getBlockType("weathered_copper_trapdoor"); /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_COPPER_TRAPDOOR = getBlockType("waxed_copper_trapdoor"); /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_EXPOSED_COPPER_TRAPDOOR = getBlockType("waxed_exposed_copper_trapdoor"); /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_OXIDIZED_COPPER_TRAPDOOR = getBlockType("waxed_oxidized_copper_trapdoor"); /** * BlockData: {@link TrapDoor} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_WEATHERED_COPPER_TRAPDOOR = getBlockType("waxed_weathered_copper_trapdoor"); /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed COPPER_GRATE = getBlockType("copper_grate"); /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed EXPOSED_COPPER_GRATE = getBlockType("exposed_copper_grate"); /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WEATHERED_COPPER_GRATE = getBlockType("weathered_copper_grate"); /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed OXIDIZED_COPPER_GRATE = getBlockType("oxidized_copper_grate"); /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_COPPER_GRATE = getBlockType("waxed_copper_grate"); /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_EXPOSED_COPPER_GRATE = getBlockType("waxed_exposed_copper_grate"); /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_WEATHERED_COPPER_GRATE = getBlockType("waxed_weathered_copper_grate"); /** * BlockData: {@link Waterlogged} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_OXIDIZED_COPPER_GRATE = getBlockType("waxed_oxidized_copper_grate"); /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed COPPER_BULB = getBlockType("copper_bulb"); /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed EXPOSED_COPPER_BULB = getBlockType("exposed_copper_bulb"); /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WEATHERED_COPPER_BULB = getBlockType("weathered_copper_bulb"); /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed OXIDIZED_COPPER_BULB = getBlockType("oxidized_copper_bulb"); /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_COPPER_BULB = getBlockType("waxed_copper_bulb"); /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_EXPOSED_COPPER_BULB = getBlockType("waxed_exposed_copper_bulb"); /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_WEATHERED_COPPER_BULB = getBlockType("waxed_weathered_copper_bulb"); /** * BlockData: {@link CopperBulb} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed WAXED_OXIDIZED_COPPER_BULB = getBlockType("waxed_oxidized_copper_bulb"); /** * BlockData: {@link LightningRod} @@ -3396,14 +3288,10 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Crafter} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed CRAFTER = getBlockType("crafter"); /** * BlockData: {@link TrialSpawner} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BlockType.Typed TRIAL_SPAWNER = getBlockType("trial_spawner"); // diff --git a/paper-api/src/main/java/org/bukkit/block/Crafter.java b/paper-api/src/main/java/org/bukkit/block/Crafter.java index 05d6af1681..e004920ec1 100644 --- a/paper-api/src/main/java/org/bukkit/block/Crafter.java +++ b/paper-api/src/main/java/org/bukkit/block/Crafter.java @@ -1,7 +1,5 @@ package org.bukkit.block; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.loot.Lootable; import org.jetbrains.annotations.ApiStatus; @@ -9,7 +7,6 @@ import org.jetbrains.annotations.ApiStatus; * Represents a captured state of a crafter. */ @ApiStatus.Experimental -@MinecraftExperimental(Requires.UPDATE_1_21) public interface Crafter extends Container, Lootable { /** diff --git a/paper-api/src/main/java/org/bukkit/block/TrialSpawner.java b/paper-api/src/main/java/org/bukkit/block/TrialSpawner.java index bc29ba7eff..901fea4568 100644 --- a/paper-api/src/main/java/org/bukkit/block/TrialSpawner.java +++ b/paper-api/src/main/java/org/bukkit/block/TrialSpawner.java @@ -1,13 +1,10 @@ package org.bukkit.block; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.jetbrains.annotations.ApiStatus; /** * Represents a captured state of a trial spawner. */ -@MinecraftExperimental(Requires.UPDATE_1_21) @ApiStatus.Experimental public interface TrialSpawner extends TileState { } diff --git a/paper-api/src/main/java/org/bukkit/block/Vault.java b/paper-api/src/main/java/org/bukkit/block/Vault.java index af8a1058fe..f0c5d27f6f 100644 --- a/paper-api/src/main/java/org/bukkit/block/Vault.java +++ b/paper-api/src/main/java/org/bukkit/block/Vault.java @@ -1,13 +1,10 @@ package org.bukkit.block; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.jetbrains.annotations.ApiStatus; /** * Represents a captured state of a trial spawner. */ -@MinecraftExperimental(Requires.UPDATE_1_21) @ApiStatus.Experimental public interface Vault extends TileState { } diff --git a/paper-api/src/main/java/org/bukkit/block/banner/PatternType.java b/paper-api/src/main/java/org/bukkit/block/banner/PatternType.java index db7723e290..6a6be02872 100644 --- a/paper-api/src/main/java/org/bukkit/block/banner/PatternType.java +++ b/paper-api/src/main/java/org/bukkit/block/banner/PatternType.java @@ -3,8 +3,6 @@ package org.bukkit.block.banner; import java.util.HashMap; import java.util.Map; import org.bukkit.Keyed; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.jetbrains.annotations.Contract; @@ -53,9 +51,7 @@ public enum PatternType implements Keyed { MOJANG("moj", "mojang"), GLOBE("glb", "globe"), PIGLIN("pig", "piglin"), - @MinecraftExperimental(Requires.UPDATE_1_21) FLOW("flw", "flow"), - @MinecraftExperimental(Requires.UPDATE_1_21) GUSTER("gus", "guster"); private final String identifier; diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/CopperBulb.java b/paper-api/src/main/java/org/bukkit/block/data/type/CopperBulb.java index 27a5a60b5f..99c615cbd0 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/CopperBulb.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/CopperBulb.java @@ -1,12 +1,7 @@ package org.bukkit.block.data.type; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.block.data.Lightable; import org.bukkit.block.data.Powerable; -import org.jetbrains.annotations.ApiStatus; -@MinecraftExperimental(Requires.UPDATE_1_21) -@ApiStatus.Experimental public interface CopperBulb extends Lightable, Powerable { } diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/Crafter.java b/paper-api/src/main/java/org/bukkit/block/data/type/Crafter.java index 2c4cf1a8cd..c15fdf9e82 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/Crafter.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/Crafter.java @@ -1,10 +1,7 @@ package org.bukkit.block.data.type; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.block.data.BlockData; import org.bukkit.block.data.Powerable; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -15,8 +12,6 @@ import org.jetbrains.annotations.NotNull; *
* 'crafting' is whether crafter's mouth is open and top is glowing. */ -@ApiStatus.Experimental -@MinecraftExperimental(Requires.UPDATE_1_21) public interface Crafter extends BlockData { /** diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/TrialSpawner.java b/paper-api/src/main/java/org/bukkit/block/data/type/TrialSpawner.java index 28ef75046a..7f946cb96a 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/TrialSpawner.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/TrialSpawner.java @@ -1,9 +1,6 @@ package org.bukkit.block.data.type; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.block.data.BlockData; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -11,8 +8,6 @@ import org.jetbrains.annotations.NotNull; *
* 'ominous' indicates if the block has ominous effects. */ -@MinecraftExperimental(Requires.UPDATE_1_21) -@ApiStatus.Experimental public interface TrialSpawner extends BlockData { /** diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/Vault.java b/paper-api/src/main/java/org/bukkit/block/data/type/Vault.java index 0acb232e54..87e46dfb95 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/Vault.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/Vault.java @@ -1,9 +1,6 @@ package org.bukkit.block.data.type; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.block.data.Directional; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -11,8 +8,6 @@ import org.jetbrains.annotations.NotNull; *
* 'ominous' indicates if the block has ominous effects. */ -@MinecraftExperimental(Requires.UPDATE_1_21) -@ApiStatus.Experimental public interface Vault extends Directional { /** diff --git a/paper-api/src/main/java/org/bukkit/command/RemoteConsoleCommandSender.java b/paper-api/src/main/java/org/bukkit/command/RemoteConsoleCommandSender.java index 53656a9cbf..70f99c3c47 100644 --- a/paper-api/src/main/java/org/bukkit/command/RemoteConsoleCommandSender.java +++ b/paper-api/src/main/java/org/bukkit/command/RemoteConsoleCommandSender.java @@ -1,7 +1,6 @@ package org.bukkit.command; import java.net.SocketAddress; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; public interface RemoteConsoleCommandSender extends CommandSender { @@ -12,6 +11,5 @@ public interface RemoteConsoleCommandSender extends CommandSender { * @return the remote sender's address */ @NotNull - @ApiStatus.Experimental public SocketAddress getAddress(); } diff --git a/paper-api/src/main/java/org/bukkit/damage/DamageType.java b/paper-api/src/main/java/org/bukkit/damage/DamageType.java index 9f2d80a91e..69abda41ef 100644 --- a/paper-api/src/main/java/org/bukkit/damage/DamageType.java +++ b/paper-api/src/main/java/org/bukkit/damage/DamageType.java @@ -21,6 +21,7 @@ import org.jetbrains.annotations.NotNull; public interface DamageType extends Keyed, Translatable { public static final DamageType IN_FIRE = getDamageType("in_fire"); + public static final DamageType CAMPFIRE = getDamageType("campfire"); public static final DamageType LIGHTNING_BOLT = getDamageType("lightning_bolt"); public static final DamageType ON_FIRE = getDamageType("on_fire"); public static final DamageType LAVA = getDamageType("lava"); diff --git a/paper-api/src/main/java/org/bukkit/enchantments/Enchantment.java b/paper-api/src/main/java/org/bukkit/enchantments/Enchantment.java index f52cff3abc..80fb27d6c5 100644 --- a/paper-api/src/main/java/org/bukkit/enchantments/Enchantment.java +++ b/paper-api/src/main/java/org/bukkit/enchantments/Enchantment.java @@ -4,8 +4,6 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import java.util.Locale; import org.bukkit.Keyed; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.bukkit.Translatable; @@ -198,19 +196,16 @@ public abstract class Enchantment implements Keyed, Translatable { /** * Increases fall damage of maces */ - @MinecraftExperimental(Requires.UPDATE_1_21) public static final Enchantment DENSITY = getEnchantment("density"); /** * Reduces armor effectiveness against maces */ - @MinecraftExperimental(Requires.UPDATE_1_21) public static final Enchantment BREACH = getEnchantment("breach"); /** * Emits wind burst upon hitting enemy */ - @MinecraftExperimental(Requires.UPDATE_1_21) public static final Enchantment WIND_BURST = getEnchantment("wind_burst"); /** @@ -284,7 +279,9 @@ public abstract class Enchantment implements Keyed, Translatable { * fishing. * * @return true if the enchantment is a treasure enchantment + * @deprecated enchantment types are now managed by tags */ + @Deprecated public abstract boolean isTreasure(); /** diff --git a/paper-api/src/main/java/org/bukkit/entity/AbstractArrow.java b/paper-api/src/main/java/org/bukkit/entity/AbstractArrow.java index 9a0a1fa4b7..4d99382496 100644 --- a/paper-api/src/main/java/org/bukkit/entity/AbstractArrow.java +++ b/paper-api/src/main/java/org/bukkit/entity/AbstractArrow.java @@ -17,14 +17,20 @@ public interface AbstractArrow extends Projectile { * of the bow that shot it. * * @return the knockback strength value + * @see #getWeapon() + * @deprecated a function of the firing weapon */ + @Deprecated public int getKnockbackStrength(); /** * Sets the knockback strength for an arrow. * * @param knockbackStrength the knockback strength value + * @see #setWeapon(org.bukkit.inventory.ItemStack) + * @deprecated a function of the firing weapon */ + @Deprecated public void setKnockbackStrength(int knockbackStrength); /** @@ -123,7 +129,10 @@ public interface AbstractArrow extends Projectile { * Sets if this arrow was shot from a crossbow. * * @param shotFromCrossbow if shot from a crossbow + * @see #setWeapon(org.bukkit.inventory.ItemStack) + * @deprecated a function of the firing weapon instead */ + @Deprecated public void setShotFromCrossbow(boolean shotFromCrossbow); /** @@ -143,6 +152,23 @@ public interface AbstractArrow extends Projectile { @ApiStatus.Experimental public void setItem(@NotNull ItemStack item); + /** + * Gets the ItemStack which fired this arrow. + * + * @return The firing ItemStack + */ + @NotNull + @ApiStatus.Experimental + public ItemStack getWeapon(); + + /** + * Sets the ItemStack which fired this arrow. + * + * @param item The firing ItemStack + */ + @ApiStatus.Experimental + public void setWeapon(@NotNull ItemStack item); + /** * Represents the pickup status of this arrow. */ diff --git a/paper-api/src/main/java/org/bukkit/entity/AbstractWindCharge.java b/paper-api/src/main/java/org/bukkit/entity/AbstractWindCharge.java index 6944005639..60fbacee26 100644 --- a/paper-api/src/main/java/org/bukkit/entity/AbstractWindCharge.java +++ b/paper-api/src/main/java/org/bukkit/entity/AbstractWindCharge.java @@ -1,13 +1,10 @@ package org.bukkit.entity; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.jetbrains.annotations.ApiStatus; /** * Represents a Wind Charge. */ -@MinecraftExperimental(Requires.UPDATE_1_21) @ApiStatus.Experimental public interface AbstractWindCharge extends Fireball { diff --git a/paper-api/src/main/java/org/bukkit/entity/Bogged.java b/paper-api/src/main/java/org/bukkit/entity/Bogged.java index 584404c6ac..a89f104aa2 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Bogged.java +++ b/paper-api/src/main/java/org/bukkit/entity/Bogged.java @@ -1,13 +1,10 @@ package org.bukkit.entity; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.jetbrains.annotations.ApiStatus; /** * Represents a Bogged Skeleton. */ -@MinecraftExperimental(Requires.UPDATE_1_21) @ApiStatus.Experimental public interface Bogged extends AbstractSkeleton { } diff --git a/paper-api/src/main/java/org/bukkit/entity/Breeze.java b/paper-api/src/main/java/org/bukkit/entity/Breeze.java index 514ee24613..a75e725805 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Breeze.java +++ b/paper-api/src/main/java/org/bukkit/entity/Breeze.java @@ -1,13 +1,10 @@ package org.bukkit.entity; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.jetbrains.annotations.ApiStatus; /** * Represents a Breeze. Whoosh! */ -@MinecraftExperimental(Requires.UPDATE_1_21) @ApiStatus.Experimental public interface Breeze extends Monster { } diff --git a/paper-api/src/main/java/org/bukkit/entity/BreezeWindCharge.java b/paper-api/src/main/java/org/bukkit/entity/BreezeWindCharge.java index d6e8748bed..06ca3dc4b0 100644 --- a/paper-api/src/main/java/org/bukkit/entity/BreezeWindCharge.java +++ b/paper-api/src/main/java/org/bukkit/entity/BreezeWindCharge.java @@ -1,13 +1,10 @@ package org.bukkit.entity; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.jetbrains.annotations.ApiStatus; /** * Represents a Wind Charge. */ -@MinecraftExperimental(Requires.UPDATE_1_21) @ApiStatus.Experimental public interface BreezeWindCharge extends AbstractWindCharge { 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 bd6f991287..4047f026ab 100644 --- a/paper-api/src/main/java/org/bukkit/entity/EntityType.java +++ b/paper-api/src/main/java/org/bukkit/entity/EntityType.java @@ -7,8 +7,6 @@ import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.Keyed; import org.bukkit.Location; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.NamespacedKey; import org.bukkit.Translatable; import org.bukkit.World; @@ -21,7 +19,6 @@ 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; @@ -288,21 +285,11 @@ public enum EntityType implements Keyed, Translatable { ITEM_DISPLAY("item_display", ItemDisplay.class, -1), SNIFFER("sniffer", Sniffer.class, -1), TEXT_DISPLAY("text_display", TextDisplay.class, -1), - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BREEZE("breeze", Breeze.class, -1), - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental WIND_CHARGE("wind_charge", WindCharge.class, -1), - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BREEZE_WIND_CHARGE("breeze_wind_charge", BreezeWindCharge.class, -1), ARMADILLO("armadillo", Armadillo.class, -1), - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental BOGGED("bogged", Bogged.class, -1), - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental OMINOUS_ITEM_SPAWNER("ominous_item_spawner", OminousItemSpawner.class, -1), /** * A fishing line and bobber. diff --git a/paper-api/src/main/java/org/bukkit/entity/OminousItemSpawner.java b/paper-api/src/main/java/org/bukkit/entity/OminousItemSpawner.java index d6dfeaea2f..60522888bc 100644 --- a/paper-api/src/main/java/org/bukkit/entity/OminousItemSpawner.java +++ b/paper-api/src/main/java/org/bukkit/entity/OminousItemSpawner.java @@ -1,7 +1,5 @@ package org.bukkit.entity; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -9,7 +7,6 @@ import org.jetbrains.annotations.Nullable; /** * Represents an ominous item spawner. */ -@MinecraftExperimental(Requires.UPDATE_1_21) @ApiStatus.Experimental public interface OminousItemSpawner extends Entity { 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 4b429d212e..c91e64066f 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Player.java +++ b/paper-api/src/main/java/org/bukkit/entity/Player.java @@ -21,6 +21,7 @@ import org.bukkit.Note; import org.bukkit.OfflinePlayer; import org.bukkit.Particle; import org.bukkit.Server; +import org.bukkit.ServerLinks; import org.bukkit.Sound; import org.bukkit.SoundCategory; import org.bukkit.WeatherType; @@ -184,7 +185,6 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * null value. */ @NotNull - @ApiStatus.Experimental CompletableFuture retrieveCookie(@NotNull NamespacedKey key); /** @@ -194,7 +194,6 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param value the data to store in the cookie * @throws IllegalStateException if a cookie cannot be stored at this time */ - @ApiStatus.Experimental void storeCookie(@NotNull NamespacedKey key, @NotNull byte[] value); /** @@ -206,7 +205,6 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalStateException if a transfer cannot take place at this * time */ - @ApiStatus.Experimental void transfer(@NotNull String host, int port); /** @@ -1015,6 +1013,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendHurtAnimation(float yaw); + /** + * Sends the given server links to the player. + * + * @param links links to send + */ + public void sendLinks(@NotNull ServerLinks links); + /** * Add custom chat completion suggestions shown to the player while typing a * message. diff --git a/paper-api/src/main/java/org/bukkit/entity/WindCharge.java b/paper-api/src/main/java/org/bukkit/entity/WindCharge.java index a2d8042180..4adc91ba3d 100644 --- a/paper-api/src/main/java/org/bukkit/entity/WindCharge.java +++ b/paper-api/src/main/java/org/bukkit/entity/WindCharge.java @@ -1,13 +1,10 @@ package org.bukkit.entity; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.jetbrains.annotations.ApiStatus; /** * Represents a Wind Charge. */ -@MinecraftExperimental(Requires.UPDATE_1_21) @ApiStatus.Experimental public interface WindCharge extends AbstractWindCharge { 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 f30ed84186..1ebd45295a 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 @@ -4,7 +4,6 @@ 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; /** @@ -14,10 +13,7 @@ import org.jetbrains.annotations.NotNull; *
  • A Brewing-Stand starts brewing {@link BrewingStartEvent}
  • *
  • A Campfire starts cooking {@link CampfireStartEvent}
  • * - * - * @apiNote draft API */ -@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/entity/CreatureSpawnEvent.java b/paper-api/src/main/java/org/bukkit/event/entity/CreatureSpawnEvent.java index e9de00e9e4..330bcc65c1 100644 --- a/paper-api/src/main/java/org/bukkit/event/entity/CreatureSpawnEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/entity/CreatureSpawnEvent.java @@ -197,6 +197,10 @@ public class CreatureSpawnEvent extends EntitySpawnEvent { * When a creature is spawned by the "/summon" command */ COMMAND, + /** + * When a creature is spawned by an enchantment + */ + ENCHANTMENT, /** * When a creature is spawned by plugins */ diff --git a/paper-api/src/main/java/org/bukkit/event/entity/EntityCombustByBlockEvent.java b/paper-api/src/main/java/org/bukkit/event/entity/EntityCombustByBlockEvent.java index 5886ee448a..5baa058a00 100644 --- a/paper-api/src/main/java/org/bukkit/event/entity/EntityCombustByBlockEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/entity/EntityCombustByBlockEvent.java @@ -11,7 +11,12 @@ import org.jetbrains.annotations.Nullable; public class EntityCombustByBlockEvent extends EntityCombustEvent { private final Block combuster; + @Deprecated public EntityCombustByBlockEvent(@Nullable final Block combuster, @NotNull final Entity combustee, final int duration) { + this(combuster, combustee, (float) duration); + } + + public EntityCombustByBlockEvent(@Nullable final Block combuster, @NotNull final Entity combustee, final float duration) { super(combustee, duration); this.combuster = combuster; } diff --git a/paper-api/src/main/java/org/bukkit/event/entity/EntityCombustByEntityEvent.java b/paper-api/src/main/java/org/bukkit/event/entity/EntityCombustByEntityEvent.java index 0b67364e13..46292ca9ea 100644 --- a/paper-api/src/main/java/org/bukkit/event/entity/EntityCombustByEntityEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/entity/EntityCombustByEntityEvent.java @@ -9,7 +9,12 @@ import org.jetbrains.annotations.NotNull; public class EntityCombustByEntityEvent extends EntityCombustEvent { private final Entity combuster; + @Deprecated public EntityCombustByEntityEvent(@NotNull final Entity combuster, @NotNull final Entity combustee, final int duration) { + this(combuster, combustee, (float) duration); + } + + public EntityCombustByEntityEvent(@NotNull final Entity combuster, @NotNull final Entity combustee, final float duration) { super(combustee, duration); this.combuster = combuster; } diff --git a/paper-api/src/main/java/org/bukkit/event/entity/EntityCombustEvent.java b/paper-api/src/main/java/org/bukkit/event/entity/EntityCombustEvent.java index eea9aa7bf1..0cf765564b 100644 --- a/paper-api/src/main/java/org/bukkit/event/entity/EntityCombustEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/entity/EntityCombustEvent.java @@ -12,10 +12,15 @@ import org.jetbrains.annotations.NotNull; */ public class EntityCombustEvent extends EntityEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); - private int duration; + private float duration; private boolean cancel; + @Deprecated public EntityCombustEvent(@NotNull final Entity combustee, final int duration) { + this(combustee, (float) duration); + } + + public EntityCombustEvent(@NotNull final Entity combustee, final float duration) { super(combustee); this.duration = duration; this.cancel = false; @@ -35,7 +40,7 @@ public class EntityCombustEvent extends EntityEvent implements Cancellable { * @return the amount of time (in seconds) the combustee should be alight * for */ - public int getDuration() { + public float getDuration() { return duration; } @@ -47,6 +52,21 @@ public class EntityCombustEvent extends EntityEvent implements Cancellable { * * @param duration the time in seconds to be alight for. */ + public void setDuration(float duration) { + this.duration = duration; + } + + /** + * The number of seconds the combustee should be alight for. + *

    + * This value will only ever increase the combustion time, not decrease + * existing combustion times. + * + * @param duration the time in seconds to be alight for. + * @see #setDuration(float) + * @deprecated duration is now a float + */ + @Deprecated(forRemoval = true) public void setDuration(int duration) { this.duration = duration; } 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 45acff6f8b..c5734d6668 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,7 +1,5 @@ package org.bukkit.event.inventory; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.inventory.InventoryHolder; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; @@ -148,7 +146,6 @@ public enum InventoryType { /** * A crafter inventory, with 9 CRAFTING slots. */ - @MinecraftExperimental(Requires.UPDATE_1_21) @ApiStatus.Experimental CRAFTER(9, "Crafter"), /** diff --git a/paper-api/src/main/java/org/bukkit/event/player/PlayerExpCooldownChangeEvent.java b/paper-api/src/main/java/org/bukkit/event/player/PlayerExpCooldownChangeEvent.java index fc45f95df8..6d19fb52db 100644 --- a/paper-api/src/main/java/org/bukkit/event/player/PlayerExpCooldownChangeEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/player/PlayerExpCooldownChangeEvent.java @@ -2,13 +2,11 @@ package org.bukkit.event.player; import org.bukkit.entity.Player; import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** * Called when a player's experience cooldown changes. */ -@ApiStatus.Experimental public class PlayerExpCooldownChangeEvent extends PlayerEvent { private static final HandlerList handlers = new HandlerList(); diff --git a/paper-api/src/main/java/org/bukkit/event/player/PlayerLinksSendEvent.java b/paper-api/src/main/java/org/bukkit/event/player/PlayerLinksSendEvent.java new file mode 100644 index 0000000000..01700bff10 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/event/player/PlayerLinksSendEvent.java @@ -0,0 +1,43 @@ +package org.bukkit.event.player; + +import org.bukkit.ServerLinks; +import org.bukkit.entity.Player; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +/** + * This event is called when the list of links is sent to the player. + */ +@ApiStatus.Experimental +public class PlayerLinksSendEvent extends PlayerEvent { + + private static final HandlerList handlers = new HandlerList(); + private final ServerLinks links; + + public PlayerLinksSendEvent(@NotNull final Player player, @NotNull final ServerLinks links) { + super(player); + this.links = links; + } + + /** + * Gets the links to be sent, for modification. + * + * @return the links + */ + @NotNull + public ServerLinks getLinks() { + return links; + } + + @NotNull + @Override + public HandlerList getHandlers() { + return handlers; + } + + @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/paper-api/src/main/java/org/bukkit/event/player/PlayerSignOpenEvent.java b/paper-api/src/main/java/org/bukkit/event/player/PlayerSignOpenEvent.java index ea197b1bc0..cf935d9c8d 100644 --- a/paper-api/src/main/java/org/bukkit/event/player/PlayerSignOpenEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/player/PlayerSignOpenEvent.java @@ -5,13 +5,11 @@ import org.bukkit.block.sign.Side; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** * This event is fired when a sign is opened by the player. */ -@ApiStatus.Experimental public class PlayerSignOpenEvent extends PlayerEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); @@ -78,7 +76,6 @@ public class PlayerSignOpenEvent extends PlayerEvent implements Cancellable { return handlers; } - @ApiStatus.Experimental public enum Cause { /** diff --git a/paper-api/src/main/java/org/bukkit/event/player/PlayerSpawnChangeEvent.java b/paper-api/src/main/java/org/bukkit/event/player/PlayerSpawnChangeEvent.java index c2884bc20f..b22feeda89 100644 --- a/paper-api/src/main/java/org/bukkit/event/player/PlayerSpawnChangeEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/player/PlayerSpawnChangeEvent.java @@ -5,15 +5,12 @@ import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * This event is fired when the spawn point of the player is changed. - * @apiNote draft API */ -@ApiStatus.Experimental public class PlayerSpawnChangeEvent extends PlayerEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); diff --git a/paper-api/src/main/java/org/bukkit/event/weather/LightningStrikeEvent.java b/paper-api/src/main/java/org/bukkit/event/weather/LightningStrikeEvent.java index c98f07f82d..c854600f99 100644 --- a/paper-api/src/main/java/org/bukkit/event/weather/LightningStrikeEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/weather/LightningStrikeEvent.java @@ -92,6 +92,10 @@ public class LightningStrikeEvent extends WeatherEvent implements Cancellable { * Triggered by weather. */ WEATHER, + /** + * Triggered by an enchantment but not a trident. + */ + ENCHANTMENT, /** * Unknown trigger. */ diff --git a/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java b/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java index b670ff8b2b..1a766e6871 100644 --- a/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java +++ b/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java @@ -1,8 +1,6 @@ package org.bukkit.generator.structure; import org.bukkit.Keyed; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.jetbrains.annotations.NotNull; @@ -49,7 +47,6 @@ public abstract class Structure implements Keyed { public static final Structure RUINED_PORTAL_NETHER = getStructure("ruined_portal_nether"); public static final Structure ANCIENT_CITY = getStructure("ancient_city"); public static final Structure TRAIL_RUINS = getStructure("trail_ruins"); - @MinecraftExperimental(Requires.UPDATE_1_21) public static final Structure TRIAL_CHAMBERS = getStructure("trial_chambers"); private static Structure getStructure(String name) { diff --git a/paper-api/src/main/java/org/bukkit/inventory/CrafterInventory.java b/paper-api/src/main/java/org/bukkit/inventory/CrafterInventory.java index 5c008816aa..bb1fb5e051 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/CrafterInventory.java +++ b/paper-api/src/main/java/org/bukkit/inventory/CrafterInventory.java @@ -1,12 +1,9 @@ package org.bukkit.inventory; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.jetbrains.annotations.ApiStatus; /** * Interface to the inventory of a Crafter. */ @ApiStatus.Experimental -@MinecraftExperimental(Requires.UPDATE_1_21) public interface CrafterInventory extends Inventory { } diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemType.java b/paper-api/src/main/java/org/bukkit/inventory/ItemType.java index a1e14d1891..d4c29562aa 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/ItemType.java +++ b/paper-api/src/main/java/org/bukkit/inventory/ItemType.java @@ -5,8 +5,6 @@ import com.google.common.collect.Multimap; import java.util.function.Consumer; import org.bukkit.Keyed; import org.bukkit.Material; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.bukkit.Translatable; @@ -107,44 +105,18 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed POLISHED_DEEPSLATE = getItemType("polished_deepslate"); ItemType.Typed CALCITE = getItemType("calcite"); ItemType.Typed TUFF = getItemType("tuff"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed TUFF_SLAB = getItemType("tuff_slab"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed TUFF_STAIRS = getItemType("tuff_stairs"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed TUFF_WALL = getItemType("tuff_wall"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed CHISELED_TUFF = getItemType("chiseled_tuff"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed POLISHED_TUFF = getItemType("polished_tuff"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed POLISHED_TUFF_SLAB = getItemType("polished_tuff_slab"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed POLISHED_TUFF_STAIRS = getItemType("polished_tuff_stairs"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed POLISHED_TUFF_WALL = getItemType("polished_tuff_wall"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed TUFF_BRICKS = getItemType("tuff_bricks"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed TUFF_BRICK_SLAB = getItemType("tuff_brick_slab"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed TUFF_BRICK_STAIRS = getItemType("tuff_brick_stairs"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed TUFF_BRICK_WALL = getItemType("tuff_brick_wall"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed CHISELED_TUFF_BRICKS = getItemType("chiseled_tuff_bricks"); ItemType.Typed DRIPSTONE_BLOCK = getItemType("dripstone_block"); ItemType.Typed GRASS_BLOCK = getItemType("grass_block"); @@ -211,8 +183,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed RAW_IRON_BLOCK = getItemType("raw_iron_block"); ItemType.Typed RAW_COPPER_BLOCK = getItemType("raw_copper_block"); ItemType.Typed RAW_GOLD_BLOCK = getItemType("raw_gold_block"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed HEAVY_CORE = getItemType("heavy_core"); ItemType.Typed AMETHYST_BLOCK = getItemType("amethyst_block"); ItemType.Typed BUDDING_AMETHYST = getItemType("budding_amethyst"); @@ -224,17 +194,9 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed EXPOSED_COPPER = getItemType("exposed_copper"); ItemType.Typed WEATHERED_COPPER = getItemType("weathered_copper"); ItemType.Typed OXIDIZED_COPPER = getItemType("oxidized_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed CHISELED_COPPER = getItemType("chiseled_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed EXPOSED_CHISELED_COPPER = getItemType("exposed_chiseled_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WEATHERED_CHISELED_COPPER = getItemType("weathered_chiseled_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed OXIDIZED_CHISELED_COPPER = getItemType("oxidized_chiseled_copper"); ItemType.Typed CUT_COPPER = getItemType("cut_copper"); ItemType.Typed EXPOSED_CUT_COPPER = getItemType("exposed_cut_copper"); @@ -252,17 +214,9 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed WAXED_EXPOSED_COPPER = getItemType("waxed_exposed_copper"); ItemType.Typed WAXED_WEATHERED_COPPER = getItemType("waxed_weathered_copper"); ItemType.Typed WAXED_OXIDIZED_COPPER = getItemType("waxed_oxidized_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_CHISELED_COPPER = getItemType("waxed_chiseled_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_EXPOSED_CHISELED_COPPER = getItemType("waxed_exposed_chiseled_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_WEATHERED_CHISELED_COPPER = getItemType("waxed_weathered_chiseled_copper"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_OXIDIZED_CHISELED_COPPER = getItemType("waxed_oxidized_chiseled_copper"); ItemType.Typed WAXED_CUT_COPPER = getItemType("waxed_cut_copper"); ItemType.Typed WAXED_EXPOSED_CUT_COPPER = getItemType("waxed_exposed_cut_copper"); @@ -986,29 +940,13 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed BAMBOO_DOOR = getItemType("bamboo_door"); ItemType.Typed CRIMSON_DOOR = getItemType("crimson_door"); ItemType.Typed WARPED_DOOR = getItemType("warped_door"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed COPPER_DOOR = getItemType("copper_door"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed EXPOSED_COPPER_DOOR = getItemType("exposed_copper_door"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WEATHERED_COPPER_DOOR = getItemType("weathered_copper_door"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed OXIDIZED_COPPER_DOOR = getItemType("oxidized_copper_door"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_COPPER_DOOR = getItemType("waxed_copper_door"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_EXPOSED_COPPER_DOOR = getItemType("waxed_exposed_copper_door"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_WEATHERED_COPPER_DOOR = getItemType("waxed_weathered_copper_door"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_OXIDIZED_COPPER_DOOR = getItemType("waxed_oxidized_copper_door"); ItemType.Typed IRON_TRAPDOOR = getItemType("iron_trapdoor"); ItemType.Typed OAK_TRAPDOOR = getItemType("oak_trapdoor"); @@ -1022,29 +960,13 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed BAMBOO_TRAPDOOR = getItemType("bamboo_trapdoor"); ItemType.Typed CRIMSON_TRAPDOOR = getItemType("crimson_trapdoor"); ItemType.Typed WARPED_TRAPDOOR = getItemType("warped_trapdoor"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed COPPER_TRAPDOOR = getItemType("copper_trapdoor"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed EXPOSED_COPPER_TRAPDOOR = getItemType("exposed_copper_trapdoor"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WEATHERED_COPPER_TRAPDOOR = getItemType("weathered_copper_trapdoor"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed OXIDIZED_COPPER_TRAPDOOR = getItemType("oxidized_copper_trapdoor"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_COPPER_TRAPDOOR = getItemType("waxed_copper_trapdoor"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_EXPOSED_COPPER_TRAPDOOR = getItemType("waxed_exposed_copper_trapdoor"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_WEATHERED_COPPER_TRAPDOOR = getItemType("waxed_weathered_copper_trapdoor"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_OXIDIZED_COPPER_TRAPDOOR = getItemType("waxed_oxidized_copper_trapdoor"); ItemType.Typed OAK_FENCE_GATE = getItemType("oak_fence_gate"); ItemType.Typed SPRUCE_FENCE_GATE = getItemType("spruce_fence_gate"); @@ -1106,6 +1028,7 @@ public interface ItemType extends Keyed, Translatable { * ItemMeta: {@link ColorableArmorMeta} */ ItemType.Typed WOLF_ARMOR = getItemType("wolf_armor"); + ItemType.Typed BOWL = getItemType("bowl"); ItemType.Typed FLINT_AND_STEEL = getItemType("flint_and_steel"); ItemType.Typed APPLE = getItemType("apple"); ItemType.Typed BOW = getItemType("bow"); @@ -1156,7 +1079,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed NETHERITE_AXE = getItemType("netherite_axe"); ItemType.Typed NETHERITE_HOE = getItemType("netherite_hoe"); ItemType.Typed STICK = getItemType("stick"); - ItemType.Typed BOWL = getItemType("bowl"); ItemType.Typed MUSHROOM_STEW = getItemType("mushroom_stew"); ItemType.Typed STRING = getItemType("string"); ItemType.Typed FEATHER = getItemType("feather"); @@ -1442,8 +1364,6 @@ public interface ItemType extends Keyed, Translatable { /** * ItemMeta: {@link BlockStateMeta} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed CRAFTER = getItemType("crafter"); /** * ItemMeta: {@link MapMeta} @@ -1507,14 +1427,10 @@ public interface ItemType extends Keyed, Translatable { /** * ItemMeta: {@link SpawnEggMeta} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed BOGGED_SPAWN_EGG = getItemType("bogged_spawn_egg"); /** * ItemMeta: {@link SpawnEggMeta} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed BREEZE_SPAWN_EGG = getItemType("breeze_spawn_egg"); /** * ItemMeta: {@link SpawnEggMeta} @@ -1806,8 +1722,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ZOMBIFIED_PIGLIN_SPAWN_EGG = getItemType("zombified_piglin_spawn_egg"); ItemType.Typed EXPERIENCE_BOTTLE = getItemType("experience_bottle"); ItemType.Typed FIRE_CHARGE = getItemType("fire_charge"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WIND_CHARGE = getItemType("wind_charge"); /** * ItemMeta: {@link BookMeta} @@ -1817,8 +1731,6 @@ public interface ItemType extends Keyed, Translatable { * ItemMeta: {@link BookMeta} */ ItemType.Typed WRITTEN_BOOK = getItemType("written_book"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed MACE = getItemType("mace"); ItemType.Typed ITEM_FRAME = getItemType("item_frame"); ItemType.Typed GLOW_ITEM_FRAME = getItemType("glow_item_frame"); @@ -1994,6 +1906,8 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed MUSIC_DISC_CAT = getItemType("music_disc_cat"); ItemType.Typed MUSIC_DISC_BLOCKS = getItemType("music_disc_blocks"); ItemType.Typed MUSIC_DISC_CHIRP = getItemType("music_disc_chirp"); + ItemType.Typed MUSIC_DISC_CREATOR = getItemType("music_disc_creator"); + ItemType.Typed MUSIC_DISC_CREATOR_MUSIC_BOX = getItemType("music_disc_creator_music_box"); ItemType.Typed MUSIC_DISC_FAR = getItemType("music_disc_far"); ItemType.Typed MUSIC_DISC_MALL = getItemType("music_disc_mall"); ItemType.Typed MUSIC_DISC_MELLOHI = getItemType("music_disc_mellohi"); @@ -2006,6 +1920,7 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed MUSIC_DISC_RELIC = getItemType("music_disc_relic"); ItemType.Typed MUSIC_DISC_5 = getItemType("music_disc_5"); ItemType.Typed MUSIC_DISC_PIGSTEP = getItemType("music_disc_pigstep"); + ItemType.Typed MUSIC_DISC_PRECIPICE = getItemType("music_disc_precipice"); ItemType.Typed DISC_FRAGMENT_5 = getItemType("disc_fragment_5"); ItemType.Typed TRIDENT = getItemType("trident"); ItemType.Typed PHANTOM_MEMBRANE = getItemType("phantom_membrane"); @@ -2026,11 +1941,7 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed MOJANG_BANNER_PATTERN = getItemType("mojang_banner_pattern"); ItemType.Typed GLOBE_BANNER_PATTERN = getItemType("globe_banner_pattern"); ItemType.Typed PIGLIN_BANNER_PATTERN = getItemType("piglin_banner_pattern"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed FLOW_BANNER_PATTERN = getItemType("flow_banner_pattern"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed GUSTER_BANNER_PATTERN = getItemType("guster_banner_pattern"); /** * ItemMeta: {@link MusicInstrumentMeta} @@ -2142,11 +2053,7 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("silence_armor_trim_smithing_template"); ItemType.Typed RAISER_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("raiser_armor_trim_smithing_template"); ItemType.Typed HOST_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("host_armor_trim_smithing_template"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed FLOW_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("flow_armor_trim_smithing_template"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed BOLT_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("bolt_armor_trim_smithing_template"); ItemType.Typed ANGLER_POTTERY_SHERD = getItemType("angler_pottery_sherd"); ItemType.Typed ARCHER_POTTERY_SHERD = getItemType("archer_pottery_sherd"); @@ -2156,12 +2063,8 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed BURN_POTTERY_SHERD = getItemType("burn_pottery_sherd"); ItemType.Typed DANGER_POTTERY_SHERD = getItemType("danger_pottery_sherd"); ItemType.Typed EXPLORER_POTTERY_SHERD = getItemType("explorer_pottery_sherd"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed FLOW_POTTERY_SHERD = getItemType("flow_pottery_sherd"); ItemType.Typed FRIEND_POTTERY_SHERD = getItemType("friend_pottery_sherd"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed GUSTER_POTTERY_SHERD = getItemType("guster_pottery_sherd"); ItemType.Typed HEART_POTTERY_SHERD = getItemType("heart_pottery_sherd"); ItemType.Typed HEARTBREAK_POTTERY_SHERD = getItemType("heartbreak_pottery_sherd"); @@ -2170,87 +2073,41 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed MOURNER_POTTERY_SHERD = getItemType("mourner_pottery_sherd"); ItemType.Typed PLENTY_POTTERY_SHERD = getItemType("plenty_pottery_sherd"); ItemType.Typed PRIZE_POTTERY_SHERD = getItemType("prize_pottery_sherd"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed SCRAPE_POTTERY_SHERD = getItemType("scrape_pottery_sherd"); ItemType.Typed SHEAF_POTTERY_SHERD = getItemType("sheaf_pottery_sherd"); ItemType.Typed SHELTER_POTTERY_SHERD = getItemType("shelter_pottery_sherd"); ItemType.Typed SKULL_POTTERY_SHERD = getItemType("skull_pottery_sherd"); ItemType.Typed SNORT_POTTERY_SHERD = getItemType("snort_pottery_sherd"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed COPPER_GRATE = getItemType("copper_grate"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed EXPOSED_COPPER_GRATE = getItemType("exposed_copper_grate"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WEATHERED_COPPER_GRATE = getItemType("weathered_copper_grate"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed OXIDIZED_COPPER_GRATE = getItemType("oxidized_copper_grate"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_COPPER_GRATE = getItemType("waxed_copper_grate"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_EXPOSED_COPPER_GRATE = getItemType("waxed_exposed_copper_grate"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_WEATHERED_COPPER_GRATE = getItemType("waxed_weathered_copper_grate"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_OXIDIZED_COPPER_GRATE = getItemType("waxed_oxidized_copper_grate"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed COPPER_BULB = getItemType("copper_bulb"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed EXPOSED_COPPER_BULB = getItemType("exposed_copper_bulb"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WEATHERED_COPPER_BULB = getItemType("weathered_copper_bulb"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed OXIDIZED_COPPER_BULB = getItemType("oxidized_copper_bulb"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_COPPER_BULB = getItemType("waxed_copper_bulb"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_EXPOSED_COPPER_BULB = getItemType("waxed_exposed_copper_bulb"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_WEATHERED_COPPER_BULB = getItemType("waxed_weathered_copper_bulb"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed WAXED_OXIDIZED_COPPER_BULB = getItemType("waxed_oxidized_copper_bulb"); /** * ItemMeta: {@link BlockStateMeta} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed TRIAL_SPAWNER = getItemType("trial_spawner"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed TRIAL_KEY = getItemType("trial_key"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed OMINOUS_TRIAL_KEY = getItemType("ominous_trial_key"); /** * ItemMeta: {@link BlockStateMeta} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed VAULT = getItemType("vault"); /** * ItemMeta: {@link OminousBottleMeta} */ - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed OMINOUS_BOTTLE = getItemType("ominous_bottle"); - @MinecraftExperimental(Requires.UPDATE_1_21) - @ApiStatus.Experimental ItemType.Typed BREEZE_ROD = getItemType("breeze_rod"); diff --git a/paper-api/src/main/java/org/bukkit/inventory/JukeboxInventory.java b/paper-api/src/main/java/org/bukkit/inventory/JukeboxInventory.java index f4b3b7f145..f510a94315 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/JukeboxInventory.java +++ b/paper-api/src/main/java/org/bukkit/inventory/JukeboxInventory.java @@ -1,6 +1,5 @@ package org.bukkit.inventory; -import org.bukkit.Tag; import org.bukkit.block.Jukebox; import org.jetbrains.annotations.Nullable; @@ -13,9 +12,7 @@ public interface JukeboxInventory extends Inventory { * Set the record in the jukebox. *

    * This will immediately start playing the inserted item or stop playing if the - * item provided is null. If the provided item is not a record (according to - * {@link Tag#ITEMS_MUSIC_DISCS}), this method will do nothing and not set the - * item in the inventory. + * item provided is null. * * @param item the new record */ diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/paper-api/src/main/java/org/bukkit/inventory/meta/ItemMeta.java index 556df980d2..9fb9f00f39 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/meta/ItemMeta.java +++ b/paper-api/src/main/java/org/bukkit/inventory/meta/ItemMeta.java @@ -14,6 +14,7 @@ import org.bukkit.inventory.ItemFactory; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemRarity; import org.bukkit.inventory.meta.components.FoodComponent; +import org.bukkit.inventory.meta.components.JukeboxPlayableComponent; import org.bukkit.inventory.meta.components.ToolComponent; import org.bukkit.inventory.meta.tags.CustomItemTagContainer; import org.bukkit.persistence.PersistentDataHolder; @@ -452,6 +453,34 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste */ void setTool(@Nullable ToolComponent tool); + /** + * Checks if the jukebox playable is set. + * + * @return if a jukebox playable is set + */ + boolean hasJukeboxPlayable(); + + /** + * Gets the jukebox playable component set on this item. + *

    + * The returned component is a snapshot of its current state and does not + * reflect a live view of what is on an item. After changing any value on + * this component, it must be set with + * {@link #setJukeboxPlayable(org.bukkit.inventory.meta.components.JukeboxComponent)} + * to apply the changes. + * + * @return component + */ + @Nullable + JukeboxPlayableComponent getJukeboxPlayable(); + + /** + * Sets the item tool. + * + * @param jukeboxPlayable new component + */ + void setJukeboxPlayable(@Nullable JukeboxPlayableComponent jukeboxPlayable); + /** * Checks for the existence of any AttributeModifiers. * @@ -566,7 +595,7 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste * @throws NullPointerException if the Attribute is null * @throws NullPointerException if the AttributeModifier is null * - * @see AttributeModifier#getUniqueId() + * @see AttributeModifier#getKey() */ boolean removeAttributeModifier(@NotNull Attribute attribute, @NotNull AttributeModifier modifier); diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/components/FoodComponent.java b/paper-api/src/main/java/org/bukkit/inventory/meta/components/FoodComponent.java index e5eda7b213..9dcf02ae4b 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/meta/components/FoodComponent.java +++ b/paper-api/src/main/java/org/bukkit/inventory/meta/components/FoodComponent.java @@ -2,9 +2,11 @@ package org.bukkit.inventory.meta.components; import java.util.List; import org.bukkit.configuration.serialization.ConfigurationSerializable; +import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffect; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * Represents a component which can turn any item into food. @@ -68,6 +70,21 @@ public interface FoodComponent extends ConfigurationSerializable { */ void setEatSeconds(float eatSeconds); + /** + * Gets the item this food will convert to once eaten. + * + * @return converted item + */ + @Nullable + ItemStack getUsingConvertsTo(); + + /** + * Sets the item this food will convert to once eaten. + * + * @param item converted item + */ + void setUsingConvertsTo(@Nullable ItemStack item); + /** * Gets the effects which may be applied by this item when eaten. * diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/components/JukeboxPlayableComponent.java b/paper-api/src/main/java/org/bukkit/inventory/meta/components/JukeboxPlayableComponent.java new file mode 100644 index 0000000000..785c6b2785 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/inventory/meta/components/JukeboxPlayableComponent.java @@ -0,0 +1,59 @@ +package org.bukkit.inventory.meta.components; + +import org.bukkit.JukeboxSong; +import org.bukkit.NamespacedKey; +import org.bukkit.configuration.serialization.ConfigurationSerializable; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Represents a component which can be inserted into a jukebox. + */ +@ApiStatus.Experimental +public interface JukeboxPlayableComponent extends ConfigurationSerializable { + + /** + * Gets the song assigned to this component. + * + * @return song, or null if the song does not exist on the server + */ + @Nullable + JukeboxSong getSong(); + + /** + * Gets the key of the song assigned to this component. + * + * @return the song key + */ + @NotNull + NamespacedKey getSongKey(); + + /** + * Sets the song assigned to this component. + * + * @param song the song + */ + void setSong(@NotNull JukeboxSong song); + + /** + * Sets the key of the song assigned to this component. + * + * @param song the song key + */ + void setSongKey(@NotNull NamespacedKey song); + + /** + * Gets if the song will show in the item tooltip. + * + * @return if the song will show in the tooltip + */ + boolean isShowInTooltip(); + + /** + * Sets if the song will show in the item tooltip. + * + * @param show true if the song will show in the tooltip + */ + void setShowInTooltip(boolean show); +} diff --git a/paper-api/src/main/java/org/bukkit/loot/LootContext.java b/paper-api/src/main/java/org/bukkit/loot/LootContext.java index b35dba4206..9c1ccaed72 100644 --- a/paper-api/src/main/java/org/bukkit/loot/LootContext.java +++ b/paper-api/src/main/java/org/bukkit/loot/LootContext.java @@ -62,7 +62,9 @@ public final class LootContext { * {@link #getKiller()} entity's looting level will be used instead. * * @return the looting level + * @deprecated no longer functional */ + @Deprecated public int getLootingModifier() { return lootingModifier; } @@ -131,8 +133,10 @@ public final class LootContext { * * @param modifier the looting level modifier * @return the Builder + * @deprecated no longer functional */ @NotNull + @Deprecated public Builder lootingModifier(int modifier) { this.lootingModifier = modifier; return this; diff --git a/paper-api/src/main/java/org/bukkit/loot/LootTables.java b/paper-api/src/main/java/org/bukkit/loot/LootTables.java index 0fc3051437..6ad2cb4462 100644 --- a/paper-api/src/main/java/org/bukkit/loot/LootTables.java +++ b/paper-api/src/main/java/org/bukkit/loot/LootTables.java @@ -2,8 +2,6 @@ package org.bukkit.loot; import org.bukkit.Bukkit; import org.bukkit.Keyed; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.NamespacedKey; import org.jetbrains.annotations.NotNull; @@ -35,45 +33,25 @@ public enum LootTables implements Keyed { ANCIENT_CITY("chests/ancient_city"), ANCIENT_CITY_ICE_BOX("chests/ancient_city_ice_box"), RUINED_PORTAL("chests/ruined_portal"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_REWARD("chests/trial_chambers/reward"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_REWARD_COMMON("chests/trial_chambers/reward_common"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_REWARD_RARE("chests/trial_chambers/reward_rare"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_REWARD_UNIQUE("chests/trial_chambers/reward_unique"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_REWARD_OMINOUS("chests/trial_chambers/reward_ominous"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_REWARD_OMINOUS_COMMON("chests/trial_chambers/reward_ominous_common"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_REWARD_OMINOUS_RARE("chests/trial_chambers/reward_ominous_rare"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_REWARD_OMINOUS_UNIQUE("chests/trial_chambers/reward_ominous_unique"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_SUPPLY("chests/trial_chambers/supply"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_CORRIDOR("chests/trial_chambers/corridor"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_INTERSECTION("chests/trial_chambers/intersection"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_INTERSECTION_BARREL("chests/trial_chambers/intersection_barrel"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_ENTRANCE("chests/trial_chambers/entrance"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_CORRIDOR_DISPENSER("dispensers/trial_chambers/corridor"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_CHAMBER_DISPENSER("dispensers/trial_chambers/chamber"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_WATER_DISPENSER("dispensers/trial_chambers/water"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBERS_CORRIDOR_POT("pots/trial_chambers/corridor"), - @MinecraftExperimental(Requires.UPDATE_1_21) EQUIPMENT_TRIAL_CHAMBER("equipment/trial_chamber"), - @MinecraftExperimental(Requires.UPDATE_1_21) EQUIPMENT_TRIAL_CHAMBER_RANGED("equipment/trial_chamber_ranged"), - @MinecraftExperimental(Requires.UPDATE_1_21) EQUIPMENT_TRIAL_CHAMBER_MELEE("equipment/trial_chamber_melee"), SHIPWRECK_MAP("chests/shipwreck_map"), SHIPWRECK_SUPPLY("chests/shipwreck_supply"), @@ -201,15 +179,10 @@ public enum LootTables implements Keyed { PANDA_SNEEZE("gameplay/panda_sneeze"), PIGLIN_BARTERING("gameplay/piglin_bartering"), // Spawners - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBER_KEY("spawners/trial_chamber/key"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBER_CONSUMABLES("spawners/trial_chamber/consumables"), - @MinecraftExperimental(Requires.UPDATE_1_21) OMINOUS_TRIAL_CHAMBER_KEY("spawners/ominous/trial_chamber/key"), - @MinecraftExperimental(Requires.UPDATE_1_21) OMINOUS_TRIAL_CHAMBER_CONSUMABLES("spawners/ominous/trial_chamber/consumables"), - @MinecraftExperimental(Requires.UPDATE_1_21) TRIAL_CHAMBER_ITEMS_TO_DROP_WHEN_OMINOUS("spawners/trial_chamber/items_to_drop_when_ominous"), // Shearing SHEARING_BOGGED("shearing/bogged"), diff --git a/paper-api/src/main/java/org/bukkit/packs/DataPack.java b/paper-api/src/main/java/org/bukkit/packs/DataPack.java index 3d5af25a39..ea03c51d51 100644 --- a/paper-api/src/main/java/org/bukkit/packs/DataPack.java +++ b/paper-api/src/main/java/org/bukkit/packs/DataPack.java @@ -3,7 +3,6 @@ package org.bukkit.packs; import java.util.Set; import org.bukkit.FeatureFlag; import org.bukkit.Keyed; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -11,7 +10,6 @@ import org.jetbrains.annotations.NotNull; * * @see Minecraft wiki */ -@ApiStatus.Experimental public interface DataPack extends Keyed { /** diff --git a/paper-api/src/main/java/org/bukkit/packs/DataPackManager.java b/paper-api/src/main/java/org/bukkit/packs/DataPackManager.java index c33ca7b864..aee6e828c6 100644 --- a/paper-api/src/main/java/org/bukkit/packs/DataPackManager.java +++ b/paper-api/src/main/java/org/bukkit/packs/DataPackManager.java @@ -14,7 +14,6 @@ import org.jetbrains.annotations.Nullable; /** * Manager of data packs. */ -@ApiStatus.Experimental public interface DataPackManager { /** diff --git a/paper-api/src/main/java/org/bukkit/packs/ResourcePack.java b/paper-api/src/main/java/org/bukkit/packs/ResourcePack.java index ea921799ab..2862fb5bab 100644 --- a/paper-api/src/main/java/org/bukkit/packs/ResourcePack.java +++ b/paper-api/src/main/java/org/bukkit/packs/ResourcePack.java @@ -1,7 +1,6 @@ package org.bukkit.packs; import java.util.UUID; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -10,7 +9,6 @@ import org.jetbrains.annotations.Nullable; * * @see Minecraft wiki */ -@ApiStatus.Experimental public interface ResourcePack { /** diff --git a/paper-api/src/main/java/org/bukkit/packs/package-info.java b/paper-api/src/main/java/org/bukkit/packs/package-info.java index 90a767b89a..9d7abeab56 100644 --- a/paper-api/src/main/java/org/bukkit/packs/package-info.java +++ b/paper-api/src/main/java/org/bukkit/packs/package-info.java @@ -1,5 +1,4 @@ /** * Classes dedicated to handling data pack information. */ -@org.jetbrains.annotations.ApiStatus.Experimental package org.bukkit.packs; diff --git a/paper-api/src/main/java/org/bukkit/potion/PotionType.java b/paper-api/src/main/java/org/bukkit/potion/PotionType.java index dabaa58432..453c626092 100644 --- a/paper-api/src/main/java/org/bukkit/potion/PotionType.java +++ b/paper-api/src/main/java/org/bukkit/potion/PotionType.java @@ -5,8 +5,6 @@ import java.util.List; import java.util.function.Supplier; import org.bukkit.Bukkit; import org.bukkit.Keyed; -import org.bukkit.MinecraftExperimental; -import org.bukkit.MinecraftExperimental.Requires; import org.bukkit.NamespacedKey; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; @@ -59,13 +57,9 @@ public enum PotionType implements Keyed { STRONG_TURTLE_MASTER("strong_turtle_master"), SLOW_FALLING("slow_falling"), LONG_SLOW_FALLING("long_slow_falling"), - @MinecraftExperimental(Requires.UPDATE_1_21) WIND_CHARGED("wind_charged"), - @MinecraftExperimental(Requires.UPDATE_1_21) WEAVING("weaving"), - @MinecraftExperimental(Requires.UPDATE_1_21) OOZING("oozing"), - @MinecraftExperimental(Requires.UPDATE_1_21) INFESTED("infested"), ;