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"),
;