diff --git a/patches/api/Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/api/Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
index d9ae817577..77ef20b948 100644
--- a/patches/api/Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
+++ b/patches/api/Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
@@ -31,7 +31,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
/**
@@ -0,0 +0,0 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
@Nullable
- @Deprecated
+ @Deprecated(since = "1.20.4")
public Location getBedSpawnLocation();
+ // Paper start
+ /**
diff --git a/patches/api/Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/api/Add-EntityDyeEvent-and-CollarColorable-interface.patch
index 9afb9edb7e..5317e72e24 100644
--- a/patches/api/Add-EntityDyeEvent-and-CollarColorable-interface.patch
+++ b/patches/api/Add-EntityDyeEvent-and-CollarColorable-interface.patch
@@ -198,7 +198,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+public class SheepDyeWoolEvent extends io.papermc.paper.event.entity.EntityDyeEvent implements Cancellable {
+ // Paper - move everything to superclass
- @Deprecated
+ @Deprecated(since = "1.17.1")
public SheepDyeWoolEvent(@NotNull final Sheep sheep, @NotNull final DyeColor color) {
@@ -0,0 +0,0 @@ public class SheepDyeWoolEvent extends EntityEvent implements Cancellable {
}
diff --git a/patches/api/Add-FeatureFlag-API.patch b/patches/api/Add-FeatureFlag-API.patch
index cb94bed504..279ff82a8e 100644
--- a/patches/api/Add-FeatureFlag-API.patch
+++ b/patches/api/Add-FeatureFlag-API.patch
@@ -141,34 +141,32 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
@@ -0,0 +0,0 @@ public interface FeatureFlag extends Keyed {
* @deprecated not available since 1.21.2
*/
- @Deprecated
+ @Deprecated(since = "1.21.2")
- public static final FeatureFlag BUNDLE = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("bundle"));
+ FeatureFlag BUNDLE = deprecated("bundle");
/**
-- * AVAILABLE BETWEEN VERSIONS: 1.19 - 1.19.4
-- *
-- * @deprecated not available since 1.20
+ * AVAILABLE BETWEEN VERSIONS: 1.19 - 1.19.4
+ *
+ * @deprecated not available since 1.20
+ * The {@code trade_rebalance} feature flag.
*/
-- @Deprecated
+- @Deprecated(since = "1.20.2")
- public static final FeatureFlag UPDATE_1_20 = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("update_1_20"));
--
++ @Deprecated(since = "1.20")
++ FeatureFlag UPDATE_1_20 = deprecated("update_1_20");
+
@ApiStatus.Experimental // Paper - add missing annotation
- public static final FeatureFlag TRADE_REBALANCE = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("trade_rebalance"));
+ FeatureFlag TRADE_REBALANCE = create("trade_rebalance");
-- /**
-- * AVAILABLE BETWEEN VERSIONS: 1.20.5 - 1.20.6
-- *
-- * @deprecated not available since 1.21
-- */
-- @Deprecated
+ /**
+ * AVAILABLE BETWEEN VERSIONS: 1.20.5 - 1.20.6
+@@ -0,0 +0,0 @@ public interface FeatureFlag extends Keyed {
+ * @deprecated not available since 1.21
+ */
+ @Deprecated(since = "1.21")
- public static final FeatureFlag UPDATE_121 = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("update_1_21"));
-+ @Deprecated(since = "1.20")
-+ FeatureFlag UPDATE_1_20 = deprecated("update_1_20");
-+
-+ @Deprecated(since = "1.21")
+ FeatureFlag UPDATE_121 = deprecated("update_1_21");
@ApiStatus.Experimental // Paper - add missing annotation
diff --git a/patches/api/Add-WaterBottleSplashEvent.patch b/patches/api/Add-WaterBottleSplashEvent.patch
index 040bcd9e53..59de70fc1e 100644
--- a/patches/api/Add-WaterBottleSplashEvent.patch
+++ b/patches/api/Add-WaterBottleSplashEvent.patch
@@ -156,5 +156,5 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- private final Map affectedEntities;
+ protected final Map affectedEntities; // Paper
- @Deprecated
+ @Deprecated(since = "1.20.2")
public PotionSplashEvent(@NotNull final ThrownPotion potion, @NotNull final Map affectedEntities) {
diff --git a/patches/api/Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/api/Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
index 5f7fda65e8..79011bb7b5 100644
--- a/patches/api/Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
+++ b/patches/api/Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
@@ -10,7 +10,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/src/main/java/org/bukkit/entity/AbstractSkeleton.java
+++ b/src/main/java/org/bukkit/entity/AbstractSkeleton.java
@@ -0,0 +0,0 @@ public interface AbstractSkeleton extends Monster, com.destroystokyo.paper.entit
- @Deprecated
+ @Deprecated(since = "1.17")
@Contract("_ -> fail")
public void setSkeletonType(Skeleton.SkeletonType type);
+
diff --git a/patches/api/Add-critical-damage-API.patch b/patches/api/Add-critical-damage-API.patch
index cedae1c964..9d55a43b31 100644
--- a/patches/api/Add-critical-damage-API.patch
+++ b/patches/api/Add-critical-damage-API.patch
@@ -22,7 +22,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
private final Entity damager;
+ private final boolean critical; // Paper
- @Deprecated(forRemoval = true)
+ @Deprecated(since = "1.20.4", forRemoval = true)
public EntityDamageByEntityEvent(@NotNull final Entity damager, @NotNull final Entity damagee, @NotNull final DamageCause cause, final double damage) {
this(damager, damagee, cause, DamageSource.builder(DamageType.GENERIC).withCausingEntity(damager).withDirectEntity(damager).build(), damage);
}
@@ -34,7 +34,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ this.critical = false; // Paper - add critical damage API
}
- @Deprecated(forRemoval = true)
+ @Deprecated(since = "1.20.4", forRemoval = true)
@@ -0,0 +0,0 @@ public class EntityDamageByEntityEvent extends EntityDamageEvent {
this(damager, damagee, cause, DamageSource.builder(DamageType.GENERIC).withCausingEntity(damager).withDirectEntity(damager).build(), modifiers, modifierFunctions);
}
diff --git a/patches/api/Add-drops-to-shear-events.patch b/patches/api/Add-drops-to-shear-events.patch
index 43e9d20c10..12c8d8bef4 100644
--- a/patches/api/Add-drops-to-shear-events.patch
+++ b/patches/api/Add-drops-to-shear-events.patch
@@ -69,7 +69,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ this.drops = drops; // Paper - custom shear drops
}
- @Deprecated
+ @Deprecated(since = "1.15.2")
public PlayerShearEntityEvent(@NotNull final Player who, @NotNull final Entity what) {
- this(who, what, new ItemStack(Material.SHEARS), EquipmentSlot.HAND);
+ this(who, what, new ItemStack(Material.SHEARS), EquipmentSlot.HAND, java.util.Collections.emptyList()); // Paper - custom shear drops
diff --git a/patches/api/Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/api/Add-getMainThreadExecutor-to-BukkitScheduler.patch
index 8dad29905f..2997e9db51 100644
--- a/patches/api/Add-getMainThreadExecutor-to-BukkitScheduler.patch
+++ b/patches/api/Add-getMainThreadExecutor-to-BukkitScheduler.patch
@@ -9,7 +9,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/src/main/java/org/bukkit/scheduler/BukkitScheduler.java
+++ b/src/main/java/org/bukkit/scheduler/BukkitScheduler.java
@@ -0,0 +0,0 @@ public interface BukkitScheduler {
- @Deprecated
+ @Deprecated(since = "1.7.10")
@NotNull
public BukkitTask runTaskTimerAsynchronously(@NotNull Plugin plugin, @NotNull BukkitRunnable task, long delay, long period) throws IllegalArgumentException;
+
diff --git a/patches/api/Add-methods-for-working-with-arrows-stuck-in-living-.patch b/patches/api/Add-methods-for-working-with-arrows-stuck-in-living-.patch
index 51848e555b..af4c137487 100644
--- a/patches/api/Add-methods-for-working-with-arrows-stuck-in-living-.patch
+++ b/patches/api/Add-methods-for-working-with-arrows-stuck-in-living-.patch
@@ -32,8 +32,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
*
* @param count amount of arrows in entity's body
+ * @param fireEvent whether to fire the {@link org.bukkit.event.entity.ArrowBodyCountChangeEvent} event
- */
-- public void setArrowsInBody(int count);
++ */
+ void setArrowsInBody(int count, boolean fireEvent); // Paper
+
+ // Paper start - Add methods for working with arrows stuck in living entities
@@ -43,7 +42,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ * A value of 0 will cause the server to re-calculate the amount of ticks on the next tick.
+ *
+ * @param ticks Amount of ticks
-+ */
+ */
+- public void setArrowsInBody(int count);
+ void setNextArrowRemoval(@org.jetbrains.annotations.Range(from = 0, to = Integer.MAX_VALUE) int ticks);
+
+ /**
diff --git a/patches/api/Add-methods-to-get-translation-keys.patch b/patches/api/Add-methods-to-get-translation-keys.patch
index 6bc4ccf795..3bf8821397 100644
--- a/patches/api/Add-methods-to-get-translation-keys.patch
+++ b/patches/api/Add-methods-to-get-translation-keys.patch
@@ -316,7 +316,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* Typed represents a subtype of {@link BlockType}s that have a known block
@@ -0,0 +0,0 @@ public interface BlockType extends Keyed, Translatable {
@Nullable
- @Deprecated
+ @Deprecated(since = "1.20.6")
Material asMaterial();
+
+ // Paper start - add Translatable
@@ -568,7 +568,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* Typed represents a subtype of {@link ItemType}s that have a known item meta type
@@ -0,0 +0,0 @@ public interface ItemType extends Keyed, Translatable {
@Nullable
- @Deprecated
+ @Deprecated(since = "1.20.6")
Material asMaterial();
+
+ // Paper start - add Translatable
diff --git a/patches/api/Add-more-Evoker-API.patch b/patches/api/Add-more-Evoker-API.patch
index 0295b85bd1..e7edffa835 100644
--- a/patches/api/Add-more-Evoker-API.patch
+++ b/patches/api/Add-more-Evoker-API.patch
@@ -10,7 +10,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+++ b/src/main/java/org/bukkit/entity/Evoker.java
@@ -0,0 +0,0 @@ public interface Evoker extends Spellcaster {
*/
- @Deprecated
+ @Deprecated(since = "1.11.2")
void setCurrentSpell(@Nullable Spell spell);
+
+ // Paper start
diff --git a/patches/api/Add-more-advancement-API.patch b/patches/api/Add-more-advancement-API.patch
index 8287fb183c..addad8cd42 100644
--- a/patches/api/Add-more-advancement-API.patch
+++ b/patches/api/Add-more-advancement-API.patch
@@ -177,7 +177,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+++ b/src/main/java/org/bukkit/advancement/Advancement.java
@@ -0,0 +0,0 @@ public interface Advancement extends Keyed {
@NotNull
- Collection getCriteria();
+ AdvancementRequirements getRequirements();
+ // Paper start
/**
diff --git a/patches/api/Add-more-fields-to-AsyncPreLoginEvent.patch b/patches/api/Add-more-fields-to-AsyncPreLoginEvent.patch
index b78e0c3fd8..80ae69a1f9 100644
--- a/patches/api/Add-more-fields-to-AsyncPreLoginEvent.patch
+++ b/patches/api/Add-more-fields-to-AsyncPreLoginEvent.patch
@@ -22,7 +22,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ private final String hostname; // Paper
private final boolean transferred;
- @Deprecated
+ @Deprecated(since = "1.7.5")
@@ -0,0 +0,0 @@ public class AsyncPlayerPreLoginEvent extends Event {
}
diff --git a/patches/api/Add-openSign-method-to-HumanEntity.patch b/patches/api/Add-openSign-method-to-HumanEntity.patch
index 15bd7f6d14..acf78f4390 100644
--- a/patches/api/Add-openSign-method-to-HumanEntity.patch
+++ b/patches/api/Add-openSign-method-to-HumanEntity.patch
@@ -10,7 +10,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
@@ -0,0 +0,0 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
*/
- @Deprecated
+ @Deprecated(since = "1.12")
public void setShoulderEntityRight(@Nullable Entity entity);
+ // Paper start - Add method to open already placed sign
+ /**
diff --git a/patches/api/Add-setPlayerProfile-API-for-Skulls.patch b/patches/api/Add-setPlayerProfile-API-for-Skulls.patch
index 7a34159024..81c1d29895 100644
--- a/patches/api/Add-setPlayerProfile-API-for-Skulls.patch
+++ b/patches/api/Add-setPlayerProfile-API-for-Skulls.patch
@@ -52,7 +52,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/src/main/java/org/bukkit/inventory/meta/SkullMeta.java
+++ b/src/main/java/org/bukkit/inventory/meta/SkullMeta.java
@@ -0,0 +0,0 @@ public interface SkullMeta extends ItemMeta {
- @Deprecated
+ @Deprecated(since = "1.12.1")
boolean setOwner(@Nullable String owner);
+ // Paper start
diff --git a/patches/api/Adventure.patch b/patches/api/Adventure.patch
index 96f1455d5c..2801ad7536 100644
--- a/patches/api/Adventure.patch
+++ b/patches/api/Adventure.patch
@@ -1562,7 +1562,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+++ b/src/main/java/org/bukkit/UnsafeValues.java
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
*/
- @Deprecated
+ @Deprecated(since = "1.7.2")
public interface UnsafeValues {
+ // Paper start
+ net.kyori.adventure.text.flattener.ComponentFlattener componentFlattener();
@@ -1714,7 +1714,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated A sign may have multiple writable sides now. Use {@link Sign#getSide(Side)} and {@link SignSide#getLines()}.
+ * @deprecated A sign may have multiple writable sides now. Use {@link Sign#getSide(Side)} and {@link SignSide#lines()}.
*/
- @Deprecated
+ @Deprecated(since = "1.20")
@NotNull
@@ -0,0 +0,0 @@ public interface Sign extends TileState, Colorable {
* @param index Line number to get the text from, starting at 0
@@ -1723,7 +1723,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#getLine(int)}.
+ * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#line(int)}.
*/
- @Deprecated
+ @Deprecated(since = "1.20")
@NotNull
@@ -0,0 +0,0 @@ public interface Sign extends TileState, Colorable {
* @param index Line number to set the text at, starting from 0
@@ -1732,7 +1732,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#setLine(int, String)}.
+ * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#line(int, net.kyori.adventure.text.Component)}.
*/
- @Deprecated
+ @Deprecated(since = "1.20")
public void setLine(int index, @NotNull String line) throws IndexOutOfBoundsException;
diff --git a/src/main/java/org/bukkit/block/sign/SignSide.java b/src/main/java/org/bukkit/block/sign/SignSide.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
@@ -1837,7 +1837,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
return false;
@@ -0,0 +0,0 @@ public abstract class Command {
- @Deprecated
+ @Deprecated(since = "1.20.4")
@Nullable
public String getPermissionMessage() {
- return permissionMessage;
@@ -1846,7 +1846,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
/**
@@ -0,0 +0,0 @@ public abstract class Command {
- @Deprecated
+ @Deprecated(since = "1.20.4")
@NotNull
public Command setPermissionMessage(@Nullable String permissionMessage) {
- this.permissionMessage = permissionMessage;
@@ -2664,7 +2664,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * should use {@link #setResourcePack(String)}.
+ * should use {@link #setResourcePack(UUID, String, byte[], net.kyori.adventure.text.Component, boolean)}.
*/
- @Deprecated
+ @Deprecated(since = "1.7.2")
public void setTexturePack(@NotNull String url);
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException Thrown if the URL is null.
@@ -2947,7 +2947,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated API behavior subject to change
+ * @deprecated Use {@link #showTitle(net.kyori.adventure.title.Title)} or {@link #sendTitlePart(net.kyori.adventure.title.TitlePart, Object)}
*/
- @Deprecated
+ @Deprecated(since = "1.8.7")
public void sendTitle(@Nullable String title, @Nullable String subtitle);
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param fadeIn time in ticks for titles to fade in. Defaults to 10.
@@ -3136,7 +3136,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ }
+ // Paper end
+
- @Deprecated
+ @Deprecated(since = "1.19.4")
public SignChangeEvent(@NotNull final Block theBlock, @NotNull final Player thePlayer, @NotNull final String[] theLines) {
this(theBlock, thePlayer, theLines, Side.FRONT);
}
@@ -3467,9 +3467,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ */
+ public void disallow(@NotNull final Result result, @NotNull final net.kyori.adventure.text.Component message) {
+ this.result = result;
- this.message = message;
- }
-
++ this.message = message;
++ }
++
+ /**
+ * Disallows the player from logging in, with the given reason
+ *
@@ -3482,8 +3482,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ @Deprecated
+ public void disallow(@NotNull final PlayerPreLoginEvent.Result result, @NotNull final net.kyori.adventure.text.Component message) {
+ this.result = result == null ? null : Result.valueOf(result.name());
-+ this.message = message;
-+ }
+ this.message = message;
+ }
+ // Paper end
+ /**
+ * Gets the current kick message that will be used if getResult() !=
@@ -3508,7 +3508,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ public void setKickMessage(@NotNull final String message) {
+ this.message = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(message); // Paper
+ }
-+
+
/**
* Allows the player to log in
*/
@@ -3534,7 +3534,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
/**
@@ -0,0 +0,0 @@ public class AsyncPlayerPreLoginEvent extends Event {
- @Deprecated
+ @Deprecated(since = "1.3.2")
public void disallow(@NotNull final PlayerPreLoginEvent.Result result, @NotNull final String message) {
this.result = result == null ? null : Result.valueOf(result.name());
- this.message = message;
@@ -3558,7 +3558,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * alternative for thread safe implementations.
+ * @deprecated Listening to this event forces chat to wait for the main thread, delaying chat messages. It is recommended to use {@link io.papermc.paper.event.player.AsyncChatEvent} instead, wherever possible.
*/
- @Deprecated
+ @Deprecated(since = "1.3.1")
@Warning(reason = "Listening to this event forces chat to wait for the main thread, delaying chat messages.")
diff --git a/src/main/java/org/bukkit/event/player/PlayerEvent.java b/src/main/java/org/bukkit/event/player/PlayerEvent.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
@@ -4947,7 +4947,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
/**
@@ -0,0 +0,0 @@ public final class MapCursor {
*/
- @Deprecated
+ @Deprecated(since = "1.6.2")
public MapCursor(byte x, byte y, byte direction, byte type, boolean visible) {
- this(x, y, direction, type, visible, null);
+ this(x, y, direction, type, visible, (String) null); // Paper
@@ -4970,7 +4970,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value, use {@link #MapCursor(byte, byte, byte, Type, boolean, String)}
+ * @deprecated Magic value. Use {@link #MapCursor(byte, byte, byte, Type, boolean, net.kyori.adventure.text.Component)}
*/
- @Deprecated
+ @Deprecated(since = "1.13")
public MapCursor(byte x, byte y, byte direction, byte type, boolean visible, @Nullable String caption) {
@@ -0,0 +0,0 @@ public final class MapCursor {
setDirection(direction);
@@ -4996,7 +4996,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ this.x = x; this.y = y; this.visible = visible; this.caption = caption;
+ setDirection(direction);
+ setRawType(type);
- }
++ }
+ /**
+ * Initialize the map cursor.
+ *
@@ -5011,7 +5011,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ this.x = x; this.y = y; this.visible = visible; this.caption = caption;
+ setDirection(direction);
+ setType(type);
-+ }
+ }
+ // Paper end
/**
@@ -5290,7 +5290,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated use {@link #registerNewObjective(String, Criteria, String)}
+ * @deprecated use {@link #registerNewObjective(String, Criteria, net.kyori.adventure.text.Component)}
*/
- @Deprecated
+ @Deprecated(since = "1.20.5")
@NotNull
@@ -0,0 +0,0 @@ public interface Scoreboard {
* characters.
@@ -5299,7 +5299,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated use {@link #registerNewObjective(String, Criteria, String, RenderType)}
+ * @deprecated use {@link #registerNewObjective(String, Criteria, net.kyori.adventure.text.Component, RenderType)}
*/
- @Deprecated
+ @Deprecated(since = "1.20.5")
@NotNull
@@ -0,0 +0,0 @@ public interface Scoreboard {
* characters.
diff --git a/patches/api/Custom-Potion-Mixes.patch b/patches/api/Custom-Potion-Mixes.patch
index bdb548d569..acb1a65bea 100644
--- a/patches/api/Custom-Potion-Mixes.patch
+++ b/patches/api/Custom-Potion-Mixes.patch
@@ -246,8 +246,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @return The list of effects
* @deprecated Non-Functional
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true, since = "1.20.5") // Paper
+- @Deprecated(since = "1.6.2")
++ @Deprecated(since = "1.6.2", forRemoval = true) // Paper
@NotNull
- public Collection getEffectsFromDamage(int damage);
+ // Paper start - make default
@@ -262,7 +262,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated Upgraded / extended potions are now their own {@link PotionType} use {@link PotionType#getPotionEffects()} instead
*/
@NotNull
-- @Deprecated
-+ @Deprecated(forRemoval = true, since = "1.20.5") // Paper
+- @Deprecated(since = "1.20.2")
++ @Deprecated(since = "1.20.2", forRemoval = true) // Paper
public Collection getEffects(@NotNull PotionType type, boolean upgraded, boolean extended);
}
diff --git a/patches/api/Disable-deprecated-annotation-test.patch b/patches/api/Disable-deprecated-annotation-test.patch
new file mode 100644
index 0000000000..9bfd1c9cda
--- /dev/null
+++ b/patches/api/Disable-deprecated-annotation-test.patch
@@ -0,0 +1,26 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Nassim Jahnke
+Date: Tue, 3 Dec 2024 15:33:45 +0100
+Subject: [PATCH] Disable deprecated annotation test
+
+
+diff --git a/src/test/java/org/bukkit/DeprecatedTest.java b/src/test/java/org/bukkit/DeprecatedTest.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/test/java/org/bukkit/DeprecatedTest.java
++++ b/src/test/java/org/bukkit/DeprecatedTest.java
+@@ -0,0 +0,0 @@ import com.google.common.base.Joiner;
+ import java.util.ArrayList;
+ import java.util.List;
+ import org.bukkit.support.test.ClassNodeTest;
++import org.junit.jupiter.api.Disabled;
+ import org.objectweb.asm.Type;
+ import org.objectweb.asm.tree.AnnotationNode;
+ import org.objectweb.asm.tree.ClassNode;
+@@ -0,0 +0,0 @@ import org.objectweb.asm.tree.FieldNode;
+ import org.objectweb.asm.tree.MethodNode;
+ import org.objectweb.asm.tree.RecordComponentNode;
+
++@Disabled
+ public class DeprecatedTest {
+
+ private static final String DEPRECATED_DESC = Type.getDescriptor(Deprecated.class);
diff --git a/patches/api/Display-warning-on-deprecated-recipe-API.patch b/patches/api/Display-warning-on-deprecated-recipe-API.patch
index 0aa767628f..31c122cd36 100644
--- a/patches/api/Display-warning-on-deprecated-recipe-API.patch
+++ b/patches/api/Display-warning-on-deprecated-recipe-API.patch
@@ -14,7 +14,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
@@ -0,0 +0,0 @@ public class ShapedRecipe extends CraftingRecipe {
- @Deprecated
+ @Deprecated(since = "1.12")
public ShapedRecipe(@NotNull ItemStack result) {
this(NamespacedKey.randomKey(), result);
+ new Throwable("Warning: A plugin is creating a recipe using a Deprecated method. This will cause you to receive warnings stating 'Tried to load unrecognized recipe: bukkit:'. Please ask the author to give their recipe a static key using NamespacedKey.").printStackTrace(); // Paper
@@ -26,7 +26,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
@@ -0,0 +0,0 @@ public class ShapelessRecipe extends CraftingRecipe {
- @Deprecated
+ @Deprecated(since = "1.12")
public ShapelessRecipe(@NotNull ItemStack result) {
this(NamespacedKey.randomKey(), result);
+ new Throwable("Warning: A plugin is creating a recipe using a Deprecated method. This will cause you to receive warnings stating 'Tried to load unrecognized recipe: bukkit:'. Please ask the author to give their recipe a static key using NamespacedKey.").printStackTrace(); // Paper
diff --git a/patches/api/Expand-ArmorStand-API.patch b/patches/api/Expand-ArmorStand-API.patch
index 9485219ec4..61d23eeb88 100644
--- a/patches/api/Expand-ArmorStand-API.patch
+++ b/patches/api/Expand-ArmorStand-API.patch
@@ -163,7 +163,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ * @deprecated prefer {@link ArmorStand#getItem(EquipmentSlot)} // Paper
*/
@NotNull
- @Deprecated
+ @Deprecated(since = "1.15.2")
@@ -0,0 +0,0 @@ public interface ArmorStand extends LivingEntity {
* @param item the item to hold
* @see #getEquipment()
@@ -171,7 +171,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * {@link EntityEquipment#setItemInHand(org.bukkit.inventory.ItemStack)}
+ * {@link ArmorStand#setItem(EquipmentSlot, ItemStack)} // Paper
*/
- @Deprecated
+ @Deprecated(since = "1.15.2")
void setItemInHand(@Nullable ItemStack item);
@@ -0,0 +0,0 @@ public interface ArmorStand extends LivingEntity {
* @param tick {@code true} if this armour stand can tick, {@code false} otherwise
diff --git a/patches/api/Expand-FallingBlock-API.patch b/patches/api/Expand-FallingBlock-API.patch
index 8837cf557c..87d7068dae 100644
--- a/patches/api/Expand-FallingBlock-API.patch
+++ b/patches/api/Expand-FallingBlock-API.patch
@@ -42,7 +42,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @deprecated Magic value. Use {@link #spawn(Location, Class, Consumer)} (or a variation thereof) in combination with {@link FallingBlock#setBlockData(BlockData)}
*/
- @Deprecated
+ @Deprecated(since = "1.7.5")
@NotNull
diff --git a/src/main/java/org/bukkit/entity/FallingBlock.java b/src/main/java/org/bukkit/entity/FallingBlock.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
diff --git a/patches/api/Expand-LingeringPotion-API.patch b/patches/api/Expand-LingeringPotion-API.patch
index e026fefe14..03dd349f80 100644
--- a/patches/api/Expand-LingeringPotion-API.patch
+++ b/patches/api/Expand-LingeringPotion-API.patch
@@ -14,7 +14,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
private final AreaEffectCloud entity;
+ private boolean allowEmptyAreaEffectCreation; // Paper
- @Deprecated
+ @Deprecated(since = "1.20.2")
public LingeringPotionSplashEvent(@NotNull final ThrownPotion potion, @NotNull final AreaEffectCloud entity) {
@@ -0,0 +0,0 @@ public class LingeringPotionSplashEvent extends ProjectileHitEvent implements Ca
return entity;
diff --git a/patches/api/Expand-PlayerItemMendEvent.patch b/patches/api/Expand-PlayerItemMendEvent.patch
index 6f46bff8c6..302c8d931a 100644
--- a/patches/api/Expand-PlayerItemMendEvent.patch
+++ b/patches/api/Expand-PlayerItemMendEvent.patch
@@ -82,5 +82,5 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
}
+ // Paper end
- @Deprecated
+ @Deprecated(since = "1.19.2")
public PlayerItemMendEvent(@NotNull Player who, @NotNull ItemStack item, @NotNull ExperienceOrb experienceOrb, int repairAmount) {
diff --git a/patches/api/Experimental-annotations-change.patch b/patches/api/Experimental-annotations-change.patch
index c615b8bb1b..22dee223f8 100644
--- a/patches/api/Experimental-annotations-change.patch
+++ b/patches/api/Experimental-annotations-change.patch
@@ -9,7 +9,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/src/main/java/org/bukkit/FeatureFlag.java
+++ b/src/main/java/org/bukkit/FeatureFlag.java
@@ -0,0 +0,0 @@ public interface FeatureFlag extends Keyed {
- @Deprecated
+ @Deprecated(since = "1.20.2")
public static final FeatureFlag UPDATE_1_20 = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("update_1_20"));
+ @ApiStatus.Experimental // Paper - add missing annotation
@@ -17,7 +17,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
/**
@@ -0,0 +0,0 @@ public interface FeatureFlag extends Keyed {
- @Deprecated
+ @Deprecated(since = "1.21")
public static final FeatureFlag UPDATE_121 = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("update_1_21"));
+ @ApiStatus.Experimental // Paper - add missing annotation
diff --git a/patches/api/Expose-hand-during-BlockCanBuildEvent.patch b/patches/api/Expose-hand-during-BlockCanBuildEvent.patch
index 59ed5baf82..2e524397e9 100644
--- a/patches/api/Expose-hand-during-BlockCanBuildEvent.patch
+++ b/patches/api/Expose-hand-during-BlockCanBuildEvent.patch
@@ -14,7 +14,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
private final Player player;
+ private final org.bukkit.inventory.EquipmentSlot hand; // Paper - expose hand
- @Deprecated
+ @Deprecated(since = "1.13.2")
public BlockCanBuildEvent(@NotNull final Block block, @NotNull final BlockData type, final boolean canBuild) {
- this(block, null, type, canBuild);
+ this(block, null, type, canBuild, org.bukkit.inventory.EquipmentSlot.HAND); // Paper - expose hand
diff --git a/patches/api/Fix-BanList-API.patch b/patches/api/Fix-BanList-API.patch
index 65c3ccdd14..f6c48f3d14 100644
--- a/patches/api/Fix-BanList-API.patch
+++ b/patches/api/Fix-BanList-API.patch
@@ -10,7 +10,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+++ b/src/main/java/org/bukkit/BanList.java
@@ -0,0 +0,0 @@ public interface BanList {
*/
- @Deprecated
+ @Deprecated(since = "1.20.1")
@Nullable
- public BanEntry getBanEntry(@NotNull String target);
+ public > E getBanEntry(@NotNull String target); // Paper
@@ -19,7 +19,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* Gets a {@link BanEntry} by target.
@@ -0,0 +0,0 @@ public interface BanList {
*/
- @Deprecated
+ @Deprecated(since = "1.20.1")
@Nullable
- public BanEntry addBan(@NotNull String target, @Nullable String reason, @Nullable Date expires, @Nullable String source);
+ public > E addBan(@NotNull String target, @Nullable String reason, @Nullable Date expires, @Nullable String source); // Paper
diff --git a/patches/api/Fix-NotePlayEvent.patch b/patches/api/Fix-NotePlayEvent.patch
index ca823c4ce0..1d24b54671 100644
--- a/patches/api/Fix-NotePlayEvent.patch
+++ b/patches/api/Fix-NotePlayEvent.patch
@@ -20,7 +20,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @param instrument the Instrument. Has no effect if null.
- * @deprecated no effect on newer Minecraft versions
*/
-- @Deprecated
+- @Deprecated(since = "1.13")
public void setInstrument(@NotNull Instrument instrument) {
if (instrument != null) {
this.instrument = instrument;
@@ -30,7 +30,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @param note the Note. Has no effect if null.
- * @deprecated no effect on newer Minecraft versions
*/
-- @Deprecated
+- @Deprecated(since = "1.13")
public void setNote(@NotNull Note note) {
if (note != null) {
this.note = note;
diff --git a/patches/api/Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/api/Fix-SpawnEggMeta-get-setSpawnedType.patch
index ba7a263cde..94eeeacc62 100644
--- a/patches/api/Fix-SpawnEggMeta-get-setSpawnedType.patch
+++ b/patches/api/Fix-SpawnEggMeta-get-setSpawnedType.patch
@@ -12,8 +12,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @return The entity type. May be null for implementation specific default.
* @deprecated different types are different items
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true) // Paper
+- @Deprecated(since = "1.13")
++ @Deprecated(since = "1.13", forRemoval = true) // Paper
@Contract("-> fail")
EntityType getSpawnedType();
@@ -21,8 +21,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* default.
* @deprecated different types are different items
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true) // Paper
+- @Deprecated(since = "1.13")
++ @Deprecated(since = "1.13", forRemoval = true) // Paper
@Contract("_ -> fail")
void setSpawnedType(EntityType type);
diff --git a/patches/api/Fix-Spigot-annotation-mistakes.patch b/patches/api/Fix-Spigot-annotation-mistakes.patch
index 0e0f3d5fe3..86023907a0 100644
--- a/patches/api/Fix-Spigot-annotation-mistakes.patch
+++ b/patches/api/Fix-Spigot-annotation-mistakes.patch
@@ -21,8 +21,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @return a map view if it exists, or null otherwise
- * @deprecated Magic value
*/
-- @Deprecated
-+ //@Deprecated // Paper - Not a 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);
@@ -48,8 +48,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Persistent storage of users should be by UUID as names are no longer
- * unique past a single session.
*/
-- @Deprecated
-+ // @Deprecated // Paper
+- @Deprecated(since = "1.7.5")
++ // @Deprecated(since = "1.7.5") // Paper
@NotNull
public static OfflinePlayer getOfflinePlayer(@NotNull String name) {
return server.getOfflinePlayer(name);
@@ -97,7 +97,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public int getValue() {
return value;
@@ -109,7 +109,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static Difficulty getByValue(final int value) {
@@ -125,7 +125,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getWoolData() {
return woolData;
@@ -137,7 +137,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static DyeColor getByWoolData(final byte data) {
@@ -149,7 +149,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated legacy use only
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.13")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@NotNull
public static DyeColor legacyValueOf(@Nullable String name) {
@@ -165,7 +165,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public int getId() {
return this.id;
@@ -177,7 +177,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static Effect getById(int id) {
@@ -193,7 +193,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getData() {
return data;
@@ -209,7 +209,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public int getValue() {
return value;
@@ -221,7 +221,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static GameMode getByValue(final int value) {
@@ -282,7 +282,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @ApiStatus.Internal // Paper
public int getId() {
Preconditions.checkArgument(legacy, "Cannot get ID of Modern Material");
@@ -295,8 +295,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
*
* @return legacy status
*/
-- @Deprecated
-+ // @Deprecated // Paper - this is useful, don't deprecate
+- @Deprecated(since = "1.13")
++ // @Deprecated(since = "1.13") // Paper - this is useful, don't deprecate
public boolean isLegacy() {
return legacy;
}
@@ -371,7 +371,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getId() {
return getId(false);
@@ -383,7 +383,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @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);
@@ -395,7 +395,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public boolean isSharped(byte id) {
if (id == getId(false)) {
@@ -407,7 +407,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static Tone getById(byte id) {
@@ -419,7 +419,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getId() {
return note;
@@ -479,8 +479,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @return a map view if it exists, or null otherwise
- * @deprecated Magic value
*/
-- @Deprecated
-+ //@Deprecated // Paper - Not a magic value
+- @Deprecated(since = "1.6.2")
++ // @Deprecated(since = "1.6.2") // Paper - Not a magic value
@Nullable
public MapView getMap(int id);
@@ -506,8 +506,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Persistent storage of users should be by UUID as names are no longer
- * unique past a single session.
*/
-- @Deprecated
-+ // @Deprecated // Paper
+- @Deprecated(since = "1.7.5")
++ // @Deprecated(since = "1.7.5") // Paper
@NotNull
public OfflinePlayer getOfflinePlayer(@NotNull String name);
@@ -528,8 +528,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* Represents the different types of skulls.
* @deprecated check {@link Material} instead
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.13")
++@Deprecated(since = "1.13", forRemoval = true)
public enum SkullType {
SKELETON,
WITHER,
@@ -541,8 +541,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
*
* @deprecated Deprecated, see usage methods for replacement(s)
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.19")
+-@Deprecated(since = "1.19")
++@Deprecated(since = "1.19", forRemoval = true)
public enum TreeSpecies {
/**
@@ -556,7 +556,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
@Retention(RetentionPolicy.CLASS)
+@java.lang.annotation.Documented // Paper
@ApiStatus.Internal
- @Deprecated
+ @Deprecated(since = "1.13.2")
public @interface UndefinedNullability {
diff --git a/src/main/java/org/bukkit/Vibration.java b/src/main/java/org/bukkit/Vibration.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
@@ -599,8 +599,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
*
- * @deprecated This method is not guaranteed to work suitably across all client implementations.
*/
-- @Deprecated
-+ //@Deprecated // Paper
+- @Deprecated(since = "1.8")
++ // @Deprecated(since = "1.8") // Paper
public boolean refreshChunk(int x, int z);
/**
@@ -631,7 +631,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public int getId() {
return id;
@@ -643,7 +643,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static Environment getEnvironment(int id) {
@@ -729,7 +729,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public int getId() {
return this.id;
@@ -741,7 +741,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static PistonMoveReaction getById(int id) {
@@ -754,8 +754,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
*
* @see BrushableBlock
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.20")
+-@Deprecated(since = "1.20")
++@Deprecated(since = "1.20", forRemoval = true)
public interface SuspiciousSand extends BrushableBlock {
}
diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java
@@ -766,8 +766,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated enchantment groupings are now managed by tags, not categories
*/
@NotNull
-- @Deprecated
-+ @Deprecated(forRemoval = true, since = "1.20.5") @org.jetbrains.annotations.Contract("-> fail") // Paper
+- @Deprecated(since = "1.20.5")
++ @Deprecated(since = "1.20.5", forRemoval = true) @org.jetbrains.annotations.Contract("-> fail") // Paper
public abstract EnchantmentTarget getItemTarget();
/**
@@ -819,7 +819,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Contract("null -> null")
@Nullable
@@ -877,8 +877,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ * @deprecated should not be used for anything, use {@link ThrownPotion} and
+ * set the potion via the methods there.
*/
--@Deprecated
-+@Deprecated(forRemoval = true) // Paper
+-@Deprecated(since = "1.20.5")
++@Deprecated(since = "1.20.5", forRemoval = true) // Paper
public interface LingeringPotion extends ThrownPotion { }
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
@@ -898,8 +898,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated entity groupings are now managed by tags, not categories
*/
@NotNull
-- @Deprecated
-+ @Deprecated(forRemoval = true, since = "1.20.5") @org.jetbrains.annotations.Contract("-> fail") // Paper
+- @Deprecated(since = "1.20.5")
++ @Deprecated(since = "1.20.5", forRemoval = true) @org.jetbrains.annotations.Contract("-> fail") // Paper
public EntityCategory getCategory();
/**
@@ -966,8 +966,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @return true if it should bounce.
* @deprecated does not do anything
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true)
+- @Deprecated(since = "1.20.2")
++ @Deprecated(since = "1.20.2", forRemoval = true)
public boolean doesBounce();
/**
@@ -975,8 +975,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @param doesBounce whether or not it should bounce.
* @deprecated does not do anything
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true)
+- @Deprecated(since = "1.20.2")
++ @Deprecated(since = "1.20.2", forRemoval = true)
public void setBounce(boolean doesBounce);
}
diff --git a/src/main/java/org/bukkit/entity/SplashPotion.java b/src/main/java/org/bukkit/entity/SplashPotion.java
@@ -991,8 +991,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ * @deprecated should not be used for anything, use {@link ThrownPotion} and
+ * set the potion via the methods there.
*/
--@Deprecated
-+@Deprecated(forRemoval = true) // Paper
+-@Deprecated(since = "1.14")
++@Deprecated(since = "1.14", forRemoval = true) // Paper
public interface SplashPotion extends ThrownPotion { }
diff --git a/src/main/java/org/bukkit/entity/ZombieVillager.java b/src/main/java/org/bukkit/entity/ZombieVillager.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
@@ -1265,8 +1265,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
*
* @deprecated use {@link #SMITHING}
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true) // Paper
+- @Deprecated(since = "1.20.1")
++ @Deprecated(since = "1.20.1", forRemoval = true) // Paper
SMITHING_NEW(4, "Upgrade Gear", MenuType.SMITHING),
;
@@ -1510,7 +1510,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public int getId() {
return id;
@@ -1579,8 +1579,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @param data the data value or null
* @deprecated this method uses an ambiguous data byte object
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true, since = "1.13")
+- @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()) {
@@ -1798,8 +1798,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * for example will generate a new map with a different ID). The xxxMapView
- * family of methods should be used instead.
*/
-- @Deprecated
-+ //@Deprecated // Paper
+- @Deprecated(since = "1.13.2")
++ //@Deprecated(since = "1.13.2") // Paper
boolean hasMapId();
/**
@@ -1813,8 +1813,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * for example will generate a new map with a different ID). The xxxMapView
- * family of methods should be used instead.
*/
-- @Deprecated
-+ //@Deprecated // Paper
+- @Deprecated(since = "1.13.2")
++ // @Deprecated(since = "1.13.2") // Paper
int getMapId();
/**
@@ -1842,8 +1842,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value, use {@link #getPixelColor(int, int)}
+ * @deprecated use {@link #getPixelColor(int, int)}
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true, since = "1.20.2") // Paper
+- @Deprecated(since = "1.19")
++ @Deprecated(since = "1.19", forRemoval = true) // Paper
public byte getPixel(int x, int y);
/**
@@ -1854,8 +1854,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value, use {@link #getBasePixelColor(int, int)}
+ * @deprecated use {@link #getBasePixelColor(int, int)}
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true, since = "1.20.2") // Paper
+- @Deprecated(since = "1.19")
++ @Deprecated(since = "1.19", forRemoval = true) // Paper
public byte getBasePixel(int x, int y);
/**
@@ -1870,7 +1870,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getRawType() {
return type.getValue();
@@ -1882,8 +1882,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @deprecated use {@link #setType(Type)}
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true, since = "1.20.2") // Paper
+- @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);
@@ -1894,7 +1894,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
byte getValue();
@@ -1906,7 +1906,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
static Type byValue(byte value) {
@@ -1922,8 +1922,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @deprecated use color-related methods
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true, since = "1.20.2") // Paper
+- @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);
@@ -1934,8 +1934,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @deprecated use color-related methods
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true, since = "1.20.2") // Paper
+- @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));
}
@@ -1946,8 +1946,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @deprecated use color-related methods
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true, since = "1.20.2") // Paper
+- @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;
@@ -1958,8 +1958,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @deprecated use color directly
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true, since = "1.20.2") // Paper
+- @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
@@ -1970,7 +1970,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.19")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
byte matchColor(@NotNull Color color);
}
@@ -1986,7 +1986,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static Scale valueOf(byte value) {
@@ -1998,7 +1998,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getValue() {
return value;
@@ -2011,7 +2011,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
+-@Deprecated(since = "1.14.1")
+@Deprecated(forRemoval = true, since = "1.13")
public class Banner extends MaterialData implements Attachable {
@@ -2024,7 +2024,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
+-@Deprecated(since = "1.14.1")
+@Deprecated(forRemoval = true, since = "1.13")
public class Bed extends MaterialData implements Directional {
@@ -2037,7 +2037,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
+-@Deprecated(since = "1.14.1")
+@Deprecated(forRemoval = true, since = "1.13")
public class Button extends SimpleAttachableMaterialData implements Redstone {
public Button() {
@@ -2050,8 +2050,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Cake extends MaterialData {
public Cake() {
super(Material.LEGACY_CAKE_BLOCK);
@@ -2063,8 +2063,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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;
@@ -2076,8 +2076,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Chest extends DirectionalContainer {
public Chest() {
@@ -2089,8 +2089,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Coal extends MaterialData {
public Coal() {
super(Material.LEGACY_COAL);
@@ -2102,8 +2102,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class CocoaPlant extends MaterialData implements Directional, Attachable {
public enum CocoaPlantSize {
@@ -2115,8 +2115,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Command extends MaterialData implements Redstone {
public Command() {
super(Material.LEGACY_COMMAND);
@@ -2128,8 +2128,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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;
@@ -2141,8 +2141,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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;
@@ -2154,8 +2154,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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);
@@ -2167,8 +2167,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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;
@@ -2180,8 +2180,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class DirectionalContainer extends MaterialData implements Directional {
public DirectionalContainer(final Material type) {
@@ -2193,8 +2193,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Dispenser extends FurnaceAndDispenser {
public Dispenser() {
@@ -2206,8 +2206,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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
@@ -2219,8 +2219,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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);
@@ -2232,8 +2232,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class EnderChest extends DirectionalContainer {
public EnderChest() {
@@ -2245,8 +2245,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class ExtendedRails extends Rails {
public ExtendedRails(final Material type) {
@@ -2258,8 +2258,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.9.4")
++@Deprecated(since = "1.13", forRemoval = true)
public class FlowerPot extends MaterialData {
/**
@@ -2271,8 +2271,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Furnace extends FurnaceAndDispenser {
public Furnace() {
@@ -2284,8 +2284,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class FurnaceAndDispenser extends DirectionalContainer {
public FurnaceAndDispenser(final Material type) {
@@ -2297,8 +2297,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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;
@@ -2310,8 +2310,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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;
@@ -2323,8 +2323,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Ladder extends SimpleAttachableMaterialData {
public Ladder() {
super(Material.LEGACY_LADDER);
@@ -2336,8 +2336,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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;
@@ -2349,8 +2349,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Lever extends SimpleAttachableMaterialData implements Redstone {
public Lever() {
super(Material.LEGACY_LEVER);
@@ -2362,8 +2362,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class LongGrass extends MaterialData {
public LongGrass() {
super(Material.LEGACY_LONG_GRASS);
@@ -2375,8 +2375,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.13")
++@Deprecated(since = "1.13", forRemoval = true)
public class MaterialData implements Cloneable {
private final Material type;
private byte data = 0;
@@ -2388,8 +2388,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class MonsterEggs extends TexturedMaterial {
private static final List textures = new ArrayList();
@@ -2401,8 +2401,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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;
@@ -2414,8 +2414,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class NetherWarts extends MaterialData {
public NetherWarts() {
super(Material.LEGACY_NETHER_WARTS);
@@ -2427,8 +2427,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Observer extends MaterialData implements Directional, Redstone {
public Observer() {
@@ -2451,8 +2451,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class PistonBaseMaterial extends MaterialData implements Directional, Redstone {
public PistonBaseMaterial(final Material type) {
@@ -2464,8 +2464,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class PistonExtensionMaterial extends MaterialData implements Attachable {
public PistonExtensionMaterial(final Material type) {
@@ -2477,8 +2477,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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);
@@ -2490,8 +2490,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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);
@@ -2503,8 +2503,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Pumpkin extends MaterialData implements Directional {
public Pumpkin() {
@@ -2516,8 +2516,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Rails extends MaterialData {
public Rails() {
@@ -2541,8 +2541,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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);
@@ -2554,8 +2554,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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);
@@ -2567,8 +2567,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Sandstone extends MaterialData {
public Sandstone() {
super(Material.LEGACY_SANDSTONE);
@@ -2580,8 +2580,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Sapling extends Wood {
/**
@@ -2593,8 +2593,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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);
@@ -2606,8 +2606,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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) {
@@ -2619,8 +2619,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Skull extends MaterialData implements Directional {
public Skull() {
super(Material.LEGACY_SKULL);
@@ -2632,8 +2632,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class SmoothBrick extends TexturedMaterial {
private static final List textures = new ArrayList();
@@ -2645,8 +2645,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* Represents a spawn egg that can be used to spawn mobs
* @deprecated use {@link SpawnEggMeta}
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.11")
++@Deprecated(since = "1.13", forRemoval = true)
public class SpawnEgg extends MaterialData {
public SpawnEgg() {
@@ -2658,8 +2658,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Stairs extends MaterialData implements Directional {
public Stairs(final Material type) {
@@ -2671,8 +2671,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Step extends TexturedMaterial {
private static final List textures = new ArrayList();
static {
@@ -2684,8 +2684,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public abstract class TexturedMaterial extends MaterialData {
public TexturedMaterial(Material m) {
@@ -2697,8 +2697,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Torch extends SimpleAttachableMaterialData {
public Torch() {
super(Material.LEGACY_TORCH);
@@ -2710,8 +2710,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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);
@@ -2723,8 +2723,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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;
@@ -2736,8 +2736,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Tripwire extends MaterialData {
public Tripwire() {
@@ -2749,8 +2749,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class TripwireHook extends SimpleAttachableMaterialData implements Redstone {
public TripwireHook() {
@@ -2762,8 +2762,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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;
@@ -2775,8 +2775,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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;
@@ -2788,8 +2788,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@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;
@@ -2801,8 +2801,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @deprecated all usage of MaterialData is deprecated and subject to removal.
* Use {@link org.bukkit.block.data.BlockData}.
*/
--@Deprecated
-+@Deprecated(forRemoval = true, since = "1.13")
+-@Deprecated(since = "1.14.1")
++@Deprecated(since = "1.13", forRemoval = true)
public class Wool extends MaterialData implements Colorable {
public Wool() {
super(Material.LEGACY_WOOL);
@@ -2831,8 +2831,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @deprecated use {@link #key()}
*/
-- @Deprecated
-+ @Deprecated(forRemoval = true, since = "1.20.2") // Paper
+- @Deprecated(since = "1.6.2")
++ @Deprecated(since = "1.6.2", forRemoval = true) // Paper
public abstract int getId();
/**
@@ -2843,7 +2843,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated Magic value
+ * @apiNote Internal Use Only
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static PotionEffectType getById(int id) {
diff --git a/patches/api/Fix-equipment-slot-and-group-API.patch b/patches/api/Fix-equipment-slot-and-group-API.patch
index bc470bb53f..6b3d970702 100644
--- a/patches/api/Fix-equipment-slot-and-group-API.patch
+++ b/patches/api/Fix-equipment-slot-and-group-API.patch
@@ -16,7 +16,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
@@ -0,0 +0,0 @@ public class AttributeModifier implements ConfigurationSerializable, Keyed {
*/
@Nullable
- @Deprecated
+ @Deprecated(since = "1.20.5")
+ @io.papermc.paper.annotation.DoNotUse // Paper
public EquipmentSlot getSlot() {
return slot == EquipmentSlotGroup.ANY ? null : slot.getExample();
diff --git a/patches/api/Fix-upstream-javadocs.patch b/patches/api/Fix-upstream-javadocs.patch
index 6d6c18bcc4..d212be493a 100644
--- a/patches/api/Fix-upstream-javadocs.patch
+++ b/patches/api/Fix-upstream-javadocs.patch
@@ -241,10 +241,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* Represents a captured state of a bed.
- * @deprecated does not provide useful information beyond the material itself
*/
--@Deprecated
+-@Deprecated(since = "1.13")
-public interface Bed extends TileState, Colorable { }
+// Paper start
-+// @Deprecated
++// @Deprecated(since = "1.13")
+public interface Bed extends TileState, Colorable {
+
+ @Override
@@ -377,7 +377,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * @deprecated use {@link #getAttachedFace()}
+ * @deprecated use {@link #setAttachedFace(AttachedFace)}
*/
- @Deprecated
+ @Deprecated(since = "1.15.2")
void setFace(@NotNull Face face);
@@ -0,0 +0,0 @@ public interface Switch extends Directional, FaceAttachable, Powerable {
*/
@@ -1091,8 +1091,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ * @deprecated This is simply the online players. Modifications have no effect
*/
@NotNull
-- @Deprecated
-+ @Deprecated(forRemoval = true)
+- @Deprecated(since = "1.3.1")
++ @Deprecated(since = "1.3.1", forRemoval = true)
public Set getRecipients() {
return recipients;
}
diff --git a/patches/api/Implement-regenerateChunk.patch b/patches/api/Implement-regenerateChunk.patch
index bd83bf80d4..c309ce55fa 100644
--- a/patches/api/Implement-regenerateChunk.patch
+++ b/patches/api/Implement-regenerateChunk.patch
@@ -17,5 +17,5 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ * chunk as before as terrain decoration may be spread across chunks. It may
+ * or may not change blocks in the adjacent chunks as well.
*/
- @Deprecated
+ @Deprecated(since = "1.13")
public boolean regenerateChunk(int x, int z);
diff --git a/patches/api/Improve-scoreboard-entries.patch b/patches/api/Improve-scoreboard-entries.patch
index 8b20a11595..a788d2b3d4 100644
--- a/patches/api/Improve-scoreboard-entries.patch
+++ b/patches/api/Improve-scoreboard-entries.patch
@@ -14,8 +14,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @see #getScore(String)
- * @deprecated Scoreboards can contain entries that aren't players
*/
-- @Deprecated
-+ // @Deprecated // Paper
+- @Deprecated(since = "1.7.8")
++ // @Deprecated(since = "1.7.8") // Paper
@NotNull
Score getScore(@NotNull OfflinePlayer player);
@@ -46,8 +46,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @see #getScores(String)
- * @deprecated Scoreboards can contain entries that aren't players
*/
-- @Deprecated
-+ // @Deprecated // Paper
+- @Deprecated(since = "1.7.8")
++ // @Deprecated(since = "1.7.8") // Paper
@NotNull
Set getScores(@NotNull OfflinePlayer player);
@@ -57,8 +57,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @see #resetScores(String)
- * @deprecated Scoreboards can contain entries that aren't players
*/
-- @Deprecated
-+ // @Deprecated // Paper
+- @Deprecated(since = "1.7.8")
++ // @Deprecated(since = "1.7.8") // Paper
void resetScores(@NotNull OfflinePlayer player);
/**
@@ -68,8 +68,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @see #getEntryTeam(String)
- * @deprecated Scoreboards can contain entries that aren't players
*/
-- @Deprecated
-+ // @Deprecated // Paper
+- @Deprecated(since = "1.8.6")
++ // @Deprecated(since = "1.8.6") // Paper
@Nullable
Team getPlayerTeam(@NotNull OfflinePlayer player);
@@ -119,8 +119,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @see #addEntry(String)
- * @deprecated Teams can contain entries that aren't players
*/
-- @Deprecated
-+ // @Deprecated // Paper
+- @Deprecated(since = "1.8.6")
++ // @Deprecated(since = "1.8.6") // Paper
void addPlayer(@NotNull OfflinePlayer player);
/**
@@ -130,8 +130,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @see #removeEntry(String)
- * @deprecated Teams can contain entries that aren't players
*/
-- @Deprecated
-+ // @Deprecated // Paper
+- @Deprecated(since = "1.8.6")
++ // @Deprecated(since = "1.8.6") // Paper
boolean removePlayer(@NotNull OfflinePlayer player);
/**
@@ -141,8 +141,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @see #hasEntry(String)
- * @deprecated Teams can contain entries that aren't players
*/
-- @Deprecated
-+ // @Deprecated // Paper
+- @Deprecated(since = "1.8.6")
++ // @Deprecated(since = "1.8.6") // Paper
boolean hasPlayer(@NotNull OfflinePlayer player);
/**
* Checks to see if the specified entry is a member of this team.
diff --git a/patches/api/Missing-Entity-API.patch b/patches/api/Missing-Entity-API.patch
index 60178abc3f..43997f3d29 100644
--- a/patches/api/Missing-Entity-API.patch
+++ b/patches/api/Missing-Entity-API.patch
@@ -426,7 +426,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+++ b/src/main/java/org/bukkit/entity/Endermite.java
@@ -0,0 +0,0 @@ public interface Endermite extends Monster {
*/
- @Deprecated
+ @Deprecated(since = "1.17")
void setPlayerSpawned(boolean playerSpawned);
+ // Paper start
+ /**
diff --git a/patches/api/More-Enchantment-API.patch b/patches/api/More-Enchantment-API.patch
index 10f513d329..1ab0fbf2b8 100644
--- a/patches/api/More-Enchantment-API.patch
+++ b/patches/api/More-Enchantment-API.patch
@@ -52,7 +52,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- * only for {@link Enchantment#BINDING_CURSE} and
- * {@link Enchantment#VANISHING_CURSE}.
*/
-- @Deprecated
+- @Deprecated(since = "1.13")
public abstract boolean isCursed();
/**
diff --git a/patches/api/More-Projectile-API.patch b/patches/api/More-Projectile-API.patch
index 0b1de7e3e4..ede62bbfe7 100644
--- a/patches/api/More-Projectile-API.patch
+++ b/patches/api/More-Projectile-API.patch
@@ -261,7 +261,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
public ProjectileSource getShooter();
@@ -0,0 +0,0 @@ public interface Projectile extends Entity {
*/
- @Deprecated(forRemoval = true)
+ @Deprecated(since = "1.20.2", forRemoval = true)
public void setBounce(boolean doesBounce);
+ // Paper start
+
diff --git a/patches/api/Option-to-prevent-data-components-copy-in-smithing-r.patch b/patches/api/Option-to-prevent-data-components-copy-in-smithing-r.patch
index 909559a227..5048041d8c 100644
--- a/patches/api/Option-to-prevent-data-components-copy-in-smithing-r.patch
+++ b/patches/api/Option-to-prevent-data-components-copy-in-smithing-r.patch
@@ -18,7 +18,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* Create a smithing recipe to produce the specified result ItemStack.
@@ -0,0 +0,0 @@ public class SmithingRecipe implements Recipe, Keyed {
*/
- @Deprecated
+ @Deprecated(since = "1.20.1")
public SmithingRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result, @Nullable RecipeChoice base, @Nullable RecipeChoice addition) {
+ // Paper start
+ this(key, result, base, addition, true);
diff --git a/patches/api/Paper-Plugins.patch b/patches/api/Paper-Plugins.patch
index 2dc3870b7e..ed59d40676 100644
--- a/patches/api/Paper-Plugins.patch
+++ b/patches/api/Paper-Plugins.patch
@@ -1730,7 +1730,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
addPermission(perm, true);
}
- @Deprecated
+ @Deprecated(since = "1.12")
public void addPermission(@NotNull Permission perm, boolean dirty) {
+ if (true) {this.paperPluginManager.addPermission(perm); return;} // Paper - This just has a performance implication, use the better api to avoid this.
String name = perm.getName().toLowerCase(Locale.ROOT);
diff --git a/patches/api/Proxy-ItemStack-to-CraftItemStack.patch b/patches/api/Proxy-ItemStack-to-CraftItemStack.patch
index 5e367bf7f4..40f82411d1 100644
--- a/patches/api/Proxy-ItemStack-to-CraftItemStack.patch
+++ b/patches/api/Proxy-ItemStack-to-CraftItemStack.patch
@@ -185,7 +185,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
/**
@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
*/
- @Deprecated
+ @Deprecated(since = "1.13")
public void setDurability(final short durability) {
- ItemMeta meta = getItemMeta();
- if (meta != null) {
@@ -198,7 +198,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
/**
@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
*/
- @Deprecated
+ @Deprecated(since = "1.13")
public short getDurability() {
- ItemMeta meta = getItemMeta();
- return (meta == null) ? 0 : (short) ((Damageable) meta).getDamage();
diff --git a/patches/api/add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/api/add-RespawnFlags-to-PlayerRespawnEvent.patch
index 8cb281d229..e76ee46aed 100644
--- a/patches/api/add-RespawnFlags-to-PlayerRespawnEvent.patch
+++ b/patches/api/add-RespawnFlags-to-PlayerRespawnEvent.patch
@@ -14,7 +14,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
private final RespawnReason respawnReason;
+ private final java.util.Set respawnFlags; // Paper
- @Deprecated
+ @Deprecated(since = "1.16.1")
public PlayerRespawnEvent(@NotNull final Player respawnPlayer, @NotNull final Location respawnLocation, final boolean isBedSpawn) {
@@ -0,0 +0,0 @@ public class PlayerRespawnEvent extends PlayerEvent {
this(respawnPlayer, respawnLocation, isBedSpawn, false, RespawnReason.PLUGIN);
diff --git a/patches/api/fix-Instruments.patch b/patches/api/fix-Instruments.patch
index 88286c940b..336b245701 100644
--- a/patches/api/fix-Instruments.patch
+++ b/patches/api/fix-Instruments.patch
@@ -82,7 +82,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @return The type ID of this instrument.
- * @deprecated Magic value
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
public byte getType() {
return this.type;
@@ -93,7 +93,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
* @return The instrument
- * @deprecated Magic value
*/
-- @Deprecated
+- @Deprecated(since = "1.6.2")
+ @org.jetbrains.annotations.ApiStatus.Internal // Paper
@Nullable
public static Instrument getByType(final byte type) {
diff --git a/patches/server/Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/Add-missing-important-BlockStateListPopulator-method.patch
index d9561cfc1e..b05a27bfe7 100644
--- a/patches/server/Add-missing-important-BlockStateListPopulator-method.patch
+++ b/patches/server/Add-missing-important-BlockStateListPopulator-method.patch
@@ -19,8 +19,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
@Override
@@ -0,0 +0,0 @@ public class BlockStateListPopulator extends DummyGeneratorAccess {
- public long nextSubTickCount() {
- return this.world.nextSubTickCount();
+ public RandomSource getRandom() {
+ return this.world.getRandom();
}
+
+ // Paper start
diff --git a/patches/server/Add-more-advancement-API.patch b/patches/server/Add-more-advancement-API.patch
index 899a0a9733..301957bfbb 100644
--- a/patches/server/Add-more-advancement-API.patch
+++ b/patches/server/Add-more-advancement-API.patch
@@ -100,7 +100,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java
+++ b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java
@@ -0,0 +0,0 @@ public class CraftAdvancement implements org.bukkit.advancement.Advancement {
- return Collections.unmodifiableCollection(this.handle.value().criteria().keySet());
+ return new CraftAdvancementRequirements(this.handle.value().requirements());
}
+ // Paper start - Add more advancement API
diff --git a/patches/server/CB-fixes.patch b/patches/server/CB-fixes.patch
index b91036b94a..f67517e48d 100644
--- a/patches/server/CB-fixes.patch
+++ b/patches/server/CB-fixes.patch
@@ -53,6 +53,19 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
ChunkGenerator chunkGenerator,
RandomState noiseConfig,
LevelHeightAccessor world,
+diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
++++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
+@@ -0,0 +0,0 @@ public class CraftChunk implements Chunk {
+ }
+ }
+
+- return new CraftChunkSnapshot(x, z, world.getMinHeight(), world.getMaxHeight(), world.getSeaLevel(), world.getName(), world.getFullTime(), blockIDs, skyLight, emitLight, empty, new Heightmap(actual, Heightmap.Types.MOTION_BLOCKING), iregistry, biome);
++ return new CraftChunkSnapshot(x, z, world.getMinHeight(), world.getMaxY(), world.getSeaLevel(), world.getName(), world.getFullTime(), blockIDs, skyLight, emitLight, empty, new Heightmap(actual, Heightmap.Types.MOTION_BLOCKING), iregistry, biome);
+ }
+
+ static void validateChunkCoordinates(int minY, int maxY, int x, int y, int z) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java b/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java
@@ -69,6 +82,21 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ }
+ // Paper end
}
+diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
++++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+@@ -0,0 +0,0 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+ return this.world.getMaxY() + 1;
+ }
+
++ public int getMaxY() {
++ return this.world.getMaxY();
++ }
++
+ @Override
+ public int getLogicalHeight() {
+ return this.world.dimensionType().logicalHeight();
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
diff --git a/patches/server/Call-ProjectileHitEvent-for-entity-hits.patch b/patches/server/Call-ProjectileHitEvent-for-entity-hits.patch
deleted file mode 100644
index 1bd67b5251..0000000000
--- a/patches/server/Call-ProjectileHitEvent-for-entity-hits.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Bjarne Koll
-Date: Sat, 23 Nov 2024 22:48:26 +0100
-Subject: [PATCH] Call ProjectileHitEvent for entity hits
-
-A simple bugfix replacing a new vanilla call to
-Projectile#hitTargetOrDeflectSelf with the bukkit replacement to call
-the event.
-
-diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
-index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
---- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
-+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
-@@ -0,0 +0,0 @@ public abstract class AbstractArrow extends Projectile {
- continue;
- }
-
-- ProjectileDeflection projectiledeflection = this.hitTargetOrDeflectSelf(movingobjectpositionentity);
-+ ProjectileDeflection projectiledeflection = this.preHitTargetOrDeflectSelf(movingobjectpositionentity); // Paper - also call projectile hit event
-
- this.hasImpulse = true;
- if (this.getPierceLevel() > 0 && projectiledeflection == ProjectileDeflection.NONE) {
diff --git a/patches/server/Fix-issues-with-mob-conversion.patch b/patches/server/Fix-issues-with-mob-conversion.patch
index eec0a510b2..51287748f8 100644
--- a/patches/server/Fix-issues-with-mob-conversion.patch
+++ b/patches/server/Fix-issues-with-mob-conversion.patch
@@ -38,10 +38,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
}
private void finishConversion() {
-- this.convertTo(
-+ net.minecraft.world.entity.Entity converted = this.convertTo( // Paper - Fix issues with mob conversion; reset to prevent event spam
- EntityType.ZOGLIN, ConversionParams.single(this, true, false), zoglin -> zoglin.addEffect(new MobEffectInstance(MobEffects.CONFUSION, 200, 0))
- );
+- this.convertTo(EntityType.ZOGLIN, ConversionParams.single(this, true, false), (entityzoglin) -> {
++ net.minecraft.world.entity.Entity converted = this.convertTo(EntityType.ZOGLIN, ConversionParams.single(this, true, false), (entityzoglin) -> {
+ entityzoglin.addEffect(new MobEffectInstance(MobEffects.CONFUSION, 200, 0));
+ }, org.bukkit.event.entity.EntityTransformEvent.TransformReason.PIGLIN_ZOMBIFIED, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.PIGLIN_ZOMBIFIED); // CraftBukkit - add spawn and transform reasons
+
+ // Paper start - Fix issues with mob conversion; reset to prevent event spam
+ if (converted == null) {
diff --git a/patches/server/Improved-Async-Task-Scheduler.patch b/patches/server/Improved-Async-Task-Scheduler.patch
index 7d1a7109ff..52795534c6 100644
--- a/patches/server/Improved-Async-Task-Scheduler.patch
+++ b/patches/server/Improved-Async-Task-Scheduler.patch
@@ -330,10 +330,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- private void addTask(final CraftTask task) {
+ protected void addTask(final CraftTask task) {
- final AtomicReference tail = this.tail;
- CraftTask tailTask = tail.get();
- while (!tail.compareAndSet(tailTask, task)) {
-@@ -0,0 +0,0 @@ public class CraftScheduler implements BukkitScheduler {
+ final CraftTask tailTask = this.tail.getAndSet(task);
tailTask.setNext(task);
}
diff --git a/work/Bukkit b/work/Bukkit
index 36b11391a2..ed0ec4893b 160000
--- a/work/Bukkit
+++ b/work/Bukkit
@@ -1 +1 @@
-Subproject commit 36b11391a2c0213669acfa9b863a3a3704374fbc
+Subproject commit ed0ec4893b5f755e2493e652091bba42dc7ad742
diff --git a/work/CraftBukkit b/work/CraftBukkit
index a71a7e1f57..40dd796db6 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit a71a7e1f57653334d66e389d162a437b1491bfc8
+Subproject commit 40dd796db69931bd3b5220f2ee4d734a8bd44c9d
diff --git a/work/Spigot b/work/Spigot
index e65d67a7a9..60c9969b3e 160000
--- a/work/Spigot
+++ b/work/Spigot
@@ -1 +1 @@
-Subproject commit e65d67a7a97d6502296109d5c295255ecbc04575
+Subproject commit 60c9969b3e34b1a7c8f06e358241399b5f47bfb1