diff --git a/paper-api/src/main/java/org/bukkit/Bukkit.java b/paper-api/src/main/java/org/bukkit/Bukkit.java
index e0b22dd112..0d743a27e0 100644
--- a/paper-api/src/main/java/org/bukkit/Bukkit.java
+++ b/paper-api/src/main/java/org/bukkit/Bukkit.java
@@ -883,9 +883,8 @@ public final class Bukkit {
*
* @param id the id of the map to get
* @return a map view if it exists, or null otherwise
- * @deprecated Magic value
*/
- @Deprecated(since = "1.6.2")
+ // @Deprecated(since = "1.6.2") // Paper - Not a magic value
@Nullable
public static MapView getMap(int id) {
return server.getMap(id);
@@ -964,8 +963,14 @@ public final class Bukkit {
* Returns the primary logger associated with this server instance.
*
* @return Logger associated with this server
+ * @see org.bukkit.plugin.Plugin#getSLF4JLogger()
+ * @apiNote This logger is for the Minecraft server software, not for specific plugins. You should
+ * use a logger for a specific plugin, either via {@link org.bukkit.plugin.Plugin#getSLF4JLogger()}
+ * or {@link org.bukkit.plugin.Plugin#getLogger()} or create a specific logger for a class via slf4j.
+ * That way, log messages contain contextual information about the source of the message.
*/
@NotNull
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper - internalize Bukkit#getLogger
public static Logger getLogger() {
return server.getLogger();
}
@@ -1362,10 +1367,8 @@ public final class Bukkit {
* @param name the name the player to retrieve
* @return an offline player
* @see #getOfflinePlayer(java.util.UUID)
- * @deprecated Persistent storage of users should be by UUID as names are no longer
- * unique past a single session.
*/
- @Deprecated(since = "1.7.5")
+ // @Deprecated(since = "1.7.5") // Paper
@NotNull
public static OfflinePlayer getOfflinePlayer(@NotNull String name) {
return server.getOfflinePlayer(name);
@@ -1978,7 +1981,7 @@ public final class Bukkit {
*
* @return the scoreboard manager or null if no worlds are loaded.
*/
- @Nullable
+ @NotNull // Paper
public static ScoreboardManager getScoreboardManager() {
return server.getScoreboardManager();
}
diff --git a/paper-api/src/main/java/org/bukkit/CoalType.java b/paper-api/src/main/java/org/bukkit/CoalType.java
index 082632bcfa..ede5708149 100644
--- a/paper-api/src/main/java/org/bukkit/CoalType.java
+++ b/paper-api/src/main/java/org/bukkit/CoalType.java
@@ -7,6 +7,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents the two types of coal
*/
+@Deprecated(forRemoval = true, since = "1.13")
public enum CoalType {
COAL(0x0),
CHARCOAL(0x1);
diff --git a/paper-api/src/main/java/org/bukkit/CropState.java b/paper-api/src/main/java/org/bukkit/CropState.java
index c36e0ffe9b..9420e91908 100644
--- a/paper-api/src/main/java/org/bukkit/CropState.java
+++ b/paper-api/src/main/java/org/bukkit/CropState.java
@@ -7,6 +7,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents the different growth states of crops
*/
+@Deprecated(forRemoval = true, since = "1.13")
public enum CropState {
/**
diff --git a/paper-api/src/main/java/org/bukkit/Difficulty.java b/paper-api/src/main/java/org/bukkit/Difficulty.java
index c1f1f29b70..f358017835 100644
--- a/paper-api/src/main/java/org/bukkit/Difficulty.java
+++ b/paper-api/src/main/java/org/bukkit/Difficulty.java
@@ -44,9 +44,9 @@ public enum Difficulty {
* Gets the difficulty value associated with this Difficulty.
*
* @return An integer value of this difficulty
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public int getValue() {
return value;
}
@@ -57,9 +57,9 @@ public enum Difficulty {
* @param value Value to check
* @return Associative {@link Difficulty} with the given value, or null if
* it doesn't exist
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static Difficulty getByValue(final int value) {
return BY_ID.get(value);
diff --git a/paper-api/src/main/java/org/bukkit/DyeColor.java b/paper-api/src/main/java/org/bukkit/DyeColor.java
index 807747db77..2f038f233a 100644
--- a/paper-api/src/main/java/org/bukkit/DyeColor.java
+++ b/paper-api/src/main/java/org/bukkit/DyeColor.java
@@ -96,9 +96,9 @@ public enum DyeColor {
*
* @return A byte containing the wool data value of this color
* @see #getDyeData()
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getWoolData() {
return woolData;
}
@@ -142,9 +142,9 @@ public enum DyeColor {
* @return The {@link DyeColor} representing the given value, or null if
* it doesn't exist
* @see #getByDyeData(byte)
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static DyeColor getByWoolData(final byte data) {
int i = 0xff & data;
@@ -202,9 +202,9 @@ public enum DyeColor {
*
* @param name dye name
* @return dye color
- * @deprecated legacy use only
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.13")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@NotNull
public static DyeColor legacyValueOf(@Nullable String name) {
return "SILVER".equals(name) ? DyeColor.LIGHT_GRAY : DyeColor.valueOf(name);
diff --git a/paper-api/src/main/java/org/bukkit/Effect.java b/paper-api/src/main/java/org/bukkit/Effect.java
index c196201850..d63395e588 100644
--- a/paper-api/src/main/java/org/bukkit/Effect.java
+++ b/paper-api/src/main/java/org/bukkit/Effect.java
@@ -357,9 +357,9 @@ public enum Effect {
* Gets the ID for this effect.
*
* @return ID of this effect
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public int getId() {
return this.id;
}
@@ -386,9 +386,9 @@ public enum Effect {
*
* @param id ID of the Effect to return
* @return Effect with the given ID
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static Effect getById(int id) {
return BY_ID.get(id);
diff --git a/paper-api/src/main/java/org/bukkit/EntityEffect.java b/paper-api/src/main/java/org/bukkit/EntityEffect.java
index 5b8dc0c5c2..d7ccccdf3f 100644
--- a/paper-api/src/main/java/org/bukkit/EntityEffect.java
+++ b/paper-api/src/main/java/org/bukkit/EntityEffect.java
@@ -345,9 +345,9 @@ public enum EntityEffect {
* Gets the data value of this EntityEffect, may not be unique.
*
* @return The data value
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getData() {
return data;
}
diff --git a/paper-api/src/main/java/org/bukkit/GameMode.java b/paper-api/src/main/java/org/bukkit/GameMode.java
index 3d693c42a8..81e45984a8 100644
--- a/paper-api/src/main/java/org/bukkit/GameMode.java
+++ b/paper-api/src/main/java/org/bukkit/GameMode.java
@@ -44,9 +44,9 @@ public enum GameMode {
* Gets the mode value associated with this GameMode
*
* @return An integer value of this gamemode
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public int getValue() {
return value;
}
@@ -57,9 +57,9 @@ public enum GameMode {
* @param value Value to check
* @return Associative {@link GameMode} with the given value, or null if
* it doesn't exist
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static GameMode getByValue(final int value) {
return BY_ID.get(value);
diff --git a/paper-api/src/main/java/org/bukkit/GrassSpecies.java b/paper-api/src/main/java/org/bukkit/GrassSpecies.java
index 9b6d8134f1..43da0eb033 100644
--- a/paper-api/src/main/java/org/bukkit/GrassSpecies.java
+++ b/paper-api/src/main/java/org/bukkit/GrassSpecies.java
@@ -6,7 +6,9 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents the different types of grass.
+ * @deprecated use {@link org.bukkit.block.data.BlockData}
*/
+@Deprecated(forRemoval = true, since = "1.13")
public enum GrassSpecies {
/**
diff --git a/paper-api/src/main/java/org/bukkit/Location.java b/paper-api/src/main/java/org/bukkit/Location.java
index b02efba048..fb4b6f0e90 100644
--- a/paper-api/src/main/java/org/bukkit/Location.java
+++ b/paper-api/src/main/java/org/bukkit/Location.java
@@ -46,7 +46,7 @@ public class Location implements Cloneable, ConfigurationSerializable, io.paperm
* @param y The y-coordinate of this new location
* @param z The z-coordinate of this new location
*/
- public Location(@Nullable final World world, final double x, final double y, final double z) {
+ public Location(@UndefinedNullability final World world, final double x, final double y, final double z) { // Paper
this(world, x, y, z, 0, 0);
}
@@ -60,7 +60,7 @@ public class Location implements Cloneable, ConfigurationSerializable, io.paperm
* @param yaw The absolute rotation on the x-plane, in degrees
* @param pitch The absolute rotation on the y-plane, in degrees
*/
- public Location(@Nullable final World world, final double x, final double y, final double z, final float yaw, final float pitch) {
+ public Location(@UndefinedNullability final World world, final double x, final double y, final double z, final float yaw, final float pitch) { // Paper
if (world != null) {
this.world = new WeakReference<>(world);
}
@@ -102,7 +102,7 @@ public class Location implements Cloneable, ConfigurationSerializable, io.paperm
* @throws IllegalArgumentException when world is unloaded
* @see #isWorldLoaded()
*/
- @Nullable
+ @UndefinedNullability // Paper
public World getWorld() {
if (this.world == null) {
return null;
diff --git a/paper-api/src/main/java/org/bukkit/Material.java b/paper-api/src/main/java/org/bukkit/Material.java
index 9d1f82be4f..fe63fef02e 100644
--- a/paper-api/src/main/java/org/bukkit/Material.java
+++ b/paper-api/src/main/java/org/bukkit/Material.java
@@ -4838,20 +4838,20 @@ public enum Material implements Keyed, Translatable {
* Do not use for any reason.
*
* @return ID of this material
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @ApiStatus.Internal // Paper
public int getId() {
Preconditions.checkArgument(legacy, "Cannot get ID of Modern Material");
return id;
}
/**
- * Do not use for any reason.
+ * Checks if this constant is a legacy material.
*
* @return legacy status
*/
- @Deprecated(since = "1.13")
+ // @Deprecated(since = "1.13") // Paper - this is useful, don't deprecate
public boolean isLegacy() {
return legacy;
}
@@ -4927,8 +4927,10 @@ public enum Material implements Keyed, Translatable {
* Gets the MaterialData class associated with this Material
*
* @return MaterialData associated with this Material
+ * @deprecated use {@link #createBlockData()}
*/
@NotNull
+ @Deprecated // Paper
public Class extends MaterialData> getData() {
Preconditions.checkArgument(legacy, "Cannot get data class of Modern Material");
return ctor.getDeclaringClass();
@@ -5384,7 +5386,11 @@ public enum Material implements Keyed, Translatable {
* material.
*
* @return true if this material can be interacted with.
+ * @deprecated This method is not comprehensive and does not accurately reflect what block types are
+ * interactable. Many "interactions" are defined on the item not block, and many are conditional on some other world state
+ * checks being true.
*/
+ @Deprecated // Paper
public boolean isInteractable() {
BlockType type = asBlockType();
return type != null && type.isInteractable();
diff --git a/paper-api/src/main/java/org/bukkit/NamespacedKey.java b/paper-api/src/main/java/org/bukkit/NamespacedKey.java
index 499c2293fe..ceb1009252 100644
--- a/paper-api/src/main/java/org/bukkit/NamespacedKey.java
+++ b/paper-api/src/main/java/org/bukkit/NamespacedKey.java
@@ -74,12 +74,14 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key { // Pap
/**
* Create a key in a specific namespace.
+ *
+ * For most plugin related code, you should prefer using the
+ * {@link NamespacedKey#NamespacedKey(Plugin, String)} constructor.
*
* @param namespace namespace
* @param key key
- * @apiNote should never be used by plugins, for internal use only!!
+ * @see #NamespacedKey(Plugin, String)
*/
- @ApiStatus.Internal
public NamespacedKey(@NotNull String namespace, @NotNull String key) {
Preconditions.checkArgument(namespace != null && isValidNamespace(namespace), "Invalid namespace. Must be [a-z0-9._-]: %s", namespace);
Preconditions.checkArgument(key != null && isValidKey(key), "Invalid key. Must be [a-z0-9/._-]: %s", key);
diff --git a/paper-api/src/main/java/org/bukkit/NetherWartsState.java b/paper-api/src/main/java/org/bukkit/NetherWartsState.java
index f43209cf7b..d6c09d8818 100644
--- a/paper-api/src/main/java/org/bukkit/NetherWartsState.java
+++ b/paper-api/src/main/java/org/bukkit/NetherWartsState.java
@@ -1,5 +1,11 @@
package org.bukkit;
+// Paper start
+/**
+ * @deprecated use {@link org.bukkit.block.data.BlockData} and {@link org.bukkit.block.data.Ageable}
+ */
+@Deprecated(forRemoval = true, since = "1.13")
+// Paper end
public enum NetherWartsState {
/**
diff --git a/paper-api/src/main/java/org/bukkit/Note.java b/paper-api/src/main/java/org/bukkit/Note.java
index 3ecd0f34b7..aff8583467 100644
--- a/paper-api/src/main/java/org/bukkit/Note.java
+++ b/paper-api/src/main/java/org/bukkit/Note.java
@@ -39,9 +39,9 @@ public class Note {
* Returns the not sharped id of this tone.
*
* @return the not sharped id of this tone.
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getId() {
return getId(false);
}
@@ -53,9 +53,9 @@ public class Note {
*
* @param sharped Set to true to return the sharped id.
* @return the id of this tone.
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getId(boolean sharped) {
byte id = (byte) (sharped && sharpable ? this.id + 1 : this.id);
@@ -78,9 +78,9 @@ public class Note {
* @return if the tone id is the sharped id of the tone.
* @throws IllegalArgumentException if neither the tone nor the
* semitone have the id.
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public boolean isSharped(byte id) {
if (id == getId(false)) {
return false;
@@ -97,9 +97,9 @@ public class Note {
*
* @param id the id of the tone.
* @return the tone to id.
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static Tone getById(byte id) {
return BY_DATA.get(id);
@@ -222,9 +222,9 @@ public class Note {
* Returns the internal id of this note.
*
* @return the internal id of this note.
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getId() {
return note;
}
diff --git a/paper-api/src/main/java/org/bukkit/Registry.java b/paper-api/src/main/java/org/bukkit/Registry.java
index f0e8068659..b4f297f90e 100644
--- a/paper-api/src/main/java/org/bukkit/Registry.java
+++ b/paper-api/src/main/java/org/bukkit/Registry.java
@@ -248,14 +248,12 @@ public interface Registry extends Iterable {
*
* @see TrimMaterial
*/
- @ApiStatus.Experimental
Registry TRIM_MATERIAL = Objects.requireNonNull(Bukkit.getRegistry(TrimMaterial.class), "No registry present for TrimMaterial. This is a bug.");
/**
* Trim patterns.
*
* @see TrimPattern
*/
- @ApiStatus.Experimental
Registry TRIM_PATTERN = Objects.requireNonNull(Bukkit.getRegistry(TrimPattern.class), "No registry present for TrimPattern. This is a bug.");
/**
* Damage types.
@@ -385,8 +383,11 @@ public interface Registry extends Iterable {
*
* @param input non-null input
* @return registered object or null if does not exist
+ * @deprecated this method's behavior is broken and not useful. If you want to get an object
+ * based on its vanilla name, or a key, wrap it in a {@link NamespacedKey} object and use {@link #get(NamespacedKey)}
*/
@Nullable
+ @Deprecated(forRemoval = true) // Paper
default T match(@NotNull String input) {
Preconditions.checkArgument(input != null, "input must not be null");
diff --git a/paper-api/src/main/java/org/bukkit/SandstoneType.java b/paper-api/src/main/java/org/bukkit/SandstoneType.java
index 2306c5a6a6..d2ea2c81f9 100644
--- a/paper-api/src/main/java/org/bukkit/SandstoneType.java
+++ b/paper-api/src/main/java/org/bukkit/SandstoneType.java
@@ -6,7 +6,9 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents the three different types of Sandstone
+ * @deprecated use {@link org.bukkit.block.data.BlockData}
*/
+@Deprecated(forRemoval = true, since = "1.13")
public enum SandstoneType {
CRACKED(0x0),
GLYPHED(0x1),
diff --git a/paper-api/src/main/java/org/bukkit/Server.java b/paper-api/src/main/java/org/bukkit/Server.java
index 7b5f6091c8..03d6e69b17 100644
--- a/paper-api/src/main/java/org/bukkit/Server.java
+++ b/paper-api/src/main/java/org/bukkit/Server.java
@@ -744,9 +744,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*
* @param id the id of the map to get
* @return a map view if it exists, or null otherwise
- * @deprecated Magic value
*/
- @Deprecated(since = "1.6.2")
+ // @Deprecated(since = "1.6.2") // Paper - Not a magic value
@Nullable
public MapView getMap(int id);
@@ -813,8 +812,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* Returns the primary logger associated with this server instance.
*
* @return Logger associated with this server
+ * @see org.bukkit.plugin.Plugin#getSLF4JLogger()
+ * @apiNote This logger is for the Minecraft server software, not for specific plugins. You should
+ * use a logger for a specific plugin, either via {@link org.bukkit.plugin.Plugin#getSLF4JLogger()}
+ * or {@link org.bukkit.plugin.Plugin#getLogger()} or create a specific logger for a class via slf4j.
+ * That way, log messages contain contextual information about the source of the message.
*/
@NotNull
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper - internalize Bukkit#getLogger
public Logger getLogger();
/**
@@ -1151,10 +1156,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @param name the name the player to retrieve
* @return an offline player
* @see #getOfflinePlayer(java.util.UUID)
- * @deprecated Persistent storage of users should be by UUID as names are no longer
- * unique past a single session.
*/
- @Deprecated(since = "1.7.5")
+ // @Deprecated(since = "1.7.5") // Paper
@NotNull
public OfflinePlayer getOfflinePlayer(@NotNull String name);
@@ -1672,7 +1675,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*
* @return the scoreboard manager or null if no worlds are loaded.
*/
- @Nullable
+ @NotNull // Paper
ScoreboardManager getScoreboardManager();
/**
diff --git a/paper-api/src/main/java/org/bukkit/SkullType.java b/paper-api/src/main/java/org/bukkit/SkullType.java
index 9b97694294..d2135724fb 100644
--- a/paper-api/src/main/java/org/bukkit/SkullType.java
+++ b/paper-api/src/main/java/org/bukkit/SkullType.java
@@ -4,7 +4,7 @@ package org.bukkit;
* Represents the different types of skulls.
* @deprecated check {@link Material} instead
*/
-@Deprecated(since = "1.13")
+@Deprecated(since = "1.13", forRemoval = true)
public enum SkullType {
SKELETON,
WITHER,
diff --git a/paper-api/src/main/java/org/bukkit/TreeSpecies.java b/paper-api/src/main/java/org/bukkit/TreeSpecies.java
index 9203f396c8..abbe7c3b29 100644
--- a/paper-api/src/main/java/org/bukkit/TreeSpecies.java
+++ b/paper-api/src/main/java/org/bukkit/TreeSpecies.java
@@ -9,7 +9,7 @@ import org.jetbrains.annotations.Nullable;
*
* @deprecated Deprecated, see usage methods for replacement(s)
*/
-@Deprecated(since = "1.19")
+@Deprecated(since = "1.19", forRemoval = true)
public enum TreeSpecies {
/**
diff --git a/paper-api/src/main/java/org/bukkit/UndefinedNullability.java b/paper-api/src/main/java/org/bukkit/UndefinedNullability.java
index 3f0ea49056..ce93ac1ada 100644
--- a/paper-api/src/main/java/org/bukkit/UndefinedNullability.java
+++ b/paper-api/src/main/java/org/bukkit/UndefinedNullability.java
@@ -14,6 +14,7 @@ import org.jetbrains.annotations.ApiStatus;
* suggests a bad API design.
*/
@Retention(RetentionPolicy.CLASS)
+@java.lang.annotation.Documented // Paper
@ApiStatus.Internal
@Deprecated(since = "1.13.2")
public @interface UndefinedNullability {
diff --git a/paper-api/src/main/java/org/bukkit/Vibration.java b/paper-api/src/main/java/org/bukkit/Vibration.java
index e455eb21ab..bbc01e7c19 100644
--- a/paper-api/src/main/java/org/bukkit/Vibration.java
+++ b/paper-api/src/main/java/org/bukkit/Vibration.java
@@ -13,6 +13,14 @@ public class Vibration {
private final Destination destination;
private final int arrivalTime;
+ // Paper start
+ public Vibration(@NotNull Destination destination, @NotNull int arrivalTime) {
+ this.destination = destination;
+ this.arrivalTime = arrivalTime;
+ this.origin = new Location(null, 0, 0, 0); // Dummy origin because getter expects null
+ }
+
+ @Deprecated(forRemoval = true) // Paper end
public Vibration(@NotNull Location origin, @NotNull Destination destination, int arrivalTime) {
this.origin = origin;
this.destination = destination;
@@ -22,9 +30,11 @@ public class Vibration {
/**
* Get the origin of the vibration.
*
+ * @deprecated unused as of 1.19
* @return origin
*/
@NotNull
+ @Deprecated(forRemoval = true) // Paper
public Location getOrigin() {
return origin;
}
diff --git a/paper-api/src/main/java/org/bukkit/World.java b/paper-api/src/main/java/org/bukkit/World.java
index 10e9981c90..85900b9f41 100644
--- a/paper-api/src/main/java/org/bukkit/World.java
+++ b/paper-api/src/main/java/org/bukkit/World.java
@@ -418,9 +418,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
* @param z Z-coordinate of the chunk
* @return Whether the chunk was actually refreshed
*
- * @deprecated This method is not guaranteed to work suitably across all client implementations.
*/
- @Deprecated(since = "1.8")
+ // @Deprecated(since = "1.8") // Paper
public boolean refreshChunk(int x, int z);
/**
@@ -3850,6 +3849,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
StructureSearchResult locateNearestStructure(@NotNull Location origin, @NotNull Structure structure, int radius, boolean findUnexplored);
// Spigot start
+ @Deprecated(forRemoval = true) // Paper
public class Spigot {
/**
@@ -3883,7 +3883,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
}
}
+ /**
+ * @deprecated Unsupported api
+ */
@NotNull
+ @Deprecated // Paper
Spigot spigot();
// Spigot end
@@ -4101,9 +4105,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
* Gets the dimension ID of this environment
*
* @return dimension ID
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public int getId() {
return id;
}
@@ -4113,9 +4117,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
*
* @param id The ID of the environment
* @return The environment
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static Environment getEnvironment(int id) {
return lookup.get(id);
diff --git a/paper-api/src/main/java/org/bukkit/block/Block.java b/paper-api/src/main/java/org/bukkit/block/Block.java
index a5b03162e5..2566c7bb9e 100644
--- a/paper-api/src/main/java/org/bukkit/block/Block.java
+++ b/paper-api/src/main/java/org/bukkit/block/Block.java
@@ -526,7 +526,7 @@ public interface Block extends Metadatable, Translatable {
* @return a list of dropped items for this type of block
*/
@NotNull
- Collection getDrops(@NotNull ItemStack tool, @Nullable Entity entity);
+ Collection getDrops(@Nullable ItemStack tool, @Nullable Entity entity); // Paper
/**
* Returns if the given item is a preferred choice to break this Block.
diff --git a/paper-api/src/main/java/org/bukkit/block/BlockState.java b/paper-api/src/main/java/org/bukkit/block/BlockState.java
index dd1e7b71d7..555d0492c2 100644
--- a/paper-api/src/main/java/org/bukkit/block/BlockState.java
+++ b/paper-api/src/main/java/org/bukkit/block/BlockState.java
@@ -36,8 +36,10 @@ public interface BlockState extends Metadatable {
* Gets the metadata for this block state.
*
* @return block specific metadata
+ * @deprecated use {@link #getBlockData()}
*/
@NotNull
+ @Deprecated(forRemoval = true, since = "1.13")
MaterialData getData();
/**
@@ -151,7 +153,9 @@ public interface BlockState extends Metadatable {
* Sets the metadata for this block state.
*
* @param data New block specific metadata
+ * @deprecated use {@link #setBlockData(BlockData)}
*/
+ @Deprecated(forRemoval = true, since = "1.13")
void setData(@NotNull MaterialData data);
/**
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 04bbbaba10..95eb7d7718 100644
--- a/paper-api/src/main/java/org/bukkit/block/BlockType.java
+++ b/paper-api/src/main/java/org/bukkit/block/BlockType.java
@@ -3551,9 +3551,14 @@ public interface BlockType extends Keyed, Translatable {
* state as well. This method will return true if there is at least one
* state in which additional interact handling is performed for the
* block type.
+ *
+ * @deprecated This method is not comprehensive and does not accurately reflect what block types are
+ * interactable. Many "interactions" are defined on the item not block, and many are conditional on some other world state
+ * checks being true.
*
* @return true if this block type can be interacted with.
*/
+ @Deprecated // Paper
boolean isInteractable();
/**
diff --git a/paper-api/src/main/java/org/bukkit/block/BrushableBlock.java b/paper-api/src/main/java/org/bukkit/block/BrushableBlock.java
index 4bd127b364..f2557a87f4 100644
--- a/paper-api/src/main/java/org/bukkit/block/BrushableBlock.java
+++ b/paper-api/src/main/java/org/bukkit/block/BrushableBlock.java
@@ -15,7 +15,7 @@ public interface BrushableBlock extends Lootable, TileState {
*
* @return the item
*/
- @Nullable
+ @org.jetbrains.annotations.NotNull // Paper
public ItemStack getItem();
/**
diff --git a/paper-api/src/main/java/org/bukkit/block/PistonMoveReaction.java b/paper-api/src/main/java/org/bukkit/block/PistonMoveReaction.java
index c171f89ea4..a7b915ded9 100644
--- a/paper-api/src/main/java/org/bukkit/block/PistonMoveReaction.java
+++ b/paper-api/src/main/java/org/bukkit/block/PistonMoveReaction.java
@@ -48,9 +48,9 @@ public enum PistonMoveReaction {
/**
* @return The ID of the move reaction
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public int getId() {
return this.id;
}
@@ -58,9 +58,9 @@ public enum PistonMoveReaction {
/**
* @param id An ID
* @return The move reaction with that ID
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static PistonMoveReaction getById(int id) {
return byId.get(id);
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 3b5f6341c8..b223318c48 100644
--- a/paper-api/src/main/java/org/bukkit/block/SuspiciousSand.java
+++ b/paper-api/src/main/java/org/bukkit/block/SuspiciousSand.java
@@ -5,6 +5,6 @@ package org.bukkit.block;
*
* @see BrushableBlock
*/
-@Deprecated(since = "1.20")
+@Deprecated(since = "1.20", forRemoval = true)
public interface SuspiciousSand extends BrushableBlock {
}
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 4d8defb325..3ba81dc0e6 100644
--- a/paper-api/src/main/java/org/bukkit/enchantments/Enchantment.java
+++ b/paper-api/src/main/java/org/bukkit/enchantments/Enchantment.java
@@ -263,7 +263,7 @@ public abstract class Enchantment implements Keyed, Translatable {
* @deprecated enchantment groupings are now managed by tags, not categories
*/
@NotNull
- @Deprecated(since = "1.20.5")
+ @Deprecated(since = "1.20.5", forRemoval = true) @org.jetbrains.annotations.Contract("-> fail") // Paper
public abstract EnchantmentTarget getItemTarget();
/**
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 c901990454..ebb6976aba 100644
--- a/paper-api/src/main/java/org/bukkit/entity/AbstractArrow.java
+++ b/paper-api/src/main/java/org/bukkit/entity/AbstractArrow.java
@@ -157,7 +157,7 @@ public interface AbstractArrow extends Projectile {
*
* @return The firing ItemStack
*/
- @NotNull
+ @Nullable // Paper
@ApiStatus.Experimental
public ItemStack getWeapon();
diff --git a/paper-api/src/main/java/org/bukkit/entity/Enderman.java b/paper-api/src/main/java/org/bukkit/entity/Enderman.java
index 3afe2787de..875817b807 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Enderman.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Enderman.java
@@ -25,15 +25,19 @@ public interface Enderman extends Monster {
* Gets the id and data of the block that the Enderman is carrying.
*
* @return MaterialData containing the id and data of the block
+ * @deprecated use {@link #getCarriedBlock()}
*/
@NotNull
+ @Deprecated(forRemoval = true, since = "1.13")
public MaterialData getCarriedMaterial();
/**
* Sets the id and data of the block that the Enderman is carrying.
*
* @param material data to set the carried block to
+ * @deprecated use {@link #setCarriedBlock(BlockData)}
*/
+ @Deprecated(forRemoval = true, since = "1.13")
public void setCarriedMaterial(@NotNull MaterialData material);
/**
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 896b87bfc3..dc944ad75f 100644
--- a/paper-api/src/main/java/org/bukkit/entity/EntityType.java
+++ b/paper-api/src/main/java/org/bukkit/entity/EntityType.java
@@ -417,9 +417,9 @@ public enum EntityType implements Keyed, Translatable {
*
* @param name the entity type's name
* @return the matching entity type or null
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Contract("null -> null")
@Nullable
public static EntityType fromName(@Nullable String name) {
diff --git a/paper-api/src/main/java/org/bukkit/entity/ItemDisplay.java b/paper-api/src/main/java/org/bukkit/entity/ItemDisplay.java
index bd718c1cf6..586ac8abbd 100644
--- a/paper-api/src/main/java/org/bukkit/entity/ItemDisplay.java
+++ b/paper-api/src/main/java/org/bukkit/entity/ItemDisplay.java
@@ -14,7 +14,7 @@ public interface ItemDisplay extends Display {
*
* @return the displayed item stack
*/
- @Nullable
+ @NotNull // Paper
ItemStack getItemStack();
/**
diff --git a/paper-api/src/main/java/org/bukkit/entity/LightningStrike.java b/paper-api/src/main/java/org/bukkit/entity/LightningStrike.java
index 186d0bbfca..608628b632 100644
--- a/paper-api/src/main/java/org/bukkit/entity/LightningStrike.java
+++ b/paper-api/src/main/java/org/bukkit/entity/LightningStrike.java
@@ -84,6 +84,10 @@ public interface LightningStrike extends Entity {
public void setCausingPlayer(@Nullable Player player);
// Spigot start
+ /**
+ * @deprecated Unsupported api
+ */
+ @Deprecated // Paper
public class Spigot extends Entity.Spigot {
/**
@@ -98,8 +102,12 @@ public interface LightningStrike extends Entity {
}
}
+ /**
+ * @deprecated Unsupported api
+ */
@NotNull
@Override
+ @Deprecated // Paper
Spigot spigot();
// Spigot end
}
diff --git a/paper-api/src/main/java/org/bukkit/entity/LingeringPotion.java b/paper-api/src/main/java/org/bukkit/entity/LingeringPotion.java
index 949ba8410c..ad8519ab9b 100644
--- a/paper-api/src/main/java/org/bukkit/entity/LingeringPotion.java
+++ b/paper-api/src/main/java/org/bukkit/entity/LingeringPotion.java
@@ -3,7 +3,8 @@ package org.bukkit.entity;
/**
* Represents a thrown lingering potion bottle
*
- * @deprecated lingering status depends on only on the potion item.
+ * @deprecated should not be used for anything, use {@link ThrownPotion} and
+ * set the potion via the methods there.
*/
-@Deprecated(since = "1.20.5")
+@Deprecated(since = "1.20.5", forRemoval = true) // Paper
public interface LingeringPotion extends ThrownPotion { }
diff --git a/paper-api/src/main/java/org/bukkit/entity/LivingEntity.java b/paper-api/src/main/java/org/bukkit/entity/LivingEntity.java
index 775f18abe0..72b83dedf0 100644
--- a/paper-api/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/paper-api/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -716,7 +716,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
* This may have unexpected results if the entity is not in water.
*
* @param swimming True if the entity is swimming.
+ * @deprecated This does nothing and is immediately reverted by the server, in the next tick
*/
+ @Deprecated // Paper
public void setSwimming(boolean swimming);
/**
@@ -981,7 +983,7 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
* @deprecated entity groupings are now managed by tags, not categories
*/
@NotNull
- @Deprecated(since = "1.20.5")
+ @Deprecated(since = "1.20.5", forRemoval = true) @org.jetbrains.annotations.Contract("-> fail") // Paper
public EntityCategory getCategory();
/**
diff --git a/paper-api/src/main/java/org/bukkit/entity/Minecart.java b/paper-api/src/main/java/org/bukkit/entity/Minecart.java
index e5c43a8037..d9ad5fd48e 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Minecart.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Minecart.java
@@ -102,7 +102,9 @@ public interface Minecart extends Vehicle {
* Passing a null value will set the minecart to have no display block.
*
* @param material the material to set as display block.
+ * @deprecated use {@link #setDisplayBlockData(BlockData)}
*/
+ @Deprecated(forRemoval = true, since = "1.13")
public void setDisplayBlock(@Nullable MaterialData material);
/**
@@ -110,8 +112,10 @@ public interface Minecart extends Vehicle {
* This function will return the type AIR if none is set.
*
* @return the block displayed by this minecart.
+ * @deprecated use {@link #getDisplayBlockData()}
*/
@NotNull
+ @Deprecated(forRemoval = true, since = "1.13")
public MaterialData getDisplayBlock();
/**
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 60522888bc..4aa07d4edb 100644
--- a/paper-api/src/main/java/org/bukkit/entity/OminousItemSpawner.java
+++ b/paper-api/src/main/java/org/bukkit/entity/OminousItemSpawner.java
@@ -15,7 +15,7 @@ public interface OminousItemSpawner extends Entity {
*
* @return the item
*/
- @Nullable
+ @org.jetbrains.annotations.NotNull // Paper
ItemStack getItem();
/**
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 f84c55b9a9..70fef7c72b 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Player.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Player.java
@@ -1680,11 +1680,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Forces an update of the player's entire inventory.
- *
- * @apiNote It should not be necessary for plugins to use this method. If it
- * is required for some reason, it is probably a bug.
*/
- @ApiStatus.Internal
+ // @ApiStatus.Internal // Paper - is valid API
public void updateInventory();
/**
diff --git a/paper-api/src/main/java/org/bukkit/entity/Projectile.java b/paper-api/src/main/java/org/bukkit/entity/Projectile.java
index 22d6dfdd8a..fe64f4e87a 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Projectile.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Projectile.java
@@ -29,7 +29,7 @@ public interface Projectile extends Entity {
* @return true if it should bounce.
* @deprecated does not do anything
*/
- @Deprecated(since = "1.20.2")
+ @Deprecated(since = "1.20.2", forRemoval = true)
public boolean doesBounce();
/**
@@ -39,6 +39,6 @@ public interface Projectile extends Entity {
* @param doesBounce whether or not it should bounce.
* @deprecated does not do anything
*/
- @Deprecated(since = "1.20.2")
+ @Deprecated(since = "1.20.2", forRemoval = true)
public void setBounce(boolean doesBounce);
}
diff --git a/paper-api/src/main/java/org/bukkit/entity/SplashPotion.java b/paper-api/src/main/java/org/bukkit/entity/SplashPotion.java
index e706a78e3a..c4702ce06d 100644
--- a/paper-api/src/main/java/org/bukkit/entity/SplashPotion.java
+++ b/paper-api/src/main/java/org/bukkit/entity/SplashPotion.java
@@ -3,7 +3,8 @@ package org.bukkit.entity;
/**
* Represents a thrown splash potion bottle
*
- * @deprecated splash status depends on only on the potion item.
+ * @deprecated should not be used for anything, use {@link ThrownPotion} and
+ * set the potion via the methods there.
*/
-@Deprecated(since = "1.14")
+@Deprecated(since = "1.14", forRemoval = true) // Paper
public interface SplashPotion extends ThrownPotion { }
diff --git a/paper-api/src/main/java/org/bukkit/entity/ZombieVillager.java b/paper-api/src/main/java/org/bukkit/entity/ZombieVillager.java
index 7cc1d9a966..e38f38ebfc 100644
--- a/paper-api/src/main/java/org/bukkit/entity/ZombieVillager.java
+++ b/paper-api/src/main/java/org/bukkit/entity/ZombieVillager.java
@@ -13,15 +13,15 @@ public interface ZombieVillager extends Zombie {
* Sets the villager profession of this zombie.
*/
@Override
- void setVillagerProfession(@Nullable Villager.Profession profession);
+ void setVillagerProfession(@NotNull Villager.Profession profession); // Paper
/**
* Returns the villager profession of this zombie.
*
- * @return the profession or null
+ * @return the profession
*/
@Override
- @Nullable
+ @NotNull // Paper
Villager.Profession getVillagerProfession();
/**
diff --git a/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java b/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java
index 8f601e85df..d615c006c9 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
@@ -69,6 +69,12 @@ 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);
+ /**
+ * @deprecated this constant uses the wrong generic type, the sniffer now stores different positions
+ * from possibly different worlds. Use the relevant methods in {@link org.bukkit.entity.Sniffer} directly
+ * for now.
+ */
+ @Deprecated // Paper
public static final MemoryKey SNIFFER_EXPLORED_POSITIONS = new MemoryKey<>(NamespacedKey.minecraft("sniffer_explored_positions"), Location.class);
/**
diff --git a/paper-api/src/main/java/org/bukkit/event/block/BrewingStartEvent.java b/paper-api/src/main/java/org/bukkit/event/block/BrewingStartEvent.java
index 9e54ef5b60..37be83184c 100644
--- a/paper-api/src/main/java/org/bukkit/event/block/BrewingStartEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/block/BrewingStartEvent.java
@@ -8,6 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a brewing stand starts to brew.
*/
+@org.jetbrains.annotations.ApiStatus.Experimental // Paper
public class BrewingStartEvent extends InventoryBlockStartEvent {
private static final HandlerList handlers = new HandlerList();
diff --git a/paper-api/src/main/java/org/bukkit/event/block/CampfireStartEvent.java b/paper-api/src/main/java/org/bukkit/event/block/CampfireStartEvent.java
index 53119742be..2d084214e9 100644
--- a/paper-api/src/main/java/org/bukkit/event/block/CampfireStartEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/block/CampfireStartEvent.java
@@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a Campfire starts to cook.
*/
+@org.jetbrains.annotations.ApiStatus.Experimental // Paper
public class CampfireStartEvent extends InventoryBlockStartEvent {
private static final HandlerList handlers = new HandlerList();
diff --git a/paper-api/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java b/paper-api/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java
index f4efb2190a..3d6c0ecc70 100644
--- a/paper-api/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java
@@ -17,6 +17,7 @@ public class CrafterCraftEvent extends BlockEvent implements Cancellable {
private ItemStack result;
private boolean cancelled;
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper - fix upstream annotation mistakes
public CrafterCraftEvent(@NotNull Block theBlock, @NotNull CraftingRecipe recipe, @NotNull ItemStack result) {
super(theBlock);
this.result = result;
diff --git a/paper-api/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java b/paper-api/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
index 4c8f388897..5a56eeb4bd 100644
--- a/paper-api/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
@@ -23,7 +23,7 @@ public class PrepareItemEnchantEvent extends InventoryEvent implements Cancellab
private boolean cancelled;
private final Player enchanter;
- public PrepareItemEnchantEvent(@NotNull final Player enchanter, @NotNull EnchantmentView view, @NotNull final Block table, @NotNull final ItemStack item, @NotNull final EnchantmentOffer[] offers, final int bonus) {
+ public PrepareItemEnchantEvent(@NotNull final Player enchanter, @NotNull EnchantmentView view, @NotNull final Block table, @NotNull final ItemStack item, @org.jetbrains.annotations.Nullable final EnchantmentOffer @NotNull [] offers, final int bonus) { // Paper - offers can contain null values
super(view);
this.enchanter = enchanter;
this.table = table;
@@ -86,8 +86,7 @@ public class PrepareItemEnchantEvent extends InventoryEvent implements Cancellab
*
* @return list of available enchantment offers
*/
- @NotNull
- public EnchantmentOffer[] getOffers() {
+ public @org.jetbrains.annotations.Nullable EnchantmentOffer @NotNull [] getOffers() { // Paper offers can contain null values
return offers;
}
diff --git a/paper-api/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java b/paper-api/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java
index d743cc5ee3..8fdfcbc7d2 100644
--- a/paper-api/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java
@@ -218,7 +218,10 @@ public class EntityPotionEffectEvent extends EntityEvent implements Cancellable
MILK,
/**
* When a player gets bad omen after killing a patrol captain.
+ *
+ * @deprecated no longer used, player now gets an ominous bottle instead
*/
+ @Deprecated(since = "1.21") // Paper
PATROL_CAPTAIN,
/**
* When a potion effect is modified through the plugin methods.
diff --git a/paper-api/src/main/java/org/bukkit/event/entity/EntityTargetLivingEntityEvent.java b/paper-api/src/main/java/org/bukkit/event/entity/EntityTargetLivingEntityEvent.java
index 090ec6f96c..e6b4d4c172 100644
--- a/paper-api/src/main/java/org/bukkit/event/entity/EntityTargetLivingEntityEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/entity/EntityTargetLivingEntityEvent.java
@@ -10,7 +10,7 @@ import org.jetbrains.annotations.Nullable;
* LivingEntity's.
*/
public class EntityTargetLivingEntityEvent extends EntityTargetEvent {
- public EntityTargetLivingEntityEvent(@NotNull final Entity entity, @Nullable final LivingEntity target, @Nullable final TargetReason reason) {
+ public EntityTargetLivingEntityEvent(@NotNull final Entity entity, @Nullable final LivingEntity target, @NotNull final TargetReason reason) { // Paper
super(entity, target, reason);
}
diff --git a/paper-api/src/main/java/org/bukkit/event/entity/EntityToggleSwimEvent.java b/paper-api/src/main/java/org/bukkit/event/entity/EntityToggleSwimEvent.java
index e1123295b9..273ae8e5da 100644
--- a/paper-api/src/main/java/org/bukkit/event/entity/EntityToggleSwimEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/entity/EntityToggleSwimEvent.java
@@ -24,6 +24,14 @@ public class EntityToggleSwimEvent extends EntityEvent implements Cancellable {
return cancel;
}
+ /**
+ * @deprecated This does nothing, the server and the client doesn't work
+ * correctly when the server try to bypass this. A current workaround
+ * exists. If you want to cancel the switch from the ground state to the
+ * swimming state you need to disable the sprinting flag for the player after
+ * the cancel action.
+ */
+ @Deprecated // Paper
@Override
public void setCancelled(boolean cancel) {
this.cancel = cancel;
diff --git a/paper-api/src/main/java/org/bukkit/event/entity/ProjectileHitEvent.java b/paper-api/src/main/java/org/bukkit/event/entity/ProjectileHitEvent.java
index 56e6024f1f..7fccda2a48 100644
--- a/paper-api/src/main/java/org/bukkit/event/entity/ProjectileHitEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/entity/ProjectileHitEvent.java
@@ -19,22 +19,27 @@ public class ProjectileHitEvent extends EntityEvent implements Cancellable {
private final BlockFace hitFace;
private boolean cancel = false;
+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper
public ProjectileHitEvent(@NotNull final Projectile projectile) {
- this(projectile, null, null);
+ this(projectile, null, null, null); // Paper
}
+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper
public ProjectileHitEvent(@NotNull final Projectile projectile, @Nullable Entity hitEntity) {
- this(projectile, hitEntity, null);
+ this(projectile, hitEntity, null, null); // Paper
}
+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper
public ProjectileHitEvent(@NotNull final Projectile projectile, @Nullable Block hitBlock) {
- this(projectile, null, hitBlock);
+ this(projectile, null, hitBlock, null); // Paper
}
+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper
public ProjectileHitEvent(@NotNull final Projectile projectile, @Nullable Entity hitEntity, @Nullable Block hitBlock) {
this(projectile, hitEntity, hitBlock, null);
}
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public ProjectileHitEvent(@NotNull final Projectile projectile, @Nullable Entity hitEntity, @Nullable Block hitBlock, @Nullable BlockFace hitFace) {
super(projectile);
this.hitEntity = hitEntity;
diff --git a/paper-api/src/main/java/org/bukkit/event/entity/SpawnerSpawnEvent.java b/paper-api/src/main/java/org/bukkit/event/entity/SpawnerSpawnEvent.java
index 9353f0d092..f3ec8f6732 100644
--- a/paper-api/src/main/java/org/bukkit/event/entity/SpawnerSpawnEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/entity/SpawnerSpawnEvent.java
@@ -12,12 +12,19 @@ import org.jetbrains.annotations.NotNull;
public class SpawnerSpawnEvent extends EntitySpawnEvent {
private final CreatureSpawner spawner;
- public SpawnerSpawnEvent(@NotNull final Entity spawnee, @NotNull final CreatureSpawner spawner) {
+ public SpawnerSpawnEvent(@NotNull final Entity spawnee, @org.jetbrains.annotations.Nullable final CreatureSpawner spawner) { // Paper
super(spawnee);
this.spawner = spawner;
}
- @NotNull
+ /**
+ * Gets the spawner tile state, or null
+ * when the entity is spawned from a minecart
+ * spawner.
+ *
+ * @return the spawner tile state
+ */
+ @org.jetbrains.annotations.Nullable // Paper
public CreatureSpawner getSpawner() {
return spawner;
}
diff --git a/paper-api/src/main/java/org/bukkit/event/hanging/HangingBreakByEntityEvent.java b/paper-api/src/main/java/org/bukkit/event/hanging/HangingBreakByEntityEvent.java
index 68517811f6..454885e476 100644
--- a/paper-api/src/main/java/org/bukkit/event/hanging/HangingBreakByEntityEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/hanging/HangingBreakByEntityEvent.java
@@ -11,22 +11,21 @@ import org.jetbrains.annotations.Nullable;
public class HangingBreakByEntityEvent extends HangingBreakEvent {
private final Entity remover;
- public HangingBreakByEntityEvent(@NotNull final Hanging hanging, @Nullable final Entity remover) {
+ public HangingBreakByEntityEvent(@NotNull final Hanging hanging, @NotNull final Entity remover) { // Paper
this(hanging, remover, HangingBreakEvent.RemoveCause.ENTITY);
}
- public HangingBreakByEntityEvent(@NotNull final Hanging hanging, @Nullable final Entity remover, @NotNull final HangingBreakEvent.RemoveCause cause) {
+ public HangingBreakByEntityEvent(@NotNull final Hanging hanging, @NotNull final Entity remover, @NotNull final HangingBreakEvent.RemoveCause cause) { // Paper
super(hanging, cause);
this.remover = remover;
}
/**
* Gets the entity that removed the hanging entity.
- * May be null, for example when broken by an explosion.
*
* @return the entity that removed the hanging entity
*/
- @Nullable
+ @NotNull // Paper
public Entity getRemover() {
return remover;
}
diff --git a/paper-api/src/main/java/org/bukkit/event/inventory/HopperInventorySearchEvent.java b/paper-api/src/main/java/org/bukkit/event/inventory/HopperInventorySearchEvent.java
index 80a0a4ad81..18bb808e73 100644
--- a/paper-api/src/main/java/org/bukkit/event/inventory/HopperInventorySearchEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/inventory/HopperInventorySearchEvent.java
@@ -34,7 +34,7 @@ public class HopperInventorySearchEvent extends BlockEvent {
DESTINATION;
}
- public HopperInventorySearchEvent(@NotNull Inventory inventory, @NotNull ContainerType containerType, @NotNull Block hopper, @NotNull Block searchBlock) {
+ public HopperInventorySearchEvent(@Nullable Inventory inventory, @NotNull ContainerType containerType, @NotNull Block hopper, @NotNull Block searchBlock) { // Paper
super(hopper);
this.inventory = inventory;
this.containerType = containerType;
diff --git a/paper-api/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java b/paper-api/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java
index 5832c610e4..ff2d64550d 100644
--- a/paper-api/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java
@@ -88,7 +88,7 @@ public class InventoryClickEvent extends InventoryInteractEvent {
*
* @return the cursor ItemStack
*/
- @Nullable
+ @NotNull // Paper - fix nullability
public ItemStack getCursor() {
return getView().getCursor();
}
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 f80d5bc893..06e037ce94 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
@@ -155,7 +155,7 @@ public enum InventoryType {
*
* @deprecated use {@link #SMITHING}
*/
- @Deprecated(since = "1.20.1")
+ @Deprecated(since = "1.20.1", forRemoval = true) // Paper
SMITHING_NEW(4, "Upgrade Gear", MenuType.SMITHING),
;
diff --git a/paper-api/src/main/java/org/bukkit/event/player/PlayerBedLeaveEvent.java b/paper-api/src/main/java/org/bukkit/event/player/PlayerBedLeaveEvent.java
index 1cb70b5c87..f09b378508 100644
--- a/paper-api/src/main/java/org/bukkit/event/player/PlayerBedLeaveEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/player/PlayerBedLeaveEvent.java
@@ -43,7 +43,10 @@ public class PlayerBedLeaveEvent extends PlayerEvent implements Cancellable {
* {@link Player#setBedSpawnLocation(Location)}.
*
* @return true if the spawn location will be changed
+ * @deprecated the respawn point is now set when the player enter the bed and
+ * this option doesn't work since MC 1.15.
*/
+ @Deprecated(forRemoval = true) // Paper - Unused
public boolean shouldSetSpawnLocation() {
return setBedSpawn;
}
@@ -59,7 +62,10 @@ public class PlayerBedLeaveEvent extends PlayerEvent implements Cancellable {
* {@link Player#setBedSpawnLocation(Location)}.
*
* @param setBedSpawn true to change the new spawn location
+ * @deprecated the respawn point is now set when the player enter the bed and
+ * this option doesn't work since MC 1.15.
*/
+ @Deprecated(forRemoval = true) // Paper - Unused
public void setSpawnLocation(boolean setBedSpawn) {
this.setBedSpawn = setBedSpawn;
}
diff --git a/paper-api/src/main/java/org/bukkit/event/player/PlayerMoveEvent.java b/paper-api/src/main/java/org/bukkit/event/player/PlayerMoveEvent.java
index 1b2267f4e8..1a58734d91 100644
--- a/paper-api/src/main/java/org/bukkit/event/player/PlayerMoveEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/player/PlayerMoveEvent.java
@@ -78,7 +78,7 @@ public class PlayerMoveEvent extends PlayerEvent implements Cancellable {
*
* @return Location the player moved to
*/
- @Nullable
+ @NotNull // Paper
public Location getTo() {
return to;
}
diff --git a/paper-api/src/main/java/org/bukkit/event/raid/RaidSpawnWaveEvent.java b/paper-api/src/main/java/org/bukkit/event/raid/RaidSpawnWaveEvent.java
index cd58dd7de7..1b8bb5241e 100644
--- a/paper-api/src/main/java/org/bukkit/event/raid/RaidSpawnWaveEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/raid/RaidSpawnWaveEvent.java
@@ -19,7 +19,7 @@ public class RaidSpawnWaveEvent extends RaidEvent {
private final List raiders;
private final Raider leader;
- public RaidSpawnWaveEvent(@NotNull Raid raid, @NotNull World world, @Nullable Raider leader, @NotNull List raiders) {
+ public RaidSpawnWaveEvent(@NotNull Raid raid, @NotNull World world, @NotNull Raider leader, @NotNull List raiders) { // Paper
super(raid, world);
this.raiders = raiders;
this.leader = leader;
@@ -30,7 +30,7 @@ public class RaidSpawnWaveEvent extends RaidEvent {
*
* @return {@link Raider}
*/
- @Nullable
+ @NotNull // Paper
public Raider getPatrolLeader() {
return leader;
}
diff --git a/paper-api/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java b/paper-api/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java
index 6bafc62e22..50c762d777 100644
--- a/paper-api/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java
@@ -36,18 +36,22 @@ public class VehicleEntityCollisionEvent extends VehicleCollisionEvent implement
this.cancelled = cancel;
}
+ @Deprecated(forRemoval = true) // Paper - Unused
public boolean isPickupCancelled() {
return cancelledPickup;
}
+ @Deprecated(forRemoval = true) // Paper - Unused
public void setPickupCancelled(boolean cancel) {
cancelledPickup = cancel;
}
+ @Deprecated(forRemoval = true) // Paper - Unused
public boolean isCollisionCancelled() {
return cancelledCollision;
}
+ @Deprecated(forRemoval = true) // Paper - Unused
public void setCollisionCancelled(boolean cancel) {
cancelledCollision = cancel;
}
diff --git a/paper-api/src/main/java/org/bukkit/generator/ChunkGenerator.java b/paper-api/src/main/java/org/bukkit/generator/ChunkGenerator.java
index b4dab4cf52..4e8d0b2f73 100644
--- a/paper-api/src/main/java/org/bukkit/generator/ChunkGenerator.java
+++ b/paper-api/src/main/java/org/bukkit/generator/ChunkGenerator.java
@@ -656,7 +656,9 @@ public abstract class ChunkGenerator {
* @param y the y location in the chunk from minHeight (inclusive) - maxHeight (exclusive)
* @param z the z location in the chunk from 0-15 inclusive
* @param material the type to set the block to
+ * @deprecated use {@link #setBlock(int, int, int, BlockData)}
*/
+ @Deprecated // Paper
public void setBlock(int x, int y, int z, @NotNull MaterialData material);
/**
@@ -700,7 +702,9 @@ public abstract class ChunkGenerator {
* @param yMax maximum y location (exclusive) in the chunk to set
* @param zMax maximum z location (exclusive) in the chunk to set
* @param material the type to set the blocks to
+ * @deprecated use {@link #setRegion(int, int, int, int, int, int, BlockData)}
*/
+ @Deprecated // Paper
public void setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, @NotNull MaterialData material);
/**
@@ -741,8 +745,10 @@ public abstract class ChunkGenerator {
* @param y the y location in the chunk from minHeight (inclusive) - maxHeight (exclusive)
* @param z the z location in the chunk from 0-15 inclusive
* @return the type and data of the block or the MaterialData for air if x, y or z are outside the chunk's bounds
+ * @deprecated use {@link #getBlockData(int, int, int)}
*/
@NotNull
+ @Deprecated // Paper
public MaterialData getTypeAndData(int x, int y, int z);
/**
diff --git a/paper-api/src/main/java/org/bukkit/inventory/CookingRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/CookingRecipe.java
index 571652ba88..f7fa79393a 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/CookingRecipe.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/CookingRecipe.java
@@ -68,7 +68,9 @@ public abstract class CookingRecipe implements Recipe,
* Get the input material.
*
* @return The input material.
+ * @deprecated Use {@link #getInputChoice()} instead for more complete data.
*/
+ @Deprecated // Paper
@NotNull
public ItemStack getInput() {
return this.ingredient.getItemStack();
diff --git a/paper-api/src/main/java/org/bukkit/inventory/CraftingInventory.java b/paper-api/src/main/java/org/bukkit/inventory/CraftingInventory.java
index df81bac9ec..a32977ba3b 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/CraftingInventory.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/CraftingInventory.java
@@ -21,8 +21,7 @@ public interface CraftingInventory extends Inventory {
*
* @return The contents. Individual entries may be null.
*/
- @NotNull
- ItemStack[] getMatrix();
+ @Nullable ItemStack @NotNull [] getMatrix(); // Paper - make array elements nullable instead array
/**
* Set the item in the result slot of the crafting inventory.
@@ -38,7 +37,7 @@ public interface CraftingInventory extends Inventory {
* @throws IllegalArgumentException if the length of contents is greater
* than the size of the crafting matrix.
*/
- void setMatrix(@NotNull ItemStack[] contents);
+ void setMatrix(@Nullable ItemStack @NotNull [] contents); // Paper - make array elements nullable instead array
/**
* Get the current recipe formed on the crafting inventory, if any.
diff --git a/paper-api/src/main/java/org/bukkit/inventory/EntityEquipment.java b/paper-api/src/main/java/org/bukkit/inventory/EntityEquipment.java
index 720038083f..97c8b338f8 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/EntityEquipment.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/EntityEquipment.java
@@ -525,6 +525,6 @@ public interface EntityEquipment {
*
* @return the entity this EntityEquipment belongs to
*/
- @Nullable
+ @NotNull // Paper
Entity getHolder();
}
diff --git a/paper-api/src/main/java/org/bukkit/inventory/FurnaceRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/FurnaceRecipe.java
index 82d4d0329a..d76fbab349 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/FurnaceRecipe.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/FurnaceRecipe.java
@@ -67,8 +67,10 @@ public class FurnaceRecipe extends CookingRecipe {
*
* @param input The input material.
* @return The changed recipe, so you can chain calls.
+ * @deprecated use {@link #setInputChoice(RecipeChoice)}
*/
@NotNull
+ @Deprecated
public FurnaceRecipe setInput(@NotNull MaterialData input) {
return setInput(input.getItemType(), input.getData());
}
diff --git a/paper-api/src/main/java/org/bukkit/inventory/Inventory.java b/paper-api/src/main/java/org/bukkit/inventory/Inventory.java
index f1a48eab1a..466d1bd708 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/Inventory.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/Inventory.java
@@ -161,8 +161,7 @@ public interface Inventory extends Iterable {
*
* @return An array of ItemStacks from the inventory. Individual items may be null.
*/
- @NotNull
- public ItemStack[] getContents();
+ public @Nullable ItemStack @NotNull [] getContents(); // Paper - make array elements nullable instead array
/**
* Completely replaces the inventory's contents. Removes all existing
@@ -173,7 +172,7 @@ public interface Inventory extends Iterable {
* @throws IllegalArgumentException If the array has more items than the
* inventory.
*/
- public void setContents(@NotNull ItemStack[] items) throws IllegalArgumentException;
+ public void setContents(@Nullable ItemStack @NotNull [] items) throws IllegalArgumentException; // Paper - make array elements nullable instead array
/**
* Return the contents from the section of the inventory where items can
@@ -186,8 +185,7 @@ public interface Inventory extends Iterable {
*
* @return inventory storage contents. Individual items may be null.
*/
- @NotNull
- public ItemStack[] getStorageContents();
+ public @Nullable ItemStack @NotNull [] getStorageContents(); // Paper - make array elements nullable instead array
/**
* Put the given ItemStacks into the storage slots
@@ -196,7 +194,7 @@ public interface Inventory extends Iterable {
* @throws IllegalArgumentException If the array has more items than the
* inventory.
*/
- public void setStorageContents(@NotNull ItemStack[] items) throws IllegalArgumentException;
+ public void setStorageContents(@Nullable ItemStack @NotNull [] items) throws IllegalArgumentException; // Paper - make array elements nullable instead array
/**
* Checks if the inventory contains any ItemStacks with the given
diff --git a/paper-api/src/main/java/org/bukkit/inventory/InventoryView.java b/paper-api/src/main/java/org/bukkit/inventory/InventoryView.java
index 0b5e2f4760..5c258b6077 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/InventoryView.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/InventoryView.java
@@ -123,9 +123,9 @@ public interface InventoryView {
* Gets the id of this view.
*
* @return the id of this view
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public int getId() {
return id;
}
@@ -195,10 +195,10 @@ public interface InventoryView {
/**
* Get the item on the cursor of one of the viewing players.
*
- * @return The item on the player's cursor, or null if they aren't holding
- * one.
+ * @return The item on the player's cursor, or an empty stack
+ * if they aren't holding one.
*/
- @Nullable
+ @NotNull // Paper - fix nullability
public ItemStack getCursor();
/**
@@ -296,8 +296,10 @@ public interface InventoryView {
* made using {@link #setTitle(String)}.
*
* @return the original title
+ * @deprecated changing the title is not supported
*/
@NotNull
+ @Deprecated(since = "1.21.1") // Paper
public String getOriginalTitle();
/**
@@ -309,6 +311,9 @@ public interface InventoryView {
* exception.
*
* @param title The new title.
+ * @deprecated changing the title is not supported. This method has
+ * poorly defined and broken behaviors. It should not be used.
*/
+ @Deprecated(since = "1.21.1") // Paper
public void setTitle(@NotNull String title);
}
diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemFactory.java b/paper-api/src/main/java/org/bukkit/inventory/ItemFactory.java
index c1ec8efffd..a1d8ef8eda 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/ItemFactory.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/ItemFactory.java
@@ -29,7 +29,7 @@ public interface ItemFactory {
* @return a new ItemMeta that could be applied to an item stack of the
* specified material
*/
- @Nullable
+ @org.bukkit.UndefinedNullability // Paper
ItemMeta getItemMeta(@NotNull final Material material);
/**
diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java b/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java
index 080d9a9e26..132cf07816 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -10,6 +10,7 @@ import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.Registry;
import org.bukkit.Translatable;
+import org.bukkit.UndefinedNullability;
import org.bukkit.Utility;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.enchantments.Enchantment;
@@ -82,7 +83,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* @param data the data value or null
* @deprecated this method uses an ambiguous data byte object
*/
- @Deprecated(since = "1.4.5")
+ @Deprecated(since = "1.4.5", forRemoval = true)
public ItemStack(@NotNull Material type, final int amount, final short damage, @Nullable final Byte data) {
Preconditions.checkArgument(type != null, "Material cannot be null");
if (type.isLegacy()) {
@@ -179,8 +180,10 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* Gets the MaterialData for this stack of items
*
* @return MaterialData for this item
+ * @deprecated cast to {@link org.bukkit.inventory.meta.BlockDataMeta} and use {@link org.bukkit.inventory.meta.BlockDataMeta#getBlockData(Material)}
*/
@Nullable
+ @Deprecated(forRemoval = true, since = "1.13")
public MaterialData getData() {
Material mat = Bukkit.getUnsafe().toLegacy(getType());
if (data == null && mat != null && mat.getData() != null) {
@@ -194,7 +197,9 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* Sets the MaterialData for this stack of items
*
* @param data New MaterialData for this item
+ * @deprecated cast to {@link org.bukkit.inventory.meta.BlockDataMeta} and use {@link org.bukkit.inventory.meta.BlockDataMeta#setBlockData(org.bukkit.block.data.BlockData)}
*/
+ @Deprecated(forRemoval = true, since = "1.13")
public void setData(@Nullable MaterialData data) {
if (data == null) {
this.data = data;
@@ -574,7 +579,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
*
* @return a copy of the current ItemStack's ItemData
*/
- @Nullable
+ @UndefinedNullability // Paper
public ItemMeta getItemMeta() {
return this.meta == null ? Bukkit.getItemFactory().getItemMeta(this.type) : this.meta.clone();
}
diff --git a/paper-api/src/main/java/org/bukkit/inventory/PlayerInventory.java b/paper-api/src/main/java/org/bukkit/inventory/PlayerInventory.java
index b1f4b8f266..4294e9296f 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/PlayerInventory.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/PlayerInventory.java
@@ -16,8 +16,7 @@ public interface PlayerInventory extends Inventory {
* null and are returned in a fixed order starting from the boots and going
* up to the helmet
*/
- @NotNull
- public ItemStack[] getArmorContents();
+ public @Nullable ItemStack @NotNull [] getArmorContents(); // Paper - make array elements nullable instead array
/**
* Get all additional ItemStacks stored in this inventory.
@@ -28,8 +27,7 @@ public interface PlayerInventory extends Inventory {
*
* @return All additional ItemStacks. Individual items can be null.
*/
- @NotNull
- public ItemStack[] getExtraContents();
+ public @Nullable ItemStack @NotNull [] getExtraContents(); // Paper - make array elements nullable instead array
/**
* Return the ItemStack from the helmet slot
@@ -106,9 +104,9 @@ public interface PlayerInventory extends Inventory {
*
* @param slot the slot to get the ItemStack
*
- * @return the ItemStack in the given slot or null if there is not one
+ * @return the ItemStack in the given slot
*/
- @Nullable
+ @NotNull // Paper
public ItemStack getItem(@NotNull EquipmentSlot slot);
/**
diff --git a/paper-api/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/ShapedRecipe.java
index 90b58219ca..af540a218d 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/ShapedRecipe.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/ShapedRecipe.java
@@ -107,8 +107,10 @@ public class ShapedRecipe extends CraftingRecipe {
* @return The changed recipe, so you can chain calls.
* @throws IllegalArgumentException if the {@code key} is a space character
* @throws IllegalArgumentException if the {@code key} does not appear in the shape.
+ * @deprecated use {@link #setIngredient(char, RecipeChoice)}
*/
@NotNull
+ @Deprecated // Paper
public ShapedRecipe setIngredient(char key, @NotNull MaterialData ingredient) {
return setIngredient(key, ingredient.getItemType(), ingredient.getData());
}
@@ -191,7 +193,9 @@ public class ShapedRecipe extends CraftingRecipe {
* Get a copy of the ingredients map.
*
* @return The mapping of character to ingredients.
+ * @deprecated Use {@link #getChoiceMap()} instead for more complete data.
*/
+ @Deprecated // Paper
@NotNull
public Map getIngredientMap() {
HashMap result = new HashMap();
diff --git a/paper-api/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
index d4a9572a0f..449f1ea47f 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
@@ -44,8 +44,10 @@ public class ShapelessRecipe extends CraftingRecipe {
*
* @param ingredient The ingredient to add.
* @return The changed recipe, so you can chain calls.
+ * @deprecated use {@link #addIngredient(RecipeChoice)}
*/
@NotNull
+ @Deprecated
public ShapelessRecipe addIngredient(@NotNull MaterialData ingredient) {
return addIngredient(1, ingredient);
}
@@ -81,8 +83,10 @@ public class ShapelessRecipe extends CraftingRecipe {
* @param count How many to add (can't be more than 9!)
* @param ingredient The ingredient to add.
* @return The changed recipe, so you can chain calls.
+ * @deprecated use {@link #addIngredient(int, Material)}
*/
@NotNull
+ @Deprecated // Paper
public ShapelessRecipe addIngredient(int count, @NotNull MaterialData ingredient) {
return addIngredient(count, ingredient.getItemType(), ingredient.getData());
}
@@ -199,8 +203,10 @@ public class ShapelessRecipe extends CraftingRecipe {
*
* @param ingredient The ingredient to remove
* @return The changed recipe.
+ * @deprecated use {@link #removeIngredient(Material)}
*/
@NotNull
+ @Deprecated // Paper
public ShapelessRecipe removeIngredient(@NotNull MaterialData ingredient) {
return removeIngredient(ingredient.getItemType(), ingredient.getData());
}
@@ -227,8 +233,10 @@ public class ShapelessRecipe extends CraftingRecipe {
* @param count The number of copies to remove.
* @param ingredient The ingredient to remove.
* @return The changed recipe.
+ * @deprecated use {@link #removeIngredient(int, Material)}
*/
@NotNull
+ @Deprecated // Paper
public ShapelessRecipe removeIngredient(int count, @NotNull MaterialData ingredient) {
return removeIngredient(count, ingredient.getItemType(), ingredient.getData());
}
@@ -278,7 +286,9 @@ public class ShapelessRecipe extends CraftingRecipe {
* Get the list of ingredients used for this recipe.
*
* @return The input list
+ * @deprecated Use {@link #getChoiceList()} instead for more complete data.
*/
+ @Deprecated // Paper
@NotNull
public List getIngredientList() {
ArrayList result = new ArrayList(ingredients.size());
diff --git a/paper-api/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java
index 597a18a767..bc3440eb72 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java
@@ -57,7 +57,9 @@ public class StonecuttingRecipe implements Recipe, Keyed {
* Get the input material.
*
* @return The input material.
+ * @deprecated Use {@link #getInputChoice()} instead for more complete data.
*/
+ @Deprecated // Paper
@NotNull
public ItemStack getInput() {
return this.ingredient.getItemStack();
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 c083ac4344..4012a1b4e9 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
@@ -187,6 +187,7 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
/**
* Checks for existence of a localized name.
*
+ * @deprecated Use {@link ItemMeta#displayName()} and check if it is instanceof a {@link net.kyori.adventure.text.TranslatableComponent}.
* @return true if this has a localized name
* @deprecated meta no longer exists
*/
@@ -199,6 +200,7 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
* Plugins should check that hasLocalizedName() returns true
* before calling this method.
*
+ * @deprecated Use {@link ItemMeta#displayName()} and cast it to a {@link net.kyori.adventure.text.TranslatableComponent}. No longer used by the client.
* @return the localized name that is set
* @deprecated meta no longer exists
*/
@@ -209,6 +211,7 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
/**
* Sets the localized name.
*
+ * @deprecated Use {@link ItemMeta#displayName(Component)} with a {@link net.kyori.adventure.text.TranslatableComponent}. No longer used by the client.
* @param name the name to set
* @deprecated meta no longer exists
*/
@@ -802,7 +805,7 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
*
* @return component
*/
- @Nullable
+ @NotNull // Paper
JukeboxPlayableComponent getJukeboxPlayable();
/**
diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/MapMeta.java b/paper-api/src/main/java/org/bukkit/inventory/meta/MapMeta.java
index 8b0b36cd2e..721164c26c 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/meta/MapMeta.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/meta/MapMeta.java
@@ -16,13 +16,8 @@ public interface MapMeta extends ItemMeta {
*
* @return true if this has a map ID number.
* @see #hasMapView()
- * @deprecated These methods are poor API: They rely on the caller to pass
- * in an only an integer property, and have poorly defined implementation
- * behavior if that integer is not a valid map (the current implementation
- * for example will generate a new map with a different ID). The xxxMapView
- * family of methods should be used instead.
*/
- @Deprecated(since = "1.13.2")
+ //@Deprecated(since = "1.13.2") // Paper
boolean hasMapId();
/**
@@ -34,13 +29,8 @@ public interface MapMeta extends ItemMeta {
*
* @return the map ID that is set
* @see #getMapView()
- * @deprecated These methods are poor API: They rely on the caller to pass
- * in an only an integer property, and have poorly defined implementation
- * behavior if that integer is not a valid map (the current implementation
- * for example will generate a new map with a different ID). The xxxMapView
- * family of methods should be used instead.
*/
- @Deprecated(since = "1.13.2")
+ // @Deprecated(since = "1.13.2") // Paper
int getMapId();
/**
diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/components/EquippableComponent.java b/paper-api/src/main/java/org/bukkit/inventory/meta/components/EquippableComponent.java
index c56e81eb71..16713c9d4c 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/meta/components/EquippableComponent.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/meta/components/EquippableComponent.java
@@ -37,7 +37,7 @@ public interface EquippableComponent extends ConfigurationSerializable {
*
* @return the sound
*/
- @Nullable
+ @NotNull // Paper
Sound getEquipSound();
/**
diff --git a/paper-api/src/main/java/org/bukkit/map/MapCanvas.java b/paper-api/src/main/java/org/bukkit/map/MapCanvas.java
index fcad167c03..e63f9586e1 100644
--- a/paper-api/src/main/java/org/bukkit/map/MapCanvas.java
+++ b/paper-api/src/main/java/org/bukkit/map/MapCanvas.java
@@ -95,9 +95,9 @@ public interface MapCanvas {
* @param x The x coordinate, from 0 to 127.
* @param y The y coordinate, from 0 to 127.
* @return The color. See {@link MapPalette}.
- * @deprecated Magic value, use {@link #getPixelColor(int, int)}
+ * @deprecated use {@link #getPixelColor(int, int)}
*/
- @Deprecated(since = "1.19")
+ @Deprecated(since = "1.19", forRemoval = true) // Paper
public byte getPixel(int x, int y);
/**
@@ -106,9 +106,9 @@ public interface MapCanvas {
* @param x The x coordinate, from 0 to 127.
* @param y The y coordinate, from 0 to 127.
* @return The color. See {@link MapPalette}.
- * @deprecated Magic value, use {@link #getBasePixelColor(int, int)}
+ * @deprecated use {@link #getBasePixelColor(int, int)}
*/
- @Deprecated(since = "1.19")
+ @Deprecated(since = "1.19", forRemoval = true) // Paper
public byte getBasePixel(int x, int y);
/**
diff --git a/paper-api/src/main/java/org/bukkit/map/MapCursor.java b/paper-api/src/main/java/org/bukkit/map/MapCursor.java
index 8de6d0c53b..bd1c0417fb 100644
--- a/paper-api/src/main/java/org/bukkit/map/MapCursor.java
+++ b/paper-api/src/main/java/org/bukkit/map/MapCursor.java
@@ -163,9 +163,9 @@ public final class MapCursor {
* Get the type of this cursor.
*
* @return The type (color/style) of the map cursor.
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getRawType() {
return type.getValue();
}
@@ -220,9 +220,9 @@ public final class MapCursor {
* Set the type of this cursor.
*
* @param type The type (color/style) of the map cursor.
- * @deprecated Magic value
+ * @deprecated use {@link #setType(Type)}
*/
- @Deprecated(since = "1.6.2")
+ @Deprecated(since = "1.6.2", forRemoval = true) // Paper
public void setRawType(byte type) {
Type enumType = Type.byValue(type);
Preconditions.checkArgument(enumType != null, "Unknown type by id %s", type);
@@ -332,9 +332,9 @@ public final class MapCursor {
* Gets the internal value of the cursor.
*
* @return the value
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
byte getValue();
/**
@@ -342,9 +342,9 @@ public final class MapCursor {
*
* @param value the value
* @return the matching type
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
static Type byValue(byte value) {
for (Type t : values()) {
diff --git a/paper-api/src/main/java/org/bukkit/map/MapPalette.java b/paper-api/src/main/java/org/bukkit/map/MapPalette.java
index 13000c247e..448f37249d 100644
--- a/paper-api/src/main/java/org/bukkit/map/MapPalette.java
+++ b/paper-api/src/main/java/org/bukkit/map/MapPalette.java
@@ -197,9 +197,9 @@ public final class MapPalette {
*
* @param image The image to convert.
* @return A byte[] containing the pixels of the image.
- * @deprecated Magic value
+ * @deprecated use color-related methods
*/
- @Deprecated(since = "1.6.2")
+ @Deprecated(since = "1.6.2", forRemoval = true) // Paper
@NotNull
public static byte[] imageToBytes(@NotNull Image image) {
BufferedImage temp = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB);
@@ -225,9 +225,9 @@ public final class MapPalette {
* @param b The blue component of the color.
* @param g The green component of the color.
* @return The index in the palette.
- * @deprecated Magic value
+ * @deprecated use color-related methods
*/
- @Deprecated(since = "1.6.2")
+ @Deprecated(since = "1.6.2", forRemoval = true) // Paper
public static byte matchColor(int r, int g, int b) {
return matchColor(new Color(r, g, b));
}
@@ -238,9 +238,9 @@ public final class MapPalette {
*
* @param color The Color to match.
* @return The index in the palette.
- * @deprecated Magic value
+ * @deprecated use color-related methods
*/
- @Deprecated(since = "1.6.2")
+ @Deprecated(since = "1.6.2", forRemoval = true) // Paper
public static byte matchColor(@NotNull Color color) {
if (color.getAlpha() < 128) return 0;
@@ -268,9 +268,9 @@ public final class MapPalette {
*
* @param index The index in the palette.
* @return The Color of the palette entry.
- * @deprecated Magic value
+ * @deprecated use color directly
*/
- @Deprecated(since = "1.6.2")
+ @Deprecated(since = "1.6.2", forRemoval = true) // Paper
@NotNull
public static Color getColor(byte index) {
// Minecraft has 143 colors, some of which have negative byte representations
@@ -311,9 +311,9 @@ public final class MapPalette {
* @param color The Color to match.
* @return The index in the palette.
* @throws IllegalStateException if {@link #isCached()} returns false
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.19")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
byte matchColor(@NotNull Color color);
}
}
diff --git a/paper-api/src/main/java/org/bukkit/map/MapView.java b/paper-api/src/main/java/org/bukkit/map/MapView.java
index 73bca3d371..e998c5d871 100644
--- a/paper-api/src/main/java/org/bukkit/map/MapView.java
+++ b/paper-api/src/main/java/org/bukkit/map/MapView.java
@@ -32,9 +32,9 @@ public interface MapView {
*
* @param value The raw scale
* @return The enum scale, or null for an invalid input
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static Scale valueOf(byte value) {
switch (value) {
@@ -51,9 +51,9 @@ public interface MapView {
* Get the raw value of this scale level.
*
* @return The scale value
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getValue() {
return value;
}
diff --git a/paper-api/src/main/java/org/bukkit/material/Banner.java b/paper-api/src/main/java/org/bukkit/material/Banner.java
index cd78e2c35d..e3c2711690 100644
--- a/paper-api/src/main/java/org/bukkit/material/Banner.java
+++ b/paper-api/src/main/java/org/bukkit/material/Banner.java
@@ -7,7 +7,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(forRemoval = true, since = "1.13")
public class Banner extends MaterialData implements Attachable {
public Banner() {
diff --git a/paper-api/src/main/java/org/bukkit/material/Bed.java b/paper-api/src/main/java/org/bukkit/material/Bed.java
index ff49e6e5b5..5aafea9c6b 100644
--- a/paper-api/src/main/java/org/bukkit/material/Bed.java
+++ b/paper-api/src/main/java/org/bukkit/material/Bed.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(forRemoval = true, since = "1.13")
public class Bed extends MaterialData implements Directional {
/**
diff --git a/paper-api/src/main/java/org/bukkit/material/Button.java b/paper-api/src/main/java/org/bukkit/material/Button.java
index 794dc81d0b..6c70873786 100644
--- a/paper-api/src/main/java/org/bukkit/material/Button.java
+++ b/paper-api/src/main/java/org/bukkit/material/Button.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(forRemoval = true, since = "1.13")
public class Button extends SimpleAttachableMaterialData implements Redstone {
public Button() {
super(Material.LEGACY_STONE_BUTTON);
diff --git a/paper-api/src/main/java/org/bukkit/material/Cake.java b/paper-api/src/main/java/org/bukkit/material/Cake.java
index 5fd7b198e8..0d0d41c184 100644
--- a/paper-api/src/main/java/org/bukkit/material/Cake.java
+++ b/paper-api/src/main/java/org/bukkit/material/Cake.java
@@ -6,7 +6,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Cake extends MaterialData {
public Cake() {
super(Material.LEGACY_CAKE_BLOCK);
diff --git a/paper-api/src/main/java/org/bukkit/material/Cauldron.java b/paper-api/src/main/java/org/bukkit/material/Cauldron.java
index a72c74400a..b8a15af79f 100644
--- a/paper-api/src/main/java/org/bukkit/material/Cauldron.java
+++ b/paper-api/src/main/java/org/bukkit/material/Cauldron.java
@@ -8,7 +8,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Cauldron extends MaterialData {
private static final int CAULDRON_FULL = 3;
private static final int CAULDRON_EMPTY = 0;
diff --git a/paper-api/src/main/java/org/bukkit/material/Chest.java b/paper-api/src/main/java/org/bukkit/material/Chest.java
index 302bf01e8b..a07e320f3d 100644
--- a/paper-api/src/main/java/org/bukkit/material/Chest.java
+++ b/paper-api/src/main/java/org/bukkit/material/Chest.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Chest extends DirectionalContainer {
public Chest() {
diff --git a/paper-api/src/main/java/org/bukkit/material/Coal.java b/paper-api/src/main/java/org/bukkit/material/Coal.java
index bc60ab8bda..bdb8345371 100644
--- a/paper-api/src/main/java/org/bukkit/material/Coal.java
+++ b/paper-api/src/main/java/org/bukkit/material/Coal.java
@@ -9,7 +9,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Coal extends MaterialData {
public Coal() {
super(Material.LEGACY_COAL);
diff --git a/paper-api/src/main/java/org/bukkit/material/CocoaPlant.java b/paper-api/src/main/java/org/bukkit/material/CocoaPlant.java
index db1cdd8e26..bebb09bca0 100644
--- a/paper-api/src/main/java/org/bukkit/material/CocoaPlant.java
+++ b/paper-api/src/main/java/org/bukkit/material/CocoaPlant.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class CocoaPlant extends MaterialData implements Directional, Attachable {
public enum CocoaPlantSize {
diff --git a/paper-api/src/main/java/org/bukkit/material/Command.java b/paper-api/src/main/java/org/bukkit/material/Command.java
index c83abea1a8..d7953e28d0 100644
--- a/paper-api/src/main/java/org/bukkit/material/Command.java
+++ b/paper-api/src/main/java/org/bukkit/material/Command.java
@@ -8,7 +8,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Command extends MaterialData implements Redstone {
public Command() {
super(Material.LEGACY_COMMAND);
diff --git a/paper-api/src/main/java/org/bukkit/material/Comparator.java b/paper-api/src/main/java/org/bukkit/material/Comparator.java
index 047f571be3..ec3a9ee830 100644
--- a/paper-api/src/main/java/org/bukkit/material/Comparator.java
+++ b/paper-api/src/main/java/org/bukkit/material/Comparator.java
@@ -12,7 +12,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Comparator extends MaterialData implements Directional, Redstone {
protected static final BlockFace DEFAULT_DIRECTION = BlockFace.NORTH;
protected static final boolean DEFAULT_SUBTRACTION_MODE = false;
diff --git a/paper-api/src/main/java/org/bukkit/material/Crops.java b/paper-api/src/main/java/org/bukkit/material/Crops.java
index b76c144f44..1de6ad1dc1 100644
--- a/paper-api/src/main/java/org/bukkit/material/Crops.java
+++ b/paper-api/src/main/java/org/bukkit/material/Crops.java
@@ -15,7 +15,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Crops extends MaterialData {
protected static final Material DEFAULT_TYPE = Material.LEGACY_CROPS;
protected static final CropState DEFAULT_STATE = CropState.SEEDED;
diff --git a/paper-api/src/main/java/org/bukkit/material/DetectorRail.java b/paper-api/src/main/java/org/bukkit/material/DetectorRail.java
index 3a46eea912..234132a9e8 100644
--- a/paper-api/src/main/java/org/bukkit/material/DetectorRail.java
+++ b/paper-api/src/main/java/org/bukkit/material/DetectorRail.java
@@ -8,7 +8,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class DetectorRail extends ExtendedRails implements PressureSensor {
public DetectorRail() {
super(Material.LEGACY_DETECTOR_RAIL);
diff --git a/paper-api/src/main/java/org/bukkit/material/Diode.java b/paper-api/src/main/java/org/bukkit/material/Diode.java
index 1576aaab7f..68c1e05726 100644
--- a/paper-api/src/main/java/org/bukkit/material/Diode.java
+++ b/paper-api/src/main/java/org/bukkit/material/Diode.java
@@ -13,7 +13,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Diode extends MaterialData implements Directional, Redstone {
protected static final BlockFace DEFAULT_DIRECTION = BlockFace.NORTH;
diff --git a/paper-api/src/main/java/org/bukkit/material/DirectionalContainer.java b/paper-api/src/main/java/org/bukkit/material/DirectionalContainer.java
index c862d36ff2..aac0197ff8 100644
--- a/paper-api/src/main/java/org/bukkit/material/DirectionalContainer.java
+++ b/paper-api/src/main/java/org/bukkit/material/DirectionalContainer.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class DirectionalContainer extends MaterialData implements Directional {
public DirectionalContainer(final Material type) {
diff --git a/paper-api/src/main/java/org/bukkit/material/Dispenser.java b/paper-api/src/main/java/org/bukkit/material/Dispenser.java
index 340f372a92..c676d03b13 100644
--- a/paper-api/src/main/java/org/bukkit/material/Dispenser.java
+++ b/paper-api/src/main/java/org/bukkit/material/Dispenser.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Dispenser extends FurnaceAndDispenser {
public Dispenser() {
diff --git a/paper-api/src/main/java/org/bukkit/material/Door.java b/paper-api/src/main/java/org/bukkit/material/Door.java
index a92da22234..0205e134f6 100644
--- a/paper-api/src/main/java/org/bukkit/material/Door.java
+++ b/paper-api/src/main/java/org/bukkit/material/Door.java
@@ -22,7 +22,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Door extends MaterialData implements Directional, Openable {
// This class breaks API contracts on Directional and Openable because
diff --git a/paper-api/src/main/java/org/bukkit/material/Dye.java b/paper-api/src/main/java/org/bukkit/material/Dye.java
index 72d494631a..11375c51c0 100644
--- a/paper-api/src/main/java/org/bukkit/material/Dye.java
+++ b/paper-api/src/main/java/org/bukkit/material/Dye.java
@@ -9,7 +9,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Dye extends MaterialData implements Colorable {
public Dye() {
super(Material.LEGACY_INK_SACK);
diff --git a/paper-api/src/main/java/org/bukkit/material/EnderChest.java b/paper-api/src/main/java/org/bukkit/material/EnderChest.java
index 65f286a7ca..1d49f78e32 100644
--- a/paper-api/src/main/java/org/bukkit/material/EnderChest.java
+++ b/paper-api/src/main/java/org/bukkit/material/EnderChest.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class EnderChest extends DirectionalContainer {
public EnderChest() {
diff --git a/paper-api/src/main/java/org/bukkit/material/ExtendedRails.java b/paper-api/src/main/java/org/bukkit/material/ExtendedRails.java
index cbbf953b74..23a329c7ce 100644
--- a/paper-api/src/main/java/org/bukkit/material/ExtendedRails.java
+++ b/paper-api/src/main/java/org/bukkit/material/ExtendedRails.java
@@ -10,7 +10,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class ExtendedRails extends Rails {
public ExtendedRails(final Material type) {
diff --git a/paper-api/src/main/java/org/bukkit/material/FlowerPot.java b/paper-api/src/main/java/org/bukkit/material/FlowerPot.java
index 45ebe2671b..5bf2cc1bae 100644
--- a/paper-api/src/main/java/org/bukkit/material/FlowerPot.java
+++ b/paper-api/src/main/java/org/bukkit/material/FlowerPot.java
@@ -10,7 +10,7 @@ import org.bukkit.TreeSpecies;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.9.4")
+@Deprecated(since = "1.13", forRemoval = true)
public class FlowerPot extends MaterialData {
/**
diff --git a/paper-api/src/main/java/org/bukkit/material/Furnace.java b/paper-api/src/main/java/org/bukkit/material/Furnace.java
index 7bfc7c6edb..9cd029934d 100644
--- a/paper-api/src/main/java/org/bukkit/material/Furnace.java
+++ b/paper-api/src/main/java/org/bukkit/material/Furnace.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Furnace extends FurnaceAndDispenser {
public Furnace() {
diff --git a/paper-api/src/main/java/org/bukkit/material/FurnaceAndDispenser.java b/paper-api/src/main/java/org/bukkit/material/FurnaceAndDispenser.java
index b7fb6cf424..119dca5522 100644
--- a/paper-api/src/main/java/org/bukkit/material/FurnaceAndDispenser.java
+++ b/paper-api/src/main/java/org/bukkit/material/FurnaceAndDispenser.java
@@ -8,7 +8,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class FurnaceAndDispenser extends DirectionalContainer {
public FurnaceAndDispenser(final Material type) {
diff --git a/paper-api/src/main/java/org/bukkit/material/Gate.java b/paper-api/src/main/java/org/bukkit/material/Gate.java
index 10c259338f..441a796cbb 100644
--- a/paper-api/src/main/java/org/bukkit/material/Gate.java
+++ b/paper-api/src/main/java/org/bukkit/material/Gate.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Gate extends MaterialData implements Directional, Openable {
private static final byte OPEN_BIT = 0x4;
private static final byte DIR_BIT = 0x3;
diff --git a/paper-api/src/main/java/org/bukkit/material/Hopper.java b/paper-api/src/main/java/org/bukkit/material/Hopper.java
index b5fc3746c8..69abe65bca 100644
--- a/paper-api/src/main/java/org/bukkit/material/Hopper.java
+++ b/paper-api/src/main/java/org/bukkit/material/Hopper.java
@@ -12,7 +12,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Hopper extends MaterialData implements Directional, Redstone {
protected static final BlockFace DEFAULT_DIRECTION = BlockFace.DOWN;
diff --git a/paper-api/src/main/java/org/bukkit/material/Ladder.java b/paper-api/src/main/java/org/bukkit/material/Ladder.java
index ab607ae626..ada73c2576 100644
--- a/paper-api/src/main/java/org/bukkit/material/Ladder.java
+++ b/paper-api/src/main/java/org/bukkit/material/Ladder.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Ladder extends SimpleAttachableMaterialData {
public Ladder() {
super(Material.LEGACY_LADDER);
diff --git a/paper-api/src/main/java/org/bukkit/material/Leaves.java b/paper-api/src/main/java/org/bukkit/material/Leaves.java
index 69f47d00f1..f9dd206a40 100644
--- a/paper-api/src/main/java/org/bukkit/material/Leaves.java
+++ b/paper-api/src/main/java/org/bukkit/material/Leaves.java
@@ -13,7 +13,7 @@ import org.bukkit.TreeSpecies;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Leaves extends Wood {
protected static final Material DEFAULT_TYPE = Material.LEGACY_LEAVES;
protected static final boolean DEFAULT_DECAYABLE = true;
diff --git a/paper-api/src/main/java/org/bukkit/material/Lever.java b/paper-api/src/main/java/org/bukkit/material/Lever.java
index e2add49ce3..1c1b36ea1c 100644
--- a/paper-api/src/main/java/org/bukkit/material/Lever.java
+++ b/paper-api/src/main/java/org/bukkit/material/Lever.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Lever extends SimpleAttachableMaterialData implements Redstone {
public Lever() {
super(Material.LEGACY_LEVER);
diff --git a/paper-api/src/main/java/org/bukkit/material/LongGrass.java b/paper-api/src/main/java/org/bukkit/material/LongGrass.java
index 5b7f21fff6..4db8006dc4 100644
--- a/paper-api/src/main/java/org/bukkit/material/LongGrass.java
+++ b/paper-api/src/main/java/org/bukkit/material/LongGrass.java
@@ -9,7 +9,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class LongGrass extends MaterialData {
public LongGrass() {
super(Material.LEGACY_LONG_GRASS);
diff --git a/paper-api/src/main/java/org/bukkit/material/MaterialData.java b/paper-api/src/main/java/org/bukkit/material/MaterialData.java
index 4b778e828f..874559af35 100644
--- a/paper-api/src/main/java/org/bukkit/material/MaterialData.java
+++ b/paper-api/src/main/java/org/bukkit/material/MaterialData.java
@@ -9,7 +9,7 @@ import org.bukkit.inventory.ItemStack;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.13")
+@Deprecated(since = "1.13", forRemoval = true)
public class MaterialData implements Cloneable {
private final Material type;
private byte data = 0;
diff --git a/paper-api/src/main/java/org/bukkit/material/MonsterEggs.java b/paper-api/src/main/java/org/bukkit/material/MonsterEggs.java
index 3c25dd940e..8fc242e4eb 100644
--- a/paper-api/src/main/java/org/bukkit/material/MonsterEggs.java
+++ b/paper-api/src/main/java/org/bukkit/material/MonsterEggs.java
@@ -10,7 +10,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class MonsterEggs extends TexturedMaterial {
private static final List textures = new ArrayList();
diff --git a/paper-api/src/main/java/org/bukkit/material/Mushroom.java b/paper-api/src/main/java/org/bukkit/material/Mushroom.java
index 6e41bddacb..a05959f973 100644
--- a/paper-api/src/main/java/org/bukkit/material/Mushroom.java
+++ b/paper-api/src/main/java/org/bukkit/material/Mushroom.java
@@ -17,7 +17,7 @@ import org.bukkit.material.types.MushroomBlockTexture;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Mushroom extends MaterialData {
private static final byte NORTH_LIMIT = 4;
private static final byte SOUTH_LIMIT = 6;
diff --git a/paper-api/src/main/java/org/bukkit/material/NetherWarts.java b/paper-api/src/main/java/org/bukkit/material/NetherWarts.java
index 1e6f4c6cc4..da784d87d2 100644
--- a/paper-api/src/main/java/org/bukkit/material/NetherWarts.java
+++ b/paper-api/src/main/java/org/bukkit/material/NetherWarts.java
@@ -9,7 +9,7 @@ import org.bukkit.NetherWartsState;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class NetherWarts extends MaterialData {
public NetherWarts() {
super(Material.LEGACY_NETHER_WARTS);
diff --git a/paper-api/src/main/java/org/bukkit/material/Observer.java b/paper-api/src/main/java/org/bukkit/material/Observer.java
index e7ade2dd22..06c7206b87 100644
--- a/paper-api/src/main/java/org/bukkit/material/Observer.java
+++ b/paper-api/src/main/java/org/bukkit/material/Observer.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Observer extends MaterialData implements Directional, Redstone {
public Observer() {
diff --git a/paper-api/src/main/java/org/bukkit/material/Openable.java b/paper-api/src/main/java/org/bukkit/material/Openable.java
index 0ae54f973d..df2c2a7741 100644
--- a/paper-api/src/main/java/org/bukkit/material/Openable.java
+++ b/paper-api/src/main/java/org/bukkit/material/Openable.java
@@ -1,5 +1,6 @@
package org.bukkit.material;
+@Deprecated(forRemoval = true, since = "1.13")
public interface Openable {
/**
diff --git a/paper-api/src/main/java/org/bukkit/material/PistonBaseMaterial.java b/paper-api/src/main/java/org/bukkit/material/PistonBaseMaterial.java
index a0fe943735..2fdd7f2adf 100644
--- a/paper-api/src/main/java/org/bukkit/material/PistonBaseMaterial.java
+++ b/paper-api/src/main/java/org/bukkit/material/PistonBaseMaterial.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class PistonBaseMaterial extends MaterialData implements Directional, Redstone {
public PistonBaseMaterial(final Material type) {
diff --git a/paper-api/src/main/java/org/bukkit/material/PistonExtensionMaterial.java b/paper-api/src/main/java/org/bukkit/material/PistonExtensionMaterial.java
index 19dfe68e33..c87e54ca5a 100644
--- a/paper-api/src/main/java/org/bukkit/material/PistonExtensionMaterial.java
+++ b/paper-api/src/main/java/org/bukkit/material/PistonExtensionMaterial.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class PistonExtensionMaterial extends MaterialData implements Attachable {
public PistonExtensionMaterial(final Material type) {
diff --git a/paper-api/src/main/java/org/bukkit/material/PoweredRail.java b/paper-api/src/main/java/org/bukkit/material/PoweredRail.java
index e563c8e53a..d24968b9e3 100644
--- a/paper-api/src/main/java/org/bukkit/material/PoweredRail.java
+++ b/paper-api/src/main/java/org/bukkit/material/PoweredRail.java
@@ -8,7 +8,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class PoweredRail extends ExtendedRails implements Redstone {
public PoweredRail() {
super(Material.LEGACY_POWERED_RAIL);
diff --git a/paper-api/src/main/java/org/bukkit/material/PressurePlate.java b/paper-api/src/main/java/org/bukkit/material/PressurePlate.java
index 8827062fcd..a04c024a48 100644
--- a/paper-api/src/main/java/org/bukkit/material/PressurePlate.java
+++ b/paper-api/src/main/java/org/bukkit/material/PressurePlate.java
@@ -8,7 +8,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class PressurePlate extends MaterialData implements PressureSensor {
public PressurePlate() {
super(Material.LEGACY_WOOD_PLATE);
diff --git a/paper-api/src/main/java/org/bukkit/material/Pumpkin.java b/paper-api/src/main/java/org/bukkit/material/Pumpkin.java
index 55b0ade2cb..49e3442377 100644
--- a/paper-api/src/main/java/org/bukkit/material/Pumpkin.java
+++ b/paper-api/src/main/java/org/bukkit/material/Pumpkin.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Pumpkin extends MaterialData implements Directional {
public Pumpkin() {
diff --git a/paper-api/src/main/java/org/bukkit/material/Rails.java b/paper-api/src/main/java/org/bukkit/material/Rails.java
index 8b6b0139da..852e06835f 100644
--- a/paper-api/src/main/java/org/bukkit/material/Rails.java
+++ b/paper-api/src/main/java/org/bukkit/material/Rails.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Rails extends MaterialData {
public Rails() {
diff --git a/paper-api/src/main/java/org/bukkit/material/Redstone.java b/paper-api/src/main/java/org/bukkit/material/Redstone.java
index 3e46603f8c..eb621f34d0 100644
--- a/paper-api/src/main/java/org/bukkit/material/Redstone.java
+++ b/paper-api/src/main/java/org/bukkit/material/Redstone.java
@@ -3,6 +3,7 @@ package org.bukkit.material;
/**
* Indicated a Material that may carry or create a Redstone current
*/
+@Deprecated(forRemoval = true, since = "1.13")
public interface Redstone {
/**
diff --git a/paper-api/src/main/java/org/bukkit/material/RedstoneTorch.java b/paper-api/src/main/java/org/bukkit/material/RedstoneTorch.java
index 369f1826ec..9c7f7f7292 100644
--- a/paper-api/src/main/java/org/bukkit/material/RedstoneTorch.java
+++ b/paper-api/src/main/java/org/bukkit/material/RedstoneTorch.java
@@ -8,7 +8,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class RedstoneTorch extends Torch implements Redstone {
public RedstoneTorch() {
super(Material.LEGACY_REDSTONE_TORCH_ON);
diff --git a/paper-api/src/main/java/org/bukkit/material/RedstoneWire.java b/paper-api/src/main/java/org/bukkit/material/RedstoneWire.java
index 01f93fbacc..b9a88c4efa 100644
--- a/paper-api/src/main/java/org/bukkit/material/RedstoneWire.java
+++ b/paper-api/src/main/java/org/bukkit/material/RedstoneWire.java
@@ -8,7 +8,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class RedstoneWire extends MaterialData implements Redstone {
public RedstoneWire() {
super(Material.LEGACY_REDSTONE_WIRE);
diff --git a/paper-api/src/main/java/org/bukkit/material/Sandstone.java b/paper-api/src/main/java/org/bukkit/material/Sandstone.java
index 6bab43f68a..302db083d1 100644
--- a/paper-api/src/main/java/org/bukkit/material/Sandstone.java
+++ b/paper-api/src/main/java/org/bukkit/material/Sandstone.java
@@ -9,7 +9,7 @@ import org.bukkit.SandstoneType;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Sandstone extends MaterialData {
public Sandstone() {
super(Material.LEGACY_SANDSTONE);
diff --git a/paper-api/src/main/java/org/bukkit/material/Sapling.java b/paper-api/src/main/java/org/bukkit/material/Sapling.java
index 84daf0d756..9a34ed6241 100644
--- a/paper-api/src/main/java/org/bukkit/material/Sapling.java
+++ b/paper-api/src/main/java/org/bukkit/material/Sapling.java
@@ -11,7 +11,7 @@ import org.bukkit.TreeSpecies;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Sapling extends Wood {
/**
diff --git a/paper-api/src/main/java/org/bukkit/material/Sign.java b/paper-api/src/main/java/org/bukkit/material/Sign.java
index 48cd4599b7..ed63a98e89 100644
--- a/paper-api/src/main/java/org/bukkit/material/Sign.java
+++ b/paper-api/src/main/java/org/bukkit/material/Sign.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Sign extends MaterialData implements Attachable {
public Sign() {
super(Material.LEGACY_SIGN_POST);
diff --git a/paper-api/src/main/java/org/bukkit/material/SimpleAttachableMaterialData.java b/paper-api/src/main/java/org/bukkit/material/SimpleAttachableMaterialData.java
index d9527c6f78..500eb54ba2 100644
--- a/paper-api/src/main/java/org/bukkit/material/SimpleAttachableMaterialData.java
+++ b/paper-api/src/main/java/org/bukkit/material/SimpleAttachableMaterialData.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public abstract class SimpleAttachableMaterialData extends MaterialData implements Attachable {
public SimpleAttachableMaterialData(Material type, BlockFace direction) {
diff --git a/paper-api/src/main/java/org/bukkit/material/Skull.java b/paper-api/src/main/java/org/bukkit/material/Skull.java
index 8339519118..95a38ab493 100644
--- a/paper-api/src/main/java/org/bukkit/material/Skull.java
+++ b/paper-api/src/main/java/org/bukkit/material/Skull.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Skull extends MaterialData implements Directional {
public Skull() {
super(Material.LEGACY_SKULL);
diff --git a/paper-api/src/main/java/org/bukkit/material/SmoothBrick.java b/paper-api/src/main/java/org/bukkit/material/SmoothBrick.java
index 0dfbe2891f..f97a874360 100644
--- a/paper-api/src/main/java/org/bukkit/material/SmoothBrick.java
+++ b/paper-api/src/main/java/org/bukkit/material/SmoothBrick.java
@@ -10,7 +10,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class SmoothBrick extends TexturedMaterial {
private static final List textures = new ArrayList();
diff --git a/paper-api/src/main/java/org/bukkit/material/SpawnEgg.java b/paper-api/src/main/java/org/bukkit/material/SpawnEgg.java
index 601bd3cfd3..69011a06f0 100644
--- a/paper-api/src/main/java/org/bukkit/material/SpawnEgg.java
+++ b/paper-api/src/main/java/org/bukkit/material/SpawnEgg.java
@@ -8,7 +8,7 @@ import org.bukkit.inventory.meta.SpawnEggMeta;
* Represents a spawn egg that can be used to spawn mobs
* @deprecated use {@link SpawnEggMeta}
*/
-@Deprecated(since = "1.11")
+@Deprecated(since = "1.13", forRemoval = true)
public class SpawnEgg extends MaterialData {
public SpawnEgg() {
diff --git a/paper-api/src/main/java/org/bukkit/material/Stairs.java b/paper-api/src/main/java/org/bukkit/material/Stairs.java
index c68a7045b9..3b3ca6e6e9 100644
--- a/paper-api/src/main/java/org/bukkit/material/Stairs.java
+++ b/paper-api/src/main/java/org/bukkit/material/Stairs.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Stairs extends MaterialData implements Directional {
public Stairs(final Material type) {
diff --git a/paper-api/src/main/java/org/bukkit/material/Step.java b/paper-api/src/main/java/org/bukkit/material/Step.java
index dc5eedb278..2ca3794b69 100644
--- a/paper-api/src/main/java/org/bukkit/material/Step.java
+++ b/paper-api/src/main/java/org/bukkit/material/Step.java
@@ -10,7 +10,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Step extends TexturedMaterial {
private static final List textures = new ArrayList();
static {
diff --git a/paper-api/src/main/java/org/bukkit/material/TexturedMaterial.java b/paper-api/src/main/java/org/bukkit/material/TexturedMaterial.java
index 39adc75f7f..361e269730 100644
--- a/paper-api/src/main/java/org/bukkit/material/TexturedMaterial.java
+++ b/paper-api/src/main/java/org/bukkit/material/TexturedMaterial.java
@@ -9,7 +9,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public abstract class TexturedMaterial extends MaterialData {
public TexturedMaterial(Material m) {
diff --git a/paper-api/src/main/java/org/bukkit/material/Torch.java b/paper-api/src/main/java/org/bukkit/material/Torch.java
index 194cd64622..b74e70f89c 100644
--- a/paper-api/src/main/java/org/bukkit/material/Torch.java
+++ b/paper-api/src/main/java/org/bukkit/material/Torch.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Torch extends SimpleAttachableMaterialData {
public Torch() {
super(Material.LEGACY_TORCH);
diff --git a/paper-api/src/main/java/org/bukkit/material/TrapDoor.java b/paper-api/src/main/java/org/bukkit/material/TrapDoor.java
index 24b4391a91..3c10829317 100644
--- a/paper-api/src/main/java/org/bukkit/material/TrapDoor.java
+++ b/paper-api/src/main/java/org/bukkit/material/TrapDoor.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class TrapDoor extends SimpleAttachableMaterialData implements Openable {
public TrapDoor() {
super(Material.LEGACY_TRAP_DOOR);
diff --git a/paper-api/src/main/java/org/bukkit/material/Tree.java b/paper-api/src/main/java/org/bukkit/material/Tree.java
index 5c733a3363..0c113a39a6 100644
--- a/paper-api/src/main/java/org/bukkit/material/Tree.java
+++ b/paper-api/src/main/java/org/bukkit/material/Tree.java
@@ -13,7 +13,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Tree extends Wood {
protected static final Material DEFAULT_TYPE = Material.LEGACY_LOG;
protected static final BlockFace DEFAULT_DIRECTION = BlockFace.UP;
diff --git a/paper-api/src/main/java/org/bukkit/material/Tripwire.java b/paper-api/src/main/java/org/bukkit/material/Tripwire.java
index 4378b2992b..676d5ebeac 100644
--- a/paper-api/src/main/java/org/bukkit/material/Tripwire.java
+++ b/paper-api/src/main/java/org/bukkit/material/Tripwire.java
@@ -8,7 +8,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Tripwire extends MaterialData {
public Tripwire() {
diff --git a/paper-api/src/main/java/org/bukkit/material/TripwireHook.java b/paper-api/src/main/java/org/bukkit/material/TripwireHook.java
index 458a3e9fc2..1864bb64d7 100644
--- a/paper-api/src/main/java/org/bukkit/material/TripwireHook.java
+++ b/paper-api/src/main/java/org/bukkit/material/TripwireHook.java
@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class TripwireHook extends SimpleAttachableMaterialData implements Redstone {
public TripwireHook() {
diff --git a/paper-api/src/main/java/org/bukkit/material/Vine.java b/paper-api/src/main/java/org/bukkit/material/Vine.java
index 784ea52519..4cb1d98321 100644
--- a/paper-api/src/main/java/org/bukkit/material/Vine.java
+++ b/paper-api/src/main/java/org/bukkit/material/Vine.java
@@ -11,7 +11,7 @@ import org.bukkit.block.BlockFace;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Vine extends MaterialData {
private static final int VINE_NORTH = 0x4;
private static final int VINE_EAST = 0x8;
diff --git a/paper-api/src/main/java/org/bukkit/material/Wood.java b/paper-api/src/main/java/org/bukkit/material/Wood.java
index 62253cfc84..d139a212f4 100644
--- a/paper-api/src/main/java/org/bukkit/material/Wood.java
+++ b/paper-api/src/main/java/org/bukkit/material/Wood.java
@@ -13,7 +13,7 @@ import org.bukkit.TreeSpecies;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Wood extends MaterialData {
protected static final Material DEFAULT_TYPE = Material.LEGACY_WOOD;
protected static final TreeSpecies DEFAULT_SPECIES = TreeSpecies.GENERIC;
diff --git a/paper-api/src/main/java/org/bukkit/material/WoodenStep.java b/paper-api/src/main/java/org/bukkit/material/WoodenStep.java
index 24990ed257..df6223d836 100644
--- a/paper-api/src/main/java/org/bukkit/material/WoodenStep.java
+++ b/paper-api/src/main/java/org/bukkit/material/WoodenStep.java
@@ -11,7 +11,7 @@ import org.bukkit.TreeSpecies;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class WoodenStep extends Wood {
protected static final Material DEFAULT_TYPE = Material.LEGACY_WOOD_STEP;
protected static final boolean DEFAULT_INVERTED = false;
diff --git a/paper-api/src/main/java/org/bukkit/material/Wool.java b/paper-api/src/main/java/org/bukkit/material/Wool.java
index 5ad1f9f199..9758818bfb 100644
--- a/paper-api/src/main/java/org/bukkit/material/Wool.java
+++ b/paper-api/src/main/java/org/bukkit/material/Wool.java
@@ -8,7 +8,7 @@ import org.bukkit.Material;
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
-@Deprecated(since = "1.14.1")
+@Deprecated(since = "1.13", forRemoval = true)
public class Wool extends MaterialData implements Colorable {
public Wool() {
super(Material.LEGACY_WOOL);
diff --git a/paper-api/src/main/java/org/bukkit/material/types/MushroomBlockTexture.java b/paper-api/src/main/java/org/bukkit/material/types/MushroomBlockTexture.java
index 0044381b8a..8e6e22cefb 100644
--- a/paper-api/src/main/java/org/bukkit/material/types/MushroomBlockTexture.java
+++ b/paper-api/src/main/java/org/bukkit/material/types/MushroomBlockTexture.java
@@ -7,7 +7,9 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents the different textured blocks of mushroom.
+ * @deprecated use BlockData
*/
+@Deprecated // Paper
public enum MushroomBlockTexture {
/**
diff --git a/paper-api/src/main/java/org/bukkit/potion/PotionEffectType.java b/paper-api/src/main/java/org/bukkit/potion/PotionEffectType.java
index 7fbcb12516..6375eed0ef 100644
--- a/paper-api/src/main/java/org/bukkit/potion/PotionEffectType.java
+++ b/paper-api/src/main/java/org/bukkit/potion/PotionEffectType.java
@@ -278,9 +278,9 @@ public abstract class PotionEffectType implements Keyed, Translatable {
* Returns the unique ID of this type.
*
* @return Unique ID
- * @deprecated Magic value
+ * @deprecated use {@link #key()}
*/
- @Deprecated(since = "1.6.2")
+ @Deprecated(since = "1.6.2", forRemoval = true) // Paper
public abstract int getId();
/**
@@ -316,9 +316,9 @@ public abstract class PotionEffectType implements Keyed, Translatable {
*
* @param id Unique ID to fetch
* @return Resulting type, or null if not found.
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static PotionEffectType getById(int id) {
PotionEffectType type = ID_MAP.get(id);
diff --git a/paper-api/src/test/java/org/bukkit/materials/MaterialDataTest.java b/paper-api/src/test/java/org/bukkit/materials/MaterialDataTest.java
index 8d78435cc4..24a8ce4387 100644
--- a/paper-api/src/test/java/org/bukkit/materials/MaterialDataTest.java
+++ b/paper-api/src/test/java/org/bukkit/materials/MaterialDataTest.java
@@ -22,6 +22,7 @@ import org.bukkit.material.WoodenStep;
import org.bukkit.material.types.MushroomBlockTexture;
import org.junit.jupiter.api.Test;
+@Deprecated // Paper
public class MaterialDataTest {
@Test