Fix Spigot annotation mistakes

while some of these may of been true, they are extreme cases and cause
a ton of noise to plugin developers.

Use ApiStatus.Internal instead of Deprecated for actual internal API
that continues to have use (internally).

These do not help plugin developers if they bring moise noise than value.
This commit is contained in:
Aikar 2019-03-24 18:39:01 -04:00
parent ded424db46
commit 2825ece820
145 changed files with 372 additions and 235 deletions

View file

@ -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();
}

View file

@ -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);

View file

@ -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 {
/**

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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;
}

View file

@ -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);

View file

@ -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 {
/**

View file

@ -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;

View file

@ -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();

View file

@ -74,12 +74,14 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key { // Pap
/**
* Create a key in a specific namespace.
* <p>
* 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);

View file

@ -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 {
/**

View file

@ -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;
}

View file

@ -248,14 +248,12 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*
* @see TrimMaterial
*/
@ApiStatus.Experimental
Registry<TrimMaterial> TRIM_MATERIAL = Objects.requireNonNull(Bukkit.getRegistry(TrimMaterial.class), "No registry present for TrimMaterial. This is a bug.");
/**
* Trim patterns.
*
* @see TrimPattern
*/
@ApiStatus.Experimental
Registry<TrimPattern> 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<T extends Keyed> extends Iterable<T> {
*
* @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");

View file

@ -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),

View file

@ -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();
/**

View file

@ -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,

View file

@ -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 {
/**

View file

@ -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 {

View file

@ -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;
}

View file

@ -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);

View file

@ -526,7 +526,7 @@ public interface Block extends Metadatable, Translatable {
* @return a list of dropped items for this type of block
*/
@NotNull
Collection<ItemStack> getDrops(@NotNull ItemStack tool, @Nullable Entity entity);
Collection<ItemStack> getDrops(@Nullable ItemStack tool, @Nullable Entity entity); // Paper
/**
* Returns if the given item is a preferred choice to break this Block.

View file

@ -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);
/**

View file

@ -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();
/**

View file

@ -15,7 +15,7 @@ public interface BrushableBlock extends Lootable, TileState {
*
* @return the item
*/
@Nullable
@org.jetbrains.annotations.NotNull // Paper
public ItemStack getItem();
/**

View file

@ -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);

View file

@ -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 {
}

View file

@ -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();
/**

View file

@ -157,7 +157,7 @@ public interface AbstractArrow extends Projectile {
*
* @return The firing ItemStack
*/
@NotNull
@Nullable // Paper
@ApiStatus.Experimental
public ItemStack getWeapon();

View file

@ -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);
/**

View file

@ -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) {

View file

@ -14,7 +14,7 @@ public interface ItemDisplay extends Display {
*
* @return the displayed item stack
*/
@Nullable
@NotNull // Paper
ItemStack getItemStack();
/**

View file

@ -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
}

View file

@ -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 { }

View file

@ -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 <!-- Paper - future note: should wait a mojang input client/server side -->
*/
@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();
/**

View file

@ -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();
/**

View file

@ -15,7 +15,7 @@ public interface OminousItemSpawner extends Entity {
*
* @return the item
*/
@Nullable
@org.jetbrains.annotations.NotNull // Paper
ItemStack getItem();
/**

View file

@ -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();
/**

View file

@ -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);
}

View file

@ -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 { }

View file

@ -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();
/**

View file

@ -69,6 +69,12 @@ public final class MemoryKey<T> implements Keyed {
public static final MemoryKey<Location> LIKED_NOTEBLOCK_POSITION = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock"), Location.class);
public static final MemoryKey<Integer> LIKED_NOTEBLOCK_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock_cooldown_ticks"), Integer.class);
public static final MemoryKey<Integer> 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<Location> SNIFFER_EXPLORED_POSITIONS = new MemoryKey<>(NamespacedKey.minecraft("sniffer_explored_positions"), Location.class);
/**

View file

@ -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();

View file

@ -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();

View file

@ -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;

View file

@ -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;
}

View file

@ -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.

View file

@ -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);
}

View file

@ -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;

View file

@ -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;

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;

View file

@ -88,7 +88,7 @@ public class InventoryClickEvent extends InventoryInteractEvent {
*
* @return the cursor ItemStack
*/
@Nullable
@NotNull // Paper - fix nullability
public ItemStack getCursor() {
return getView().getCursor();
}

View file

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

View file

@ -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;
}

View file

@ -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;
}

View file

@ -19,7 +19,7 @@ public class RaidSpawnWaveEvent extends RaidEvent {
private final List<Raider> raiders;
private final Raider leader;
public RaidSpawnWaveEvent(@NotNull Raid raid, @NotNull World world, @Nullable Raider leader, @NotNull List<Raider> raiders) {
public RaidSpawnWaveEvent(@NotNull Raid raid, @NotNull World world, @NotNull Raider leader, @NotNull List<Raider> 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;
}

View file

@ -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;
}

View file

@ -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);
/**

View file

@ -68,7 +68,9 @@ public abstract class CookingRecipe<T extends 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();

View file

@ -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.

View file

@ -525,6 +525,6 @@ public interface EntityEquipment {
*
* @return the entity this EntityEquipment belongs to
*/
@Nullable
@NotNull // Paper
Entity getHolder();
}

View file

@ -67,8 +67,10 @@ public class FurnaceRecipe extends CookingRecipe<FurnaceRecipe> {
*
* @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());
}

View file

@ -161,8 +161,7 @@ public interface Inventory extends Iterable<ItemStack> {
*
* @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<ItemStack> {
* @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<ItemStack> {
*
* @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<ItemStack> {
* @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

View file

@ -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);
}

View file

@ -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);
/**

View file

@ -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();
}

View file

@ -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);
/**

View file

@ -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<Character, ItemStack> getIngredientMap() {
HashMap<Character, ItemStack> result = new HashMap<Character, ItemStack>();

View file

@ -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<ItemStack> getIngredientList() {
ArrayList<ItemStack> result = new ArrayList<ItemStack>(ingredients.size());

View file

@ -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();

View file

@ -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 <code>true</code>
* 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();
/**

View file

@ -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();
/**

View file

@ -37,7 +37,7 @@ public interface EquippableComponent extends ConfigurationSerializable {
*
* @return the sound
*/
@Nullable
@NotNull // Paper
Sound getEquipSound();
/**

View file

@ -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);
/**

View file

@ -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()) {

View file

@ -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);
}
}

View file

@ -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;
}

View file

@ -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() {

View file

@ -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 {
/**

View file

@ -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);

View file

@ -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);

View file

@ -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;

View file

@ -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() {

View file

@ -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);

View file

@ -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 {

View file

@ -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);

View file

@ -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;

View file

@ -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;

View file

@ -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);

View file

@ -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;

View file

@ -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) {

View file

@ -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() {

View file

@ -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

View file

@ -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);

View file

@ -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() {

View file

@ -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) {

View file

@ -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 {
/**

Some files were not shown because too many files have changed in this diff Show more