shard);
}
diff --git a/paper-api/src/main/java/org/bukkit/block/HangingSign.java b/paper-api/src/main/java/org/bukkit/block/HangingSign.java
index a82a5bb16..9bef6c659 100644
--- a/paper-api/src/main/java/org/bukkit/block/HangingSign.java
+++ b/paper-api/src/main/java/org/bukkit/block/HangingSign.java
@@ -1,12 +1,7 @@
package org.bukkit.block;
-import org.bukkit.MinecraftExperimental;
-import org.jetbrains.annotations.ApiStatus;
-
/**
* Represents a captured state of a hanging sign.
*/
-@MinecraftExperimental
-@ApiStatus.Experimental
public interface HangingSign extends Sign {
}
diff --git a/paper-api/src/main/java/org/bukkit/block/Sign.java b/paper-api/src/main/java/org/bukkit/block/Sign.java
index 1844b7136..80f6b718d 100644
--- a/paper-api/src/main/java/org/bukkit/block/Sign.java
+++ b/paper-api/src/main/java/org/bukkit/block/Sign.java
@@ -4,7 +4,6 @@ import org.bukkit.DyeColor;
import org.bukkit.block.sign.Side;
import org.bukkit.block.sign.SignSide;
import org.bukkit.material.Colorable;
-import org.jetbrains.annotations.ApiStatus.Experimental;
import org.jetbrains.annotations.NotNull;
/**
@@ -16,8 +15,9 @@ public interface Sign extends TileState, Colorable {
* Gets all the lines of text currently on the {@link Side#FRONT} of this sign.
*
* @return Array of Strings containing each line of text
- * @see #getSide(Side)
+ * @deprecated A sign may have multiple writable sides now. Use {@link Sign#getSide(Side)} and {@link SignSide#getLines()}.
*/
+ @Deprecated
@NotNull
public String[] getLines();
@@ -29,8 +29,9 @@ public interface Sign extends TileState, Colorable {
* @param index Line number to get the text from, starting at 0
* @return Text on the given line
* @throws IndexOutOfBoundsException Thrown when the line does not exist
- * @see #getSide(Side)
+ * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#getLine(int)}.
*/
+ @Deprecated
@NotNull
public String getLine(int index) throws IndexOutOfBoundsException;
@@ -43,8 +44,9 @@ public interface Sign extends TileState, Colorable {
* @param index Line number to set the text at, starting from 0
* @param line New text to set at the specified index
* @throws IndexOutOfBoundsException If the index is out of the range 0..3
- * @see #getSide(Side)
+ * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#setLine(int, String)}.
*/
+ @Deprecated
public void setLine(int index, @NotNull String line) throws IndexOutOfBoundsException;
/**
@@ -73,31 +75,37 @@ public interface Sign extends TileState, Colorable {
* Gets whether this sign has glowing text. Only affects the {@link Side#FRONT}.
*
* @return if this sign has glowing text
- * @see #getSide(Side)
+ * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#isGlowingText()}.
*/
+ @Deprecated
public boolean isGlowingText();
/**
* Sets whether this sign has glowing text. Only affects the {@link Side#FRONT}.
*
* @param glowing if this sign has glowing text
- * @see #getSide(Side)
+ * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#setGlowingText(boolean)}.
*/
+ @Deprecated
public void setGlowingText(boolean glowing);
/**
* {@inheritDoc}
*
- * @see #getSide(Side)
+ * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#getColor()}.
*/
@NotNull
+ @Override
+ @Deprecated
public DyeColor getColor();
/**
* {@inheritDoc}
*
- * @see #getSide(Side)
+ * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#setColor(org.bukkit.DyeColor)}.
*/
+ @Override
+ @Deprecated
public void setColor(@NotNull DyeColor color);
/**
@@ -106,7 +114,6 @@ public interface Sign extends TileState, Colorable {
* @param side the side of the sign
* @return the selected side of the sign
*/
- @Experimental
@NotNull
public SignSide getSide(@NotNull Side side);
}
diff --git a/paper-api/src/main/java/org/bukkit/block/Skull.java b/paper-api/src/main/java/org/bukkit/block/Skull.java
index fab2ca9f6..b39128bb0 100644
--- a/paper-api/src/main/java/org/bukkit/block/Skull.java
+++ b/paper-api/src/main/java/org/bukkit/block/Skull.java
@@ -1,13 +1,11 @@
package org.bukkit.block;
import org.bukkit.Material;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.bukkit.OfflinePlayer;
import org.bukkit.SkullType;
import org.bukkit.block.data.BlockData;
import org.bukkit.profile.PlayerProfile;
-import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -96,8 +94,6 @@ public interface Skull extends TileState {
*
* @return the key of the sound, or null
*/
- @MinecraftExperimental
- @ApiStatus.Experimental
@Nullable
public NamespacedKey getNoteBlockSound();
@@ -110,8 +106,6 @@ public interface Skull extends TileState {
* @param noteBlockSound the key of the sound to be played, or null
*
*/
- @MinecraftExperimental
- @ApiStatus.Experimental
public void setNoteBlockSound(@Nullable NamespacedKey noteBlockSound);
/**
diff --git a/paper-api/src/main/java/org/bukkit/block/SuspiciousSand.java b/paper-api/src/main/java/org/bukkit/block/SuspiciousSand.java
index 73a684188..a7c4e4baf 100644
--- a/paper-api/src/main/java/org/bukkit/block/SuspiciousSand.java
+++ b/paper-api/src/main/java/org/bukkit/block/SuspiciousSand.java
@@ -1,32 +1,10 @@
package org.bukkit.block;
-import org.bukkit.MinecraftExperimental;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.loot.Lootable;
-import org.jetbrains.annotations.ApiStatus;
-import org.jetbrains.annotations.Nullable;
-
/**
* Represents a captured state of suspicious sand.
+ *
+ * @see BrushableBlock
*/
-@MinecraftExperimental
-@ApiStatus.Experimental
-public interface SuspiciousSand extends Lootable, TileState {
-
- /**
- * Get the item which will be revealed when the sand is fully brushed away
- * and uncovered.
- *
- * @return the item
- */
- @Nullable
- public ItemStack getItem();
-
- /**
- * Sets the item which will be revealed when the sand is fully brushed away
- * and uncovered.
- *
- * @param item the item
- */
- public void setItem(@Nullable ItemStack item);
+@Deprecated
+public interface SuspiciousSand extends BrushableBlock {
}
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/SuspiciousSand.java b/paper-api/src/main/java/org/bukkit/block/data/Brushable.java
similarity index 66%
rename from paper-api/src/main/java/org/bukkit/block/data/type/SuspiciousSand.java
rename to paper-api/src/main/java/org/bukkit/block/data/Brushable.java
index 9a3bf5cc1..4755b4f62 100644
--- a/paper-api/src/main/java/org/bukkit/block/data/type/SuspiciousSand.java
+++ b/paper-api/src/main/java/org/bukkit/block/data/Brushable.java
@@ -1,15 +1,9 @@
-package org.bukkit.block.data.type;
-
-import org.bukkit.MinecraftExperimental;
-import org.bukkit.block.data.BlockData;
-import org.jetbrains.annotations.ApiStatus;
+package org.bukkit.block.data;
/**
* 'dusted' represents how far uncovered by brush the block is.
*/
-@MinecraftExperimental
-@ApiStatus.Experimental
-public interface SuspiciousSand extends BlockData {
+public interface Brushable extends BlockData {
/**
* Gets the value of the 'dusted' property.
diff --git a/paper-api/src/main/java/org/bukkit/block/data/Hatchable.java b/paper-api/src/main/java/org/bukkit/block/data/Hatchable.java
new file mode 100644
index 000000000..7bae4b1d7
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/block/data/Hatchable.java
@@ -0,0 +1,28 @@
+package org.bukkit.block.data;
+
+/**
+ * 'hatch' is the number of entities which may hatch from these eggs.
+ */
+public interface Hatchable extends BlockData {
+
+ /**
+ * Gets the value of the 'hatch' property.
+ *
+ * @return the 'hatch' value
+ */
+ int getHatch();
+
+ /**
+ * Sets the value of the 'hatch' property.
+ *
+ * @param hatch the new 'hatch' value
+ */
+ void setHatch(int hatch);
+
+ /**
+ * Gets the maximum allowed value of the 'hatch' property.
+ *
+ * @return the maximum 'hatch' value
+ */
+ int getMaximumHatch();
+}
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/CalibratedSculkSensor.java b/paper-api/src/main/java/org/bukkit/block/data/type/CalibratedSculkSensor.java
new file mode 100644
index 000000000..ccde95be1
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/CalibratedSculkSensor.java
@@ -0,0 +1,5 @@
+package org.bukkit.block.data.type;
+
+import org.bukkit.block.data.Directional;
+
+public interface CalibratedSculkSensor extends Directional, SculkSensor { }
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java b/paper-api/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java
index 66365eba4..a172e22ce 100644
--- a/paper-api/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java
@@ -1,9 +1,7 @@
package org.bukkit.block.data.type;
import java.util.Set;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.block.data.Directional;
-import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
@@ -13,8 +11,6 @@ import org.jetbrains.annotations.NotNull;
*
* Block may have 0, 1... {@link #getMaximumOccupiedSlots()}-1 occupied slots.
*/
-@MinecraftExperimental
-@ApiStatus.Experimental
public interface ChiseledBookshelf extends Directional {
/**
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/DecoratedPot.java b/paper-api/src/main/java/org/bukkit/block/data/type/DecoratedPot.java
index dad5c3f28..eb0ffa977 100644
--- a/paper-api/src/main/java/org/bukkit/block/data/type/DecoratedPot.java
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/DecoratedPot.java
@@ -1,11 +1,7 @@
package org.bukkit.block.data.type;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.block.data.Directional;
import org.bukkit.block.data.Waterlogged;
-import org.jetbrains.annotations.ApiStatus;
-@MinecraftExperimental
-@ApiStatus.Experimental
public interface DecoratedPot extends Directional, Waterlogged {
}
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/HangingSign.java b/paper-api/src/main/java/org/bukkit/block/data/type/HangingSign.java
index a65123a7e..c5a0c1476 100644
--- a/paper-api/src/main/java/org/bukkit/block/data/type/HangingSign.java
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/HangingSign.java
@@ -1,12 +1,8 @@
package org.bukkit.block.data.type;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.block.data.Attachable;
import org.bukkit.block.data.Rotatable;
import org.bukkit.block.data.Waterlogged;
-import org.jetbrains.annotations.ApiStatus;
-@MinecraftExperimental
-@ApiStatus.Experimental
public interface HangingSign extends Attachable, Rotatable, Waterlogged {
}
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/PinkPetals.java b/paper-api/src/main/java/org/bukkit/block/data/type/PinkPetals.java
index 0d421d152..a84b36f75 100644
--- a/paper-api/src/main/java/org/bukkit/block/data/type/PinkPetals.java
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/PinkPetals.java
@@ -1,14 +1,10 @@
package org.bukkit.block.data.type;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.block.data.Directional;
-import org.jetbrains.annotations.ApiStatus;
/**
* 'flower_amount' represents the number of petals.
*/
-@MinecraftExperimental
-@ApiStatus.Experimental
public interface PinkPetals extends Directional {
/**
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/PitcherCrop.java b/paper-api/src/main/java/org/bukkit/block/data/type/PitcherCrop.java
new file mode 100644
index 000000000..8c2da21de
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/PitcherCrop.java
@@ -0,0 +1,7 @@
+package org.bukkit.block.data.type;
+
+import org.bukkit.block.data.Ageable;
+import org.bukkit.block.data.Bisected;
+
+public interface PitcherCrop extends Ageable, Bisected {
+}
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/TurtleEgg.java b/paper-api/src/main/java/org/bukkit/block/data/type/TurtleEgg.java
index a88fad4af..0a1873656 100644
--- a/paper-api/src/main/java/org/bukkit/block/data/type/TurtleEgg.java
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/TurtleEgg.java
@@ -1,13 +1,11 @@
package org.bukkit.block.data.type;
-import org.bukkit.block.data.BlockData;
+import org.bukkit.block.data.Hatchable;
/**
- * 'hatch' is the number of turtles which may hatch from these eggs.
- *
* 'eggs' is the number of eggs which appear in this block.
*/
-public interface TurtleEgg extends BlockData {
+public interface TurtleEgg extends Hatchable {
/**
* Gets the value of the 'eggs' property.
@@ -36,25 +34,4 @@ public interface TurtleEgg extends BlockData {
* @return the maximum 'eggs' value
*/
int getMaximumEggs();
-
- /**
- * Gets the value of the 'hatch' property.
- *
- * @return the 'hatch' value
- */
- int getHatch();
-
- /**
- * Sets the value of the 'hatch' property.
- *
- * @param hatch the new 'hatch' value
- */
- void setHatch(int hatch);
-
- /**
- * Gets the maximum allowed value of the 'hatch' property.
- *
- * @return the maximum 'hatch' value
- */
- int getMaximumHatch();
}
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/WallHangingSign.java b/paper-api/src/main/java/org/bukkit/block/data/type/WallHangingSign.java
index 13bf22353..283b21024 100644
--- a/paper-api/src/main/java/org/bukkit/block/data/type/WallHangingSign.java
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/WallHangingSign.java
@@ -1,11 +1,7 @@
package org.bukkit.block.data.type;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.block.data.Directional;
import org.bukkit.block.data.Waterlogged;
-import org.jetbrains.annotations.ApiStatus;
-@MinecraftExperimental
-@ApiStatus.Experimental
public interface WallHangingSign extends Directional, Waterlogged {
}
diff --git a/paper-api/src/main/java/org/bukkit/block/sign/Side.java b/paper-api/src/main/java/org/bukkit/block/sign/Side.java
index 5abe260f7..7774c3134 100644
--- a/paper-api/src/main/java/org/bukkit/block/sign/Side.java
+++ b/paper-api/src/main/java/org/bukkit/block/sign/Side.java
@@ -6,4 +6,5 @@ package org.bukkit.block.sign;
public enum Side {
FRONT,
+ BACK;
}
diff --git a/paper-api/src/main/java/org/bukkit/block/sign/SignSide.java b/paper-api/src/main/java/org/bukkit/block/sign/SignSide.java
index 85be6cfa9..0f4ae7bd2 100644
--- a/paper-api/src/main/java/org/bukkit/block/sign/SignSide.java
+++ b/paper-api/src/main/java/org/bukkit/block/sign/SignSide.java
@@ -1,13 +1,11 @@
package org.bukkit.block.sign;
import org.bukkit.material.Colorable;
-import org.jetbrains.annotations.ApiStatus.Experimental;
import org.jetbrains.annotations.NotNull;
/**
* Represents a side of a sign.
*/
-@Experimental
public interface SignSide extends Colorable {
/**
diff --git a/paper-api/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java b/paper-api/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
index bea786a8b..455ff52d9 100644
--- a/paper-api/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
+++ b/paper-api/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
@@ -188,7 +188,6 @@ public enum EnchantmentTarget {
return ARMOR.includes(item)
|| item.equals(Material.ELYTRA)
|| item.equals(Material.CARVED_PUMPKIN)
- || item.equals(Material.JACK_O_LANTERN)
|| item.equals(Material.SKELETON_SKULL)
|| item.equals(Material.WITHER_SKELETON_SKULL)
|| item.equals(Material.ZOMBIE_HEAD)
diff --git a/paper-api/src/main/java/org/bukkit/entity/Boat.java b/paper-api/src/main/java/org/bukkit/entity/Boat.java
index 08e54aac5..88852215d 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Boat.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Boat.java
@@ -1,9 +1,7 @@
package org.bukkit.entity;
import org.bukkit.Material;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.TreeSpecies;
-import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
@@ -143,13 +141,9 @@ public interface Boat extends Vehicle {
BIRCH(Material.BIRCH_PLANKS),
JUNGLE(Material.JUNGLE_PLANKS),
ACACIA(Material.ACACIA_PLANKS),
- @MinecraftExperimental
- @ApiStatus.Experimental
CHERRY(Material.CHERRY_PLANKS),
DARK_OAK(Material.DARK_OAK_PLANKS),
MANGROVE(Material.MANGROVE_PLANKS),
- @MinecraftExperimental
- @ApiStatus.Experimental
BAMBOO(Material.BAMBOO_PLANKS),
;
diff --git a/paper-api/src/main/java/org/bukkit/entity/Camel.java b/paper-api/src/main/java/org/bukkit/entity/Camel.java
index dfa2d666a..17e4e0a82 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Camel.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Camel.java
@@ -1,16 +1,8 @@
package org.bukkit.entity;
-import org.bukkit.MinecraftExperimental;
-import org.jetbrains.annotations.ApiStatus;
-
/**
* Represents a Camel.
- *
- * @apiNote This entity is part of an experimental feature of Minecraft and
- * hence subject to change.
*/
-@MinecraftExperimental
-@ApiStatus.Experimental
public interface Camel extends AbstractHorse, Sittable {
/**
diff --git a/paper-api/src/main/java/org/bukkit/entity/EntityType.java b/paper-api/src/main/java/org/bukkit/entity/EntityType.java
index 16f1ed5bd..bb9ae8187 100644
--- a/paper-api/src/main/java/org/bukkit/entity/EntityType.java
+++ b/paper-api/src/main/java/org/bukkit/entity/EntityType.java
@@ -6,7 +6,6 @@ import java.util.Map;
import org.bukkit.Bukkit;
import org.bukkit.Keyed;
import org.bukkit.Location;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.bukkit.Translatable;
import org.bukkit.World;
@@ -19,7 +18,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;
@@ -280,14 +278,10 @@ public enum EntityType implements Keyed, Translatable {
FROG("frog", Frog.class, -1),
TADPOLE("tadpole", Tadpole.class, -1),
WARDEN("warden", Warden.class, -1),
- @MinecraftExperimental
- @ApiStatus.Experimental
CAMEL("camel", Camel.class, -1),
BLOCK_DISPLAY("block_display", BlockDisplay.class, -1),
INTERACTION("interaction", Interaction.class, -1),
ITEM_DISPLAY("item_display", ItemDisplay.class, -1),
- @MinecraftExperimental
- @ApiStatus.Experimental
SNIFFER("sniffer", Sniffer.class, -1),
TEXT_DISPLAY("text_display", TextDisplay.class, -1),
/**
diff --git a/paper-api/src/main/java/org/bukkit/entity/Player.java b/paper-api/src/main/java/org/bukkit/entity/Player.java
index b768b066d..c7dff73c6 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Player.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Player.java
@@ -522,6 +522,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void sendBlockChange(@NotNull Location loc, @NotNull BlockData block);
+ /**
+ * Send a multi-block change. This fakes a block change packet for a user
+ * at multiple locations. This will not actually change the world in any
+ * way.
+ *
+ * This method may send multiple packets to the client depending on the
+ * blocks in the collection. A packet must be sent for each chunk section
+ * modified, meaning one packet for each 16x16x16 block area. Even if only
+ * one block is changed in two different chunk sections, two packets will
+ * be sent.
+ *
+ * Additionally, this method cannot guarantee the functionality of changes
+ * being sent to the player in chunks not loaded by the client. It is the
+ * responsibility of the caller to ensure that the client is within range
+ * of the changed blocks or to handle any side effects caused as a result.
+ *
+ * @param blocks the block states to send to the player
+ */
+ public void sendBlockChanges(@NotNull Collection blocks);
+
/**
* Send a multi-block change. This fakes a block change packet for a user
* at multiple locations. This will not actually change the world in any
@@ -541,7 +561,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param blocks the block states to send to the player
* @param suppressLightUpdates whether or not light updates should be
* suppressed when updating the blocks on the client
+ * @deprecated suppressLightUpdates is not functional in versions greater
+ * than 1.19.4
*/
+ @Deprecated
public void sendBlockChanges(@NotNull Collection blocks, boolean suppressLightUpdates);
/**
diff --git a/paper-api/src/main/java/org/bukkit/entity/Sniffer.java b/paper-api/src/main/java/org/bukkit/entity/Sniffer.java
index e9a8c2c92..af5110b41 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Sniffer.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Sniffer.java
@@ -2,19 +2,12 @@ package org.bukkit.entity;
import java.util.Collection;
import org.bukkit.Location;
-import org.bukkit.MinecraftExperimental;
-import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* Represents a Sniffer.
- *
- * @apiNote This entity is part of an experimental feature of Minecraft and
- * hence subject to change.
*/
-@MinecraftExperimental
-@ApiStatus.Experimental
public interface Sniffer extends Animals {
/**
diff --git a/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java b/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java
index f1c184ed7..8f601e85d 100644
--- a/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java
+++ b/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java
@@ -7,9 +7,7 @@ import java.util.Set;
import java.util.UUID;
import org.bukkit.Keyed;
import org.bukkit.Location;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
-import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -71,8 +69,6 @@ public final class MemoryKey implements Keyed {
public static final MemoryKey LIKED_NOTEBLOCK_POSITION = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock"), Location.class);
public static final MemoryKey LIKED_NOTEBLOCK_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock_cooldown_ticks"), Integer.class);
public static final MemoryKey ITEM_PICKUP_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("item_pickup_cooldown_ticks"), Integer.class);
- @MinecraftExperimental
- @ApiStatus.Experimental
public static final MemoryKey SNIFFER_EXPLORED_POSITIONS = new MemoryKey<>(NamespacedKey.minecraft("sniffer_explored_positions"), Location.class);
/**
diff --git a/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java b/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java
index ff7708a30..ca310cfea 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
@@ -46,6 +46,7 @@ public abstract class Structure implements Keyed {
public static final Structure RUINED_PORTAL_OCEAN = getStructure("ruined_portal_ocean");
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");
private static Structure getStructure(String name) {
return Registry.STRUCTURE.get(NamespacedKey.minecraft(name));
diff --git a/paper-api/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java b/paper-api/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java
index e7e3e85f3..b99f26079 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java
@@ -1,15 +1,11 @@
package org.bukkit.inventory;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.block.ChiseledBookshelf;
-import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
/**
* Interface to the inventory of a chiseled bookshelf.
*/
-@MinecraftExperimental
-@ApiStatus.Experimental
public interface ChiseledBookshelfInventory extends Inventory {
@Nullable
diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemFlag.java b/paper-api/src/main/java/org/bukkit/inventory/ItemFlag.java
index 0a1c39a2a..42fcc3114 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/ItemFlag.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/ItemFlag.java
@@ -1,8 +1,5 @@
package org.bukkit.inventory;
-import org.bukkit.MinecraftExperimental;
-import org.jetbrains.annotations.ApiStatus;
-
/**
* A ItemFlag can hide some Attributes from ItemStacks
*/
@@ -40,7 +37,5 @@ public enum ItemFlag {
/**
* Setting to show/hide armor trim from leather armor.
*/
- @MinecraftExperimental
- @ApiStatus.Experimental
HIDE_ARMOR_TRIM;
}
diff --git a/paper-api/src/main/java/org/bukkit/inventory/SmithingInventory.java b/paper-api/src/main/java/org/bukkit/inventory/SmithingInventory.java
index 8f7749d10..96d526b7b 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/SmithingInventory.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/SmithingInventory.java
@@ -1,15 +1,10 @@
package org.bukkit.inventory;
-import org.bukkit.MinecraftExperimental;
import org.jetbrains.annotations.Nullable;
/**
* Interface to the inventory of a Smithing table.
- *
- * @apiNote Check {@link #getType()} to better handle either the current or experimental
- * variant of this inventory
*/
-@MinecraftExperimental
public interface SmithingInventory extends Inventory {
/**
diff --git a/paper-api/src/main/java/org/bukkit/inventory/SmithingTrimRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/SmithingTrimRecipe.java
index 8eff1b916..32cbdc342 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/SmithingTrimRecipe.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/SmithingTrimRecipe.java
@@ -1,19 +1,12 @@
package org.bukkit.inventory;
import org.bukkit.Material;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
-import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
* Represents a smithing trim recipe.
- *
- * @apiNote This recipe is part of an experimental feature of Minecraft and
- * hence subject to change.
*/
-@MinecraftExperimental
-@ApiStatus.Experimental
public class SmithingTrimRecipe extends SmithingRecipe implements ComplexRecipe {
private final RecipeChoice template;
diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/ArmorMeta.java b/paper-api/src/main/java/org/bukkit/inventory/meta/ArmorMeta.java
index 5d4df7132..e167cb5c4 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/meta/ArmorMeta.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/meta/ArmorMeta.java
@@ -1,8 +1,6 @@
package org.bukkit.inventory.meta;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.inventory.meta.trim.ArmorTrim;
-import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -12,8 +10,6 @@ import org.jetbrains.annotations.Nullable;
* Note: Armor trims are part of an experimental feature of Minecraft
* and hence subject to change.
*/
-@MinecraftExperimental
-@ApiStatus.Experimental
public interface ArmorMeta extends ItemMeta {
/**
diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java b/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java
index f7f8d0d0b..bc992fdf6 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java
@@ -1,14 +1,10 @@
package org.bukkit.inventory.meta;
import java.util.List;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.inventory.ItemStack;
-import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-@MinecraftExperimental
-@ApiStatus.Experimental
public interface BundleMeta extends ItemMeta {
/**
diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/SkullMeta.java b/paper-api/src/main/java/org/bukkit/inventory/meta/SkullMeta.java
index 461cdecc3..5a18a66a0 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/meta/SkullMeta.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/meta/SkullMeta.java
@@ -1,10 +1,8 @@
package org.bukkit.inventory.meta;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.bukkit.OfflinePlayer;
import org.bukkit.profile.PlayerProfile;
-import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -90,8 +88,6 @@ public interface SkullMeta extends ItemMeta {
*
* @param noteBlockSound the key of the sound to be played, or null
*/
- @MinecraftExperimental
- @ApiStatus.Experimental
void setNoteBlockSound(@Nullable NamespacedKey noteBlockSound);
/**
@@ -102,8 +98,6 @@ public interface SkullMeta extends ItemMeta {
*
* @return the key of the sound, or null
*/
- @MinecraftExperimental
- @ApiStatus.Experimental
@Nullable
NamespacedKey getNoteBlockSound();
diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/ArmorTrim.java b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/ArmorTrim.java
index c33c92f56..b4877e319 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/ArmorTrim.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/ArmorTrim.java
@@ -2,20 +2,14 @@ package org.bukkit.inventory.meta.trim;
import com.google.common.base.Preconditions;
import java.util.Objects;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.inventory.meta.ArmorMeta;
-import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
* Represents an armor trim that may be applied to an item.
*
* @see ArmorMeta#setTrim(ArmorTrim)
- * @apiNote Armor trims are part of an experimental feature of Minecraft and
- * hence subject to change.
*/
-@MinecraftExperimental
-@ApiStatus.Experimental
public class ArmorTrim {
private final TrimMaterial material;
diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java
index 606e8ebb7..4327cbc15 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java
@@ -2,20 +2,12 @@ package org.bukkit.inventory.meta.trim;
import org.bukkit.Keyed;
import org.bukkit.Material;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.bukkit.Registry;
-import org.jetbrains.annotations.ApiStatus;
/**
* Represents a material that may be used in an {@link ArmorTrim}.
- *
- * @apiNote Armor trims are part of an experimental feature of Minecraft and
- * hence subject to change. Constants in this class may be null if a data pack
- * is not present to enable these features.
*/
-@MinecraftExperimental
-@ApiStatus.Experimental
public interface TrimMaterial extends Keyed {
/**
diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java
index 8c02eadca..a63b1e245 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java
@@ -2,20 +2,12 @@ package org.bukkit.inventory.meta.trim;
import org.bukkit.Keyed;
import org.bukkit.Material;
-import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.bukkit.Registry;
-import org.jetbrains.annotations.ApiStatus;
/**
* Represents a pattern that may be used in an {@link ArmorTrim}.
- *
- * @apiNote Armor trims are part of an experimental feature of Minecraft and
- * hence subject to change. Constants in this class may be null if a data pack
- * is not present to enable these features.
*/
-@MinecraftExperimental
-@ApiStatus.Experimental
public interface TrimPattern extends Keyed {
/**
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 b76a5b28a..95bbda006 100644
--- a/paper-api/src/main/java/org/bukkit/loot/LootTables.java
+++ b/paper-api/src/main/java/org/bukkit/loot/LootTables.java
@@ -155,7 +155,15 @@ public enum LootTables implements Keyed {
SHEPHERD_GIFT("gameplay/hero_of_the_village/shepherd_gift"),
TOOLSMITH_GIFT("gameplay/hero_of_the_village/toolsmith_gift"),
WEAPONSMITH_GIFT("gameplay/hero_of_the_village/weaponsmith_gift"),
+ SNIFFER_DIGGING("gameplay/sniffer_digging"),
PIGLIN_BARTERING("gameplay/piglin_bartering"),
+ // Archaeology
+ DESERT_WELL_ARCHAEOLOGY("archaeology/desert_well"),
+ DESERT_PYRAMID_ARCHAEOLOGY("archaeology/desert_pyramid"),
+ TRAIL_RUINS_ARCHAEOLOGY_COMMON("archaeology/trail_ruins_common"),
+ TRAIL_RUINS_ARCHAEOLOGY_RARE("archaeology/trail_ruins_rare"),
+ OCEAN_RUIN_WARM_ARCHAEOLOGY("archaeology/ocean_ruin_warm"),
+ OCEAN_RUIN_COLD_ARCHAEOLOGY("archaeology/ocean_ruin_cold"),
// Sheep
SHEEP("entities/sheep"),
SHEEP_BLACK("entities/sheep/black"),