aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNassim Jahnke <[email protected]>2024-06-29 10:58:37 +0200
committerGitHub <[email protected]>2024-06-29 10:58:37 +0200
commitaa8d38d3dbab3cb0021d0f24f726818caf77bf15 (patch)
tree9d2e7eeef5f00a62f55a6ee0f242abb810ee083b
parent1f5db504244fe6563ab32cee646dad0c53360e01 (diff)
downloadPaper-aa8d38d3dbab3cb0021d0f24f726818caf77bf15.tar.gz
Paper-aa8d38d3dbab3cb0021d0f24f726818caf77bf15.zip
Add forRemoval to material data deprecations (#10996)
2018 is calling
-rw-r--r--patches/api/0166-Fix-Spigot-annotation-mistakes.patch879
-rw-r--r--patches/api/0182-Add-Raw-Byte-ItemStack-Serialization.patch2
-rw-r--r--patches/api/0202-Add-methods-to-get-translation-keys.patch2
-rw-r--r--patches/api/0225-Add-API-to-get-Material-from-Boats-and-Minecarts.patch2
-rw-r--r--patches/api/0254-Improve-Item-Rarity-API.patch2
-rw-r--r--patches/api/0272-ItemStack-repair-check-API.patch2
-rw-r--r--patches/api/0275-ItemStack-editMeta.patch2
-rw-r--r--patches/api/0287-Missing-Entity-API.patch2
-rw-r--r--patches/api/0309-Add-hasCollision-methods-to-various-places.patch2
-rw-r--r--patches/api/0340-Add-enchantWithLevels-API.patch2
-rw-r--r--patches/api/0363-Add-getDrops-to-BlockState.patch2
-rw-r--r--patches/api/0376-ItemStack-damage-API.patch2
-rw-r--r--patches/api/0421-Allow-proper-checking-of-empty-item-stacks.patch2
-rw-r--r--patches/api/0429-Remove-unnecessary-durability-check-in-ItemStack-isS.patch2
-rw-r--r--patches/api/0445-ItemStack-Tooltip-API.patch2
-rw-r--r--patches/api/0455-Deprecate-ItemStack-setType.patch2
-rw-r--r--patches/api/0461-Fix-ItemFlags.patch2
-rw-r--r--patches/api/0478-Proxy-ItemStack-to-CraftItemStack.patch2
-rw-r--r--patches/api/0479-Make-a-PDC-view-accessible-directly-from-ItemStack.patch2
19 files changed, 871 insertions, 44 deletions
diff --git a/patches/api/0166-Fix-Spigot-annotation-mistakes.patch b/patches/api/0166-Fix-Spigot-annotation-mistakes.patch
index 9ff09f5aa8..c781240a60 100644
--- a/patches/api/0166-Fix-Spigot-annotation-mistakes.patch
+++ b/patches/api/0166-Fix-Spigot-annotation-mistakes.patch
@@ -91,26 +91,26 @@ index fb143a39f81ca7f14688ee3515a06256feac0f80..7b29a19610dbdc99e3662f70a8a291e6
return server.getScoreboardManager();
}
diff --git a/src/main/java/org/bukkit/CoalType.java b/src/main/java/org/bukkit/CoalType.java
-index c07499dbdd49d70717dbd674d97b6dbcfd7e9d5b..75e563d2a6d417b95c7f06a0636811aec8259672 100644
+index c07499dbdd49d70717dbd674d97b6dbcfd7e9d5b..039b71c6471d00123226edda0fe839fd946029c4 100644
--- a/src/main/java/org/bukkit/CoalType.java
+++ b/src/main/java/org/bukkit/CoalType.java
@@ -7,6 +7,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents the two types of coal
*/
-+@Deprecated // Paper
++@Deprecated(forRemoval = true, since = "1.13")
public enum CoalType {
COAL(0x0),
CHARCOAL(0x1);
diff --git a/src/main/java/org/bukkit/CropState.java b/src/main/java/org/bukkit/CropState.java
-index fb4832fb796a38c0f5f51cf80a67259924f2c607..519deeeb86672fd75ae62026f956727d01f78fef 100644
+index fb4832fb796a38c0f5f51cf80a67259924f2c607..a4f88f4420b855a08f98b77fa1ff35dcec9da8a9 100644
--- a/src/main/java/org/bukkit/CropState.java
+++ b/src/main/java/org/bukkit/CropState.java
@@ -7,6 +7,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents the different growth states of crops
*/
-+@Deprecated // Paper
++@Deprecated(forRemoval = true, since = "1.13")
public enum CropState {
/**
@@ -255,7 +255,7 @@ index 938c3217f92e6d3ef9a637269c469f8359af6347..81e45984a88fc84acd0f76d825abf4dd
public static GameMode getByValue(final int value) {
return BY_ID.get(value);
diff --git a/src/main/java/org/bukkit/GrassSpecies.java b/src/main/java/org/bukkit/GrassSpecies.java
-index f9c9ae463aacd593e3aa9caf037ea1e23d56c780..f8ae143acbf586d5279b44f7311ca97f3ae4ead2 100644
+index f9c9ae463aacd593e3aa9caf037ea1e23d56c780..38ccfd0a1b38e7a87185e668d3c020816c68a66b 100644
--- a/src/main/java/org/bukkit/GrassSpecies.java
+++ b/src/main/java/org/bukkit/GrassSpecies.java
@@ -6,7 +6,9 @@ import org.jetbrains.annotations.Nullable;
@@ -264,7 +264,7 @@ index f9c9ae463aacd593e3aa9caf037ea1e23d56c780..f8ae143acbf586d5279b44f7311ca97f
* Represents the different types of grass.
+ * @deprecated use {@link org.bukkit.block.data.BlockData}
*/
-+@Deprecated // Paper
++@Deprecated(forRemoval = true, since = "1.13")
public enum GrassSpecies {
/**
@@ -373,7 +373,7 @@ index 9b61129c3ef83d0bfceba54aba2effa12bc90678..cbdaa121dbc1876d0cd55f4b7b57f283
Preconditions.checkArgument(namespace != null && isValidNamespace(namespace), "Invalid namespace. Must be [a-z0-9._-]: %s", namespace);
Preconditions.checkArgument(key != null && isValidKey(key), "Invalid key. Must be [a-z0-9/._-]: %s", key);
diff --git a/src/main/java/org/bukkit/NetherWartsState.java b/src/main/java/org/bukkit/NetherWartsState.java
-index f43209cf7b752c26718c303ca8c3e1c7d9912ad3..f0094e6fb05e526736629ad3181c8d2c16ba6ca4 100644
+index f43209cf7b752c26718c303ca8c3e1c7d9912ad3..d6c09d88189b3e9ecc629d8cf18a2b81e6801871 100644
--- a/src/main/java/org/bukkit/NetherWartsState.java
+++ b/src/main/java/org/bukkit/NetherWartsState.java
@@ -1,5 +1,11 @@
@@ -383,7 +383,7 @@ index f43209cf7b752c26718c303ca8c3e1c7d9912ad3..f0094e6fb05e526736629ad3181c8d2c
+/**
+ * @deprecated use {@link org.bukkit.block.data.BlockData} and {@link org.bukkit.block.data.Ageable}
+ */
-+@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+// Paper end
public enum NetherWartsState {
@@ -484,7 +484,7 @@ index f1a7f3b3e20963fa9d97bcc0686a35863de2b60f..3effaea369d9c7a6a22979fbfc270f55
Preconditions.checkArgument(input != null, "input must not be null");
diff --git a/src/main/java/org/bukkit/SandstoneType.java b/src/main/java/org/bukkit/SandstoneType.java
-index 6277451c3c6c551078c237cd767b6d70c4f585ea..10f5cfb1885833a1d2c1027c03974da45ab28e2f 100644
+index 6277451c3c6c551078c237cd767b6d70c4f585ea..7d33b3e2f81c14d3aeb800b39e7823831ecc39e4 100644
--- a/src/main/java/org/bukkit/SandstoneType.java
+++ b/src/main/java/org/bukkit/SandstoneType.java
@@ -6,7 +6,9 @@ import org.jetbrains.annotations.Nullable;
@@ -493,7 +493,7 @@ index 6277451c3c6c551078c237cd767b6d70c4f585ea..10f5cfb1885833a1d2c1027c03974da4
* Represents the three different types of Sandstone
+ * @deprecated use {@link org.bukkit.block.data.BlockData}
*/
-+@Deprecated // Paper
++@Deprecated(forRemoval = true, since = "1.13")
public enum SandstoneType {
CRACKED(0x0),
GLYPHED(0x1),
@@ -548,6 +548,32 @@ index c1a1baa2c79ad48b210e770f198ca9a2d7815df4..75b3295a5544626d28c57b317d95db90
ScoreboardManager getScoreboardManager();
/**
+diff --git a/src/main/java/org/bukkit/SkullType.java b/src/main/java/org/bukkit/SkullType.java
+index 49f2f1128892fa991ed18785cd954b07ddd8e51a..08a946aaf29726d19be970c19d0bbbc59dd21efe 100644
+--- a/src/main/java/org/bukkit/SkullType.java
++++ b/src/main/java/org/bukkit/SkullType.java
+@@ -4,7 +4,7 @@ package org.bukkit;
+ * Represents the different types of skulls.
+ * @deprecated check {@link Material} instead
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public enum SkullType {
+ SKELETON,
+ WITHER,
+diff --git a/src/main/java/org/bukkit/TreeSpecies.java b/src/main/java/org/bukkit/TreeSpecies.java
+index 01285301621c88c9e383e18c46eabd302341a338..57e010a57f804bd9f2a78710d6f52928ad476197 100644
+--- a/src/main/java/org/bukkit/TreeSpecies.java
++++ b/src/main/java/org/bukkit/TreeSpecies.java
+@@ -9,7 +9,7 @@ import org.jetbrains.annotations.Nullable;
+ *
+ * @deprecated Deprecated, see usage methods for replacement(s)
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.19")
+ public enum TreeSpecies {
+
+ /**
diff --git a/src/main/java/org/bukkit/UndefinedNullability.java b/src/main/java/org/bukkit/UndefinedNullability.java
index 4d4265c237179470e1fd017721a8dd595f114013..3babc9df26276300392d3f92ee6e317c33643b0b 100644
--- a/src/main/java/org/bukkit/UndefinedNullability.java
@@ -664,7 +690,7 @@ index bb3cf2c5e2acbcd7cf53ad8551a5b11fa6104ada..e4393f2bd71308a58305cb870271d6a6
/**
* Returns if the given item is a preferred choice to break this Block.
diff --git a/src/main/java/org/bukkit/block/BlockState.java b/src/main/java/org/bukkit/block/BlockState.java
-index 3e07fc1bc0e08d0cfd998711c7fd547b2b7b6b73..fd4a9bdcfb6775dfbdb7492e6c9eb90722d2ecdc 100644
+index 3e07fc1bc0e08d0cfd998711c7fd547b2b7b6b73..f4a739d8022d19a7ae0ee9bf93eb5c4846b4bd40 100644
--- a/src/main/java/org/bukkit/block/BlockState.java
+++ b/src/main/java/org/bukkit/block/BlockState.java
@@ -36,8 +36,10 @@ public interface BlockState extends Metadatable {
@@ -674,7 +700,7 @@ index 3e07fc1bc0e08d0cfd998711c7fd547b2b7b6b73..fd4a9bdcfb6775dfbdb7492e6c9eb907
+ * @deprecated use {@link #getBlockData()}
*/
@NotNull
-+ @Deprecated // Paper
++ @Deprecated(forRemoval = true, since = "1.13")
MaterialData getData();
/**
@@ -684,7 +710,7 @@ index 3e07fc1bc0e08d0cfd998711c7fd547b2b7b6b73..fd4a9bdcfb6775dfbdb7492e6c9eb907
* @param data New block specific metadata
+ * @deprecated use {@link #setBlockData(BlockData)}
*/
-+ @Deprecated // Paper
++ @Deprecated(forRemoval = true, since = "1.13")
void setData(@NotNull MaterialData data);
/**
@@ -729,6 +755,18 @@ index b90f5dc345ad2cdd3ae353dc57f42a14c231d18a..a7b915ded9154d53ac8ca599119c1699
@Nullable
public static PistonMoveReaction getById(int id) {
return byId.get(id);
+diff --git a/src/main/java/org/bukkit/block/SuspiciousSand.java b/src/main/java/org/bukkit/block/SuspiciousSand.java
+index a7c4e4baf14dd64e454028002c1c5d4f83ec1659..53c61cfa4c2cdc3adfe1c5b43fb15eebeb4b74d1 100644
+--- a/src/main/java/org/bukkit/block/SuspiciousSand.java
++++ b/src/main/java/org/bukkit/block/SuspiciousSand.java
+@@ -5,6 +5,6 @@ package org.bukkit.block;
+ *
+ * @see BrushableBlock
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.20")
+ 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
index c7a901707048e9dc82b8f17f3285727460173c72..64675a3641acb50676ca0122f8473ce94de8fba7 100644
--- a/src/main/java/org/bukkit/enchantments/Enchantment.java
@@ -756,7 +794,7 @@ index 493f81ba879d1eb29a32722da27e4ff7ce4c68a8..8bf9bf7940d2911486e9d3a4f688cfae
public ItemStack getWeapon();
diff --git a/src/main/java/org/bukkit/entity/Enderman.java b/src/main/java/org/bukkit/entity/Enderman.java
-index 3afe2787de576f7190d87c796bea0ab34dc30248..58191017244f3949f6174fb108e3a245738a53c4 100644
+index 3afe2787de576f7190d87c796bea0ab34dc30248..875817b807c9f515eb07b03cc85d368955388dc3 100644
--- a/src/main/java/org/bukkit/entity/Enderman.java
+++ b/src/main/java/org/bukkit/entity/Enderman.java
@@ -25,15 +25,19 @@ public interface Enderman extends Monster {
@@ -766,7 +804,7 @@ index 3afe2787de576f7190d87c796bea0ab34dc30248..58191017244f3949f6174fb108e3a245
+ * @deprecated use {@link #getCarriedBlock()}
*/
@NotNull
-+ @Deprecated // Paper
++ @Deprecated(forRemoval = true, since = "1.13")
public MaterialData getCarriedMaterial();
/**
@@ -775,7 +813,7 @@ index 3afe2787de576f7190d87c796bea0ab34dc30248..58191017244f3949f6174fb108e3a245
* @param material data to set the carried block to
+ * @deprecated use {@link #setCarriedBlock(BlockData)}
*/
-+ @Deprecated // Paper
++ @Deprecated(forRemoval = true, since = "1.13")
public void setCarriedMaterial(@NotNull MaterialData material);
/**
@@ -875,7 +913,7 @@ index b5ea7b60b47f056553a1cec766c57e0f75735633..ec35111df4b38fd55cc34f4baedebcf3
/**
diff --git a/src/main/java/org/bukkit/entity/Minecart.java b/src/main/java/org/bukkit/entity/Minecart.java
-index 95c79c5fa0c4e30201f887da6467ce5f81c8a255..7f9c4d4b430a3f0276461346ff2621bacf864075 100644
+index 95c79c5fa0c4e30201f887da6467ce5f81c8a255..a1e4328994a119de2966dce5470581b5a520d55e 100644
--- a/src/main/java/org/bukkit/entity/Minecart.java
+++ b/src/main/java/org/bukkit/entity/Minecart.java
@@ -101,7 +101,9 @@ public interface Minecart extends Vehicle {
@@ -884,7 +922,7 @@ index 95c79c5fa0c4e30201f887da6467ce5f81c8a255..7f9c4d4b430a3f0276461346ff2621ba
* @param material the material to set as display block.
+ * @deprecated use {@link #setDisplayBlockData(BlockData)}
*/
-+ @Deprecated // Paper
++ @Deprecated(forRemoval = true, since = "1.13")
public void setDisplayBlock(@Nullable MaterialData material);
/**
@@ -895,7 +933,7 @@ index 95c79c5fa0c4e30201f887da6467ce5f81c8a255..7f9c4d4b430a3f0276461346ff2621ba
+ * @deprecated use {@link #getDisplayBlockData()}
*/
@NotNull
-+ @Deprecated // Paper
++ @Deprecated(forRemoval = true, since = "1.13")
public MaterialData getDisplayBlock();
/**
@@ -1502,7 +1540,7 @@ index 3d08beee52f2247db6f6e679206ed6a965fbf9a8..1b4f9b93860e58762ac28715adad5a67
/**
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index d125d29759167996a90b7b69d92d944e80af22ab..d5dd79c98f4d37b09d232214f06ed7dca3a7e6dd 100644
+index d125d29759167996a90b7b69d92d944e80af22ab..e9c29fc1db686b80bc2477d78ec2b361b8600b9e 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -10,6 +10,7 @@ import org.bukkit.Material;
@@ -1513,6 +1551,15 @@ index d125d29759167996a90b7b69d92d944e80af22ab..d5dd79c98f4d37b09d232214f06ed7dc
import org.bukkit.Utility;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.enchantments.Enchantment;
+@@ -82,7 +83,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+ * @param data the data value or null
+ * @deprecated this method uses an ambiguous data byte object
+ */
+- @Deprecated
++ @Deprecated(forRemoval = true, since = "1.13")
+ public ItemStack(@NotNull Material type, final int amount, final short damage, @Nullable final Byte data) {
+ Preconditions.checkArgument(type != null, "Material cannot be null");
+ if (type.isLegacy()) {
@@ -179,8 +180,10 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* Gets the MaterialData for this stack of items
*
@@ -1520,7 +1567,7 @@ index d125d29759167996a90b7b69d92d944e80af22ab..d5dd79c98f4d37b09d232214f06ed7dc
+ * @deprecated cast to {@link org.bukkit.inventory.meta.BlockDataMeta} and use {@link org.bukkit.inventory.meta.BlockDataMeta#getBlockData(Material)}
*/
@Nullable
-+ @Deprecated // Paper
++ @Deprecated(forRemoval = true, since = "1.13")
public MaterialData getData() {
Material mat = Bukkit.getUnsafe().toLegacy(getType());
if (data == null && mat != null && mat.getData() != null) {
@@ -1530,7 +1577,7 @@ index d125d29759167996a90b7b69d92d944e80af22ab..d5dd79c98f4d37b09d232214f06ed7dc
* @param data New MaterialData for this item
+ * @deprecated cast to {@link org.bukkit.inventory.meta.BlockDataMeta} and use {@link org.bukkit.inventory.meta.BlockDataMeta#setBlockData(org.bukkit.block.data.BlockData)}
*/
-+ @Deprecated // Paper
++ @Deprecated(forRemoval = true, since = "1.13")
public void setData(@Nullable MaterialData data) {
if (data == null) {
this.data = data;
@@ -1919,29 +1966,809 @@ index 9b8b68b66dc15b06800251702c2722623c8462a0..e998c5d871e02564c24260a8205dcfaf
public byte getValue() {
return value;
}
+diff --git a/src/main/java/org/bukkit/material/Banner.java b/src/main/java/org/bukkit/material/Banner.java
+index 08ce9d8bc6dcd9beec5f75c1b7cd5d98e8c9e168..e1a87c09b90618aacaf728ebdc5a13e255200fef 100644
+--- a/src/main/java/org/bukkit/material/Banner.java
++++ b/src/main/java/org/bukkit/material/Banner.java
+@@ -7,7 +7,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Banner extends MaterialData implements Attachable {
+
+ public Banner() {
+diff --git a/src/main/java/org/bukkit/material/Bed.java b/src/main/java/org/bukkit/material/Bed.java
+index c5256129e00a63d2699fbae213470ed7197c4571..54c89d319940a39b3439e3af09d87c21112a8486 100644
+--- a/src/main/java/org/bukkit/material/Bed.java
++++ b/src/main/java/org/bukkit/material/Bed.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Bed extends MaterialData implements Directional {
+
+ /**
+diff --git a/src/main/java/org/bukkit/material/Button.java b/src/main/java/org/bukkit/material/Button.java
+index da7d016cf118932c9cc9ddcfb4a2abd4b4356fb5..3c3d867911b6424d03094d3cc1056dd291825dce 100644
+--- a/src/main/java/org/bukkit/material/Button.java
++++ b/src/main/java/org/bukkit/material/Button.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Button extends SimpleAttachableMaterialData implements Redstone {
+ public Button() {
+ super(Material.LEGACY_STONE_BUTTON);
+diff --git a/src/main/java/org/bukkit/material/Cake.java b/src/main/java/org/bukkit/material/Cake.java
+index d39dd491626cd84f83169cf5c2135d05516d77f2..f14ebe07bf898e54a7f0cbe740c02cf5e1851d41 100644
+--- a/src/main/java/org/bukkit/material/Cake.java
++++ b/src/main/java/org/bukkit/material/Cake.java
+@@ -6,7 +6,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Cake extends MaterialData {
+ public Cake() {
+ super(Material.LEGACY_CAKE_BLOCK);
+diff --git a/src/main/java/org/bukkit/material/Cauldron.java b/src/main/java/org/bukkit/material/Cauldron.java
+index b331b4c27e58d766dd1759062c9c198c348a58bb..d43caa8d64396a16d6e00cbf0d05cb291fa20c2e 100644
+--- a/src/main/java/org/bukkit/material/Cauldron.java
++++ b/src/main/java/org/bukkit/material/Cauldron.java
+@@ -8,7 +8,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Cauldron extends MaterialData {
+ private static final int CAULDRON_FULL = 3;
+ private static final int CAULDRON_EMPTY = 0;
+diff --git a/src/main/java/org/bukkit/material/Chest.java b/src/main/java/org/bukkit/material/Chest.java
+index 4d120d3c33566606ff7d8b03c32341bf2ac147c4..89bb1a34d620d6c39901a315629bc8f43f3d3181 100644
+--- a/src/main/java/org/bukkit/material/Chest.java
++++ b/src/main/java/org/bukkit/material/Chest.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Chest extends DirectionalContainer {
+
+ public Chest() {
+diff --git a/src/main/java/org/bukkit/material/Coal.java b/src/main/java/org/bukkit/material/Coal.java
+index fb842cfa7bf29ca6c670fc98e7deecaab31c71f2..f6c61c9005046386c3e8f36b0144f1c9c83f7e9c 100644
+--- a/src/main/java/org/bukkit/material/Coal.java
++++ b/src/main/java/org/bukkit/material/Coal.java
+@@ -9,7 +9,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Coal extends MaterialData {
+ public Coal() {
+ super(Material.LEGACY_COAL);
+diff --git a/src/main/java/org/bukkit/material/CocoaPlant.java b/src/main/java/org/bukkit/material/CocoaPlant.java
+index b1b1c729d182b676d8ea69a8d3c942c6820863dd..f2baf516ea97de4ce55915cee0507f2c07e2f9d5 100644
+--- a/src/main/java/org/bukkit/material/CocoaPlant.java
++++ b/src/main/java/org/bukkit/material/CocoaPlant.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class CocoaPlant extends MaterialData implements Directional, Attachable {
+
+ public enum CocoaPlantSize {
+diff --git a/src/main/java/org/bukkit/material/Command.java b/src/main/java/org/bukkit/material/Command.java
+index bcac1b08294569b218722278568b7106e1ce48f3..e8ac121789e8f3b3fe8982a660ed702f5e3a36c7 100644
+--- a/src/main/java/org/bukkit/material/Command.java
++++ b/src/main/java/org/bukkit/material/Command.java
+@@ -8,7 +8,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Command extends MaterialData implements Redstone {
+ public Command() {
+ super(Material.LEGACY_COMMAND);
+diff --git a/src/main/java/org/bukkit/material/Comparator.java b/src/main/java/org/bukkit/material/Comparator.java
+index 49d32d54438ad689bc7768342dc84d31e5f30285..7dcb7097119c0e170f29f04ff30d145966d78a1b 100644
+--- a/src/main/java/org/bukkit/material/Comparator.java
++++ b/src/main/java/org/bukkit/material/Comparator.java
+@@ -12,7 +12,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Comparator extends MaterialData implements Directional, Redstone {
+ protected static final BlockFace DEFAULT_DIRECTION = BlockFace.NORTH;
+ protected static final boolean DEFAULT_SUBTRACTION_MODE = false;
+diff --git a/src/main/java/org/bukkit/material/Crops.java b/src/main/java/org/bukkit/material/Crops.java
+index 4cf3de5fbba8617bc8edab9ca1c0ddee8033ed09..c73724d7b3ece146da6f7dd67167e7cd01fa3977 100644
+--- a/src/main/java/org/bukkit/material/Crops.java
++++ b/src/main/java/org/bukkit/material/Crops.java
+@@ -15,7 +15,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Crops extends MaterialData {
+ protected static final Material DEFAULT_TYPE = Material.LEGACY_CROPS;
+ protected static final CropState DEFAULT_STATE = CropState.SEEDED;
+diff --git a/src/main/java/org/bukkit/material/DetectorRail.java b/src/main/java/org/bukkit/material/DetectorRail.java
+index e8ab2904214f160c56aa01bc106d96f59042e706..6c7c021e654ab020d4a1638d2e9d8b438ea70fdd 100644
+--- a/src/main/java/org/bukkit/material/DetectorRail.java
++++ b/src/main/java/org/bukkit/material/DetectorRail.java
+@@ -8,7 +8,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class DetectorRail extends ExtendedRails implements PressureSensor {
+ public DetectorRail() {
+ super(Material.LEGACY_DETECTOR_RAIL);
+diff --git a/src/main/java/org/bukkit/material/Diode.java b/src/main/java/org/bukkit/material/Diode.java
+index 36a62258bcdea8136672ef6b2313a3877b3c724c..490f345cfd2e9e0da151bc81f52c50b41c5933ca 100644
+--- a/src/main/java/org/bukkit/material/Diode.java
++++ b/src/main/java/org/bukkit/material/Diode.java
+@@ -13,7 +13,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Diode extends MaterialData implements Directional, Redstone {
+
+ protected static final BlockFace DEFAULT_DIRECTION = BlockFace.NORTH;
+diff --git a/src/main/java/org/bukkit/material/DirectionalContainer.java b/src/main/java/org/bukkit/material/DirectionalContainer.java
+index 0190e5f3df5b86a0d8f912baf0570a4f54853829..6a8ec139c03a6dcdfcb8f55e5fac55f1c0c43156 100644
+--- a/src/main/java/org/bukkit/material/DirectionalContainer.java
++++ b/src/main/java/org/bukkit/material/DirectionalContainer.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class DirectionalContainer extends MaterialData implements Directional {
+
+ public DirectionalContainer(final Material type) {
+diff --git a/src/main/java/org/bukkit/material/Dispenser.java b/src/main/java/org/bukkit/material/Dispenser.java
+index b12993a93781bd8a3d218a0dd102e357996ee79e..49e56116f0b224033c25b797e9c28011bbd9cf8f 100644
+--- a/src/main/java/org/bukkit/material/Dispenser.java
++++ b/src/main/java/org/bukkit/material/Dispenser.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Dispenser extends FurnaceAndDispenser {
+
+ public Dispenser() {
+diff --git a/src/main/java/org/bukkit/material/Door.java b/src/main/java/org/bukkit/material/Door.java
+index d04ece5abab7a22abc4283d3043a52d4286d4103..48de4417c835db433e7a0884330b11a7afc39303 100644
+--- a/src/main/java/org/bukkit/material/Door.java
++++ b/src/main/java/org/bukkit/material/Door.java
+@@ -22,7 +22,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Door extends MaterialData implements Directional, Openable {
+
+ // This class breaks API contracts on Directional and Openable because
+diff --git a/src/main/java/org/bukkit/material/Dye.java b/src/main/java/org/bukkit/material/Dye.java
+index f34f23da74013006ec453b539bb10751dcb3ecee..b2cc9c9173742c9f88bb78b0fb2e2138db95e80c 100644
+--- a/src/main/java/org/bukkit/material/Dye.java
++++ b/src/main/java/org/bukkit/material/Dye.java
+@@ -9,7 +9,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Dye extends MaterialData implements Colorable {
+ public Dye() {
+ super(Material.LEGACY_INK_SACK);
+diff --git a/src/main/java/org/bukkit/material/EnderChest.java b/src/main/java/org/bukkit/material/EnderChest.java
+index ad232cacd94230fbcabb894cf35d540aff1d8662..f621a3ba0056db8a1b5b734252aad676214b4128 100644
+--- a/src/main/java/org/bukkit/material/EnderChest.java
++++ b/src/main/java/org/bukkit/material/EnderChest.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class EnderChest extends DirectionalContainer {
+
+ public EnderChest() {
+diff --git a/src/main/java/org/bukkit/material/ExtendedRails.java b/src/main/java/org/bukkit/material/ExtendedRails.java
+index 9b2577f7b5bab678d9e491323772ce616181ade3..fcea4a5169d1535b0696783fa73c05494702770d 100644
+--- a/src/main/java/org/bukkit/material/ExtendedRails.java
++++ b/src/main/java/org/bukkit/material/ExtendedRails.java
+@@ -10,7 +10,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class ExtendedRails extends Rails {
+
+ public ExtendedRails(final Material type) {
+diff --git a/src/main/java/org/bukkit/material/FlowerPot.java b/src/main/java/org/bukkit/material/FlowerPot.java
+index 6101e33288dded9ce871fe6c6f0b36c895d7214a..8fe99e15203cca6ed6b238ec3a7b57670940fbfb 100644
+--- a/src/main/java/org/bukkit/material/FlowerPot.java
++++ b/src/main/java/org/bukkit/material/FlowerPot.java
+@@ -10,7 +10,7 @@ import org.bukkit.TreeSpecies;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class FlowerPot extends MaterialData {
+
+ /**
+diff --git a/src/main/java/org/bukkit/material/Furnace.java b/src/main/java/org/bukkit/material/Furnace.java
+index 380f7f4b1f3adaa59c3202db02221abec2678fd7..338b37fbbbb165399cfd45ed109bd18cdf5a14b9 100644
+--- a/src/main/java/org/bukkit/material/Furnace.java
++++ b/src/main/java/org/bukkit/material/Furnace.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Furnace extends FurnaceAndDispenser {
+
+ public Furnace() {
+diff --git a/src/main/java/org/bukkit/material/FurnaceAndDispenser.java b/src/main/java/org/bukkit/material/FurnaceAndDispenser.java
+index effa0d8a95ccbd58aa2b85a27cfccb4787e71422..e627c8ff419086a3bae221c65eeb2ec9453ab075 100644
+--- a/src/main/java/org/bukkit/material/FurnaceAndDispenser.java
++++ b/src/main/java/org/bukkit/material/FurnaceAndDispenser.java
+@@ -8,7 +8,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class FurnaceAndDispenser extends DirectionalContainer {
+
+ public FurnaceAndDispenser(final Material type) {
+diff --git a/src/main/java/org/bukkit/material/Gate.java b/src/main/java/org/bukkit/material/Gate.java
+index fc67fc59a75410f7aa70609ebc9538bfdecdd403..52d468ae5b21ea00b20314731ca26542d64e455b 100644
+--- a/src/main/java/org/bukkit/material/Gate.java
++++ b/src/main/java/org/bukkit/material/Gate.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Gate extends MaterialData implements Directional, Openable {
+ private static final byte OPEN_BIT = 0x4;
+ private static final byte DIR_BIT = 0x3;
+diff --git a/src/main/java/org/bukkit/material/Hopper.java b/src/main/java/org/bukkit/material/Hopper.java
+index cfd32666c274383204dee9f9734ffb06184d2aaa..9983f53d05b5edc7a6bb54eaf65733639ccfa883 100644
+--- a/src/main/java/org/bukkit/material/Hopper.java
++++ b/src/main/java/org/bukkit/material/Hopper.java
+@@ -12,7 +12,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Hopper extends MaterialData implements Directional, Redstone {
+
+ protected static final BlockFace DEFAULT_DIRECTION = BlockFace.DOWN;
+diff --git a/src/main/java/org/bukkit/material/Ladder.java b/src/main/java/org/bukkit/material/Ladder.java
+index de263530823aa8c1ae8b4a9bd2497d7239156384..dcccad5a6a517fb5e2409363751e9f94fdc24241 100644
+--- a/src/main/java/org/bukkit/material/Ladder.java
++++ b/src/main/java/org/bukkit/material/Ladder.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Ladder extends SimpleAttachableMaterialData {
+ public Ladder() {
+ super(Material.LEGACY_LADDER);
+diff --git a/src/main/java/org/bukkit/material/Leaves.java b/src/main/java/org/bukkit/material/Leaves.java
+index 923a794ac1d2f43b680165dfddb4119faf5ecdd1..75c52aeb4fc01dfc83a3985249d4d577d3aec578 100644
+--- a/src/main/java/org/bukkit/material/Leaves.java
++++ b/src/main/java/org/bukkit/material/Leaves.java
+@@ -13,7 +13,7 @@ import org.bukkit.TreeSpecies;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Leaves extends Wood {
+ protected static final Material DEFAULT_TYPE = Material.LEGACY_LEAVES;
+ protected static final boolean DEFAULT_DECAYABLE = true;
+diff --git a/src/main/java/org/bukkit/material/Lever.java b/src/main/java/org/bukkit/material/Lever.java
+index 09f290f8898914b77f89c1546f285a6e6212499e..9ed20612235775c6e6f93b1cea5d2b7e73c2aa83 100644
+--- a/src/main/java/org/bukkit/material/Lever.java
++++ b/src/main/java/org/bukkit/material/Lever.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Lever extends SimpleAttachableMaterialData implements Redstone {
+ public Lever() {
+ super(Material.LEGACY_LEVER);
+diff --git a/src/main/java/org/bukkit/material/LongGrass.java b/src/main/java/org/bukkit/material/LongGrass.java
+index 497857ec37482ff477eab77d680b2a1bec52ea14..1c683ad7c4c72671e74c5d2d4b5f872adc9f9021 100644
+--- a/src/main/java/org/bukkit/material/LongGrass.java
++++ b/src/main/java/org/bukkit/material/LongGrass.java
+@@ -9,7 +9,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class LongGrass extends MaterialData {
+ public LongGrass() {
+ super(Material.LEGACY_LONG_GRASS);
+diff --git a/src/main/java/org/bukkit/material/MaterialData.java b/src/main/java/org/bukkit/material/MaterialData.java
+index ccaddb87922b3afe22a350a3e5e5e7af86b2f398..b2b04456590b86a755b392a1ab4d88fa49f2b2bb 100644
+--- a/src/main/java/org/bukkit/material/MaterialData.java
++++ b/src/main/java/org/bukkit/material/MaterialData.java
+@@ -9,7 +9,7 @@ import org.bukkit.inventory.ItemStack;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class MaterialData implements Cloneable {
+ private final Material type;
+ private byte data = 0;
+diff --git a/src/main/java/org/bukkit/material/MonsterEggs.java b/src/main/java/org/bukkit/material/MonsterEggs.java
+index 2fac218f1e237d4b867c1e6215fe40151dcceaf0..4f450808ead1464b8cb7192bfaa8005ccb5e3d0c 100644
+--- a/src/main/java/org/bukkit/material/MonsterEggs.java
++++ b/src/main/java/org/bukkit/material/MonsterEggs.java
+@@ -10,7 +10,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class MonsterEggs extends TexturedMaterial {
+
+ private static final List<Material> textures = new ArrayList<Material>();
+diff --git a/src/main/java/org/bukkit/material/Mushroom.java b/src/main/java/org/bukkit/material/Mushroom.java
+index 8927b307adcc3c98aa96caea38ea2eb9338e284e..e219d29fde408d464015f51dc64b93a929e48320 100644
+--- a/src/main/java/org/bukkit/material/Mushroom.java
++++ b/src/main/java/org/bukkit/material/Mushroom.java
+@@ -17,7 +17,7 @@ import org.bukkit.material.types.MushroomBlockTexture;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Mushroom extends MaterialData {
+ private static final byte NORTH_LIMIT = 4;
+ private static final byte SOUTH_LIMIT = 6;
+diff --git a/src/main/java/org/bukkit/material/NetherWarts.java b/src/main/java/org/bukkit/material/NetherWarts.java
+index 1fed8b937a68bfd12d04e04b962e1627c36a074f..3d437cc6b35dbef4819b05326b86dfc926655a2a 100644
+--- a/src/main/java/org/bukkit/material/NetherWarts.java
++++ b/src/main/java/org/bukkit/material/NetherWarts.java
+@@ -9,7 +9,7 @@ import org.bukkit.NetherWartsState;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class NetherWarts extends MaterialData {
+ public NetherWarts() {
+ super(Material.LEGACY_NETHER_WARTS);
+diff --git a/src/main/java/org/bukkit/material/Observer.java b/src/main/java/org/bukkit/material/Observer.java
+index 843790b331e1ed1db9e46716251851b0782497c1..079b0569332102e3f5c427a5c97c01cb1a609e6c 100644
+--- a/src/main/java/org/bukkit/material/Observer.java
++++ b/src/main/java/org/bukkit/material/Observer.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Observer extends MaterialData implements Directional, Redstone {
+
+ public Observer() {
diff --git a/src/main/java/org/bukkit/material/Openable.java b/src/main/java/org/bukkit/material/Openable.java
-index 0ae54f973d11df74abb3105cf9226afb130b4f33..597036bad6bc61b4aa63a61b45e886dd74a0b7f6 100644
+index 0ae54f973d11df74abb3105cf9226afb130b4f33..df2c2a774155d79ccf6fa7f366fe011ae4a43b90 100644
--- a/src/main/java/org/bukkit/material/Openable.java
+++ b/src/main/java/org/bukkit/material/Openable.java
@@ -1,5 +1,6 @@
package org.bukkit.material;
-+@Deprecated // Paper
++@Deprecated(forRemoval = true, since = "1.13")
public interface Openable {
/**
+diff --git a/src/main/java/org/bukkit/material/PistonBaseMaterial.java b/src/main/java/org/bukkit/material/PistonBaseMaterial.java
+index 8165e94339097ac5cf8e27ebc60256c8fefd7d63..e7d05b6873c11f531cbea167ee006942bbc2249b 100644
+--- a/src/main/java/org/bukkit/material/PistonBaseMaterial.java
++++ b/src/main/java/org/bukkit/material/PistonBaseMaterial.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class PistonBaseMaterial extends MaterialData implements Directional, Redstone {
+
+ public PistonBaseMaterial(final Material type) {
+diff --git a/src/main/java/org/bukkit/material/PistonExtensionMaterial.java b/src/main/java/org/bukkit/material/PistonExtensionMaterial.java
+index e7cfc7158b5d31376ddb8f5415e22e76c6d62f10..9ab0b57a492a6d503ad72d41f3a52b358d73361a 100644
+--- a/src/main/java/org/bukkit/material/PistonExtensionMaterial.java
++++ b/src/main/java/org/bukkit/material/PistonExtensionMaterial.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class PistonExtensionMaterial extends MaterialData implements Attachable {
+
+ public PistonExtensionMaterial(final Material type) {
+diff --git a/src/main/java/org/bukkit/material/PoweredRail.java b/src/main/java/org/bukkit/material/PoweredRail.java
+index feebc5c7359098d41abcccb1f1d8afe2a54a9130..27c8974c8fe68af51960dbad91dd424c9c3bfd17 100644
+--- a/src/main/java/org/bukkit/material/PoweredRail.java
++++ b/src/main/java/org/bukkit/material/PoweredRail.java
+@@ -8,7 +8,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class PoweredRail extends ExtendedRails implements Redstone {
+ public PoweredRail() {
+ super(Material.LEGACY_POWERED_RAIL);
+diff --git a/src/main/java/org/bukkit/material/PressurePlate.java b/src/main/java/org/bukkit/material/PressurePlate.java
+index ffababbc1b1ef1f19e941beb6412457b839e92eb..0d7f0a7d0001ebbf9920e8d2f82786c5dae6d2e8 100644
+--- a/src/main/java/org/bukkit/material/PressurePlate.java
++++ b/src/main/java/org/bukkit/material/PressurePlate.java
+@@ -8,7 +8,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class PressurePlate extends MaterialData implements PressureSensor {
+ public PressurePlate() {
+ super(Material.LEGACY_WOOD_PLATE);
+diff --git a/src/main/java/org/bukkit/material/Pumpkin.java b/src/main/java/org/bukkit/material/Pumpkin.java
+index 7c1b5eea0aba649bc9ed6b05836609e7cda314c0..c9241e64ade6e2aac739159c088aa3bee6bdd219 100644
+--- a/src/main/java/org/bukkit/material/Pumpkin.java
++++ b/src/main/java/org/bukkit/material/Pumpkin.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Pumpkin extends MaterialData implements Directional {
+
+ public Pumpkin() {
+diff --git a/src/main/java/org/bukkit/material/Rails.java b/src/main/java/org/bukkit/material/Rails.java
+index 0b041ee66c38cb884a0d69d1cc17df3fe25f7533..de12e71214ed22e40925a1b65260694c80321ff0 100644
+--- a/src/main/java/org/bukkit/material/Rails.java
++++ b/src/main/java/org/bukkit/material/Rails.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Rails extends MaterialData {
+
+ public Rails() {
diff --git a/src/main/java/org/bukkit/material/Redstone.java b/src/main/java/org/bukkit/material/Redstone.java
-index 3e46603f8cd38041394e0e1baf788d9009b3ffc7..b15c141f1db07296bb349f11c6f39b0fbe53e7b1 100644
+index 3e46603f8cd38041394e0e1baf788d9009b3ffc7..eb621f34d0461c9bfe1bd7535344b6778e7b39c5 100644
--- a/src/main/java/org/bukkit/material/Redstone.java
+++ b/src/main/java/org/bukkit/material/Redstone.java
@@ -3,6 +3,7 @@ package org.bukkit.material;
/**
* Indicated a Material that may carry or create a Redstone current
*/
-+@Deprecated // Paper
++@Deprecated(forRemoval = true, since = "1.13")
public interface Redstone {
/**
+diff --git a/src/main/java/org/bukkit/material/RedstoneTorch.java b/src/main/java/org/bukkit/material/RedstoneTorch.java
+index 40956914366195f8a658952923ea7e92235dc4a8..b46b2dde7cd74abd8e05a5222856efdf551ec2ad 100644
+--- a/src/main/java/org/bukkit/material/RedstoneTorch.java
++++ b/src/main/java/org/bukkit/material/RedstoneTorch.java
+@@ -8,7 +8,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class RedstoneTorch extends Torch implements Redstone {
+ public RedstoneTorch() {
+ super(Material.LEGACY_REDSTONE_TORCH_ON);
+diff --git a/src/main/java/org/bukkit/material/RedstoneWire.java b/src/main/java/org/bukkit/material/RedstoneWire.java
+index 8877ef48eb8de20b220d40c8068e5da2566d6109..b21be01e753fa16159161ebfea46586ca3895313 100644
+--- a/src/main/java/org/bukkit/material/RedstoneWire.java
++++ b/src/main/java/org/bukkit/material/RedstoneWire.java
+@@ -8,7 +8,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class RedstoneWire extends MaterialData implements Redstone {
+ public RedstoneWire() {
+ super(Material.LEGACY_REDSTONE_WIRE);
+diff --git a/src/main/java/org/bukkit/material/Sandstone.java b/src/main/java/org/bukkit/material/Sandstone.java
+index 8d8673edcd19d03077e7d53388c3ba2e9d80a618..8c52df074acdf51957502782615786d3bb2752ed 100644
+--- a/src/main/java/org/bukkit/material/Sandstone.java
++++ b/src/main/java/org/bukkit/material/Sandstone.java
+@@ -9,7 +9,7 @@ import org.bukkit.SandstoneType;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Sandstone extends MaterialData {
+ public Sandstone() {
+ super(Material.LEGACY_SANDSTONE);
+diff --git a/src/main/java/org/bukkit/material/Sapling.java b/src/main/java/org/bukkit/material/Sapling.java
+index c615a0022256887022ba7f347c19005478c35691..93d1bcac74ea8c4159462786865b6512713d5d91 100644
+--- a/src/main/java/org/bukkit/material/Sapling.java
++++ b/src/main/java/org/bukkit/material/Sapling.java
+@@ -11,7 +11,7 @@ import org.bukkit.TreeSpecies;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Sapling extends Wood {
+
+ /**
+diff --git a/src/main/java/org/bukkit/material/Sign.java b/src/main/java/org/bukkit/material/Sign.java
+index 3b32679b4a670aaaaeb0481265d189a3bb99bdca..d96002acf89e67c6eb29d1d572192d461bb072b3 100644
+--- a/src/main/java/org/bukkit/material/Sign.java
++++ b/src/main/java/org/bukkit/material/Sign.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Sign extends MaterialData implements Attachable {
+ public Sign() {
+ super(Material.LEGACY_SIGN_POST);
+diff --git a/src/main/java/org/bukkit/material/SimpleAttachableMaterialData.java b/src/main/java/org/bukkit/material/SimpleAttachableMaterialData.java
+index 6267d81ba2e9dde3f8a1063df66940086b4f5fce..2d1b640a8ff5d4492408f64e6b01af9ab0ce839e 100644
+--- a/src/main/java/org/bukkit/material/SimpleAttachableMaterialData.java
++++ b/src/main/java/org/bukkit/material/SimpleAttachableMaterialData.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public abstract class SimpleAttachableMaterialData extends MaterialData implements Attachable {
+
+ public SimpleAttachableMaterialData(Material type, BlockFace direction) {
+diff --git a/src/main/java/org/bukkit/material/Skull.java b/src/main/java/org/bukkit/material/Skull.java
+index a73ad62468a9589f78e270a82cd9ac8ff1b240b2..bebe06be7279ce1c14c8c81ee58202f2ca3c3e20 100644
+--- a/src/main/java/org/bukkit/material/Skull.java
++++ b/src/main/java/org/bukkit/material/Skull.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Skull extends MaterialData implements Directional {
+ public Skull() {
+ super(Material.LEGACY_SKULL);
+diff --git a/src/main/java/org/bukkit/material/SmoothBrick.java b/src/main/java/org/bukkit/material/SmoothBrick.java
+index e4812b7cef9847745d147aad87181c4eb903f5df..171771ab8d3a0b095ed74c4da608a61769f6a2f1 100644
+--- a/src/main/java/org/bukkit/material/SmoothBrick.java
++++ b/src/main/java/org/bukkit/material/SmoothBrick.java
+@@ -10,7 +10,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class SmoothBrick extends TexturedMaterial {
+
+ private static final List<Material> textures = new ArrayList<Material>();
+diff --git a/src/main/java/org/bukkit/material/SpawnEgg.java b/src/main/java/org/bukkit/material/SpawnEgg.java
+index a177021d259110ebf0c26e5a19cea5d9f6f3a8a8..f14a918b41d61869bc3b4a644011f4d2260c19ae 100644
+--- a/src/main/java/org/bukkit/material/SpawnEgg.java
++++ b/src/main/java/org/bukkit/material/SpawnEgg.java
+@@ -8,7 +8,7 @@ import org.bukkit.inventory.meta.SpawnEggMeta;
+ * Represents a spawn egg that can be used to spawn mobs
+ * @deprecated use {@link SpawnEggMeta}
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class SpawnEgg extends MaterialData {
+
+ public SpawnEgg() {
+diff --git a/src/main/java/org/bukkit/material/Stairs.java b/src/main/java/org/bukkit/material/Stairs.java
+index e5db60bd0d5c0d4990d418cf89415274c7698a9d..e7fe9cec387e2c86549cfad086839a241840582d 100644
+--- a/src/main/java/org/bukkit/material/Stairs.java
++++ b/src/main/java/org/bukkit/material/Stairs.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Stairs extends MaterialData implements Directional {
+
+ public Stairs(final Material type) {
+diff --git a/src/main/java/org/bukkit/material/Step.java b/src/main/java/org/bukkit/material/Step.java
+index ea94222120ddd4e692b67cf48b029af9ed0e5835..b7417693ff9efc5d6fc9d1899b0bb03c9664f903 100644
+--- a/src/main/java/org/bukkit/material/Step.java
++++ b/src/main/java/org/bukkit/material/Step.java
+@@ -10,7 +10,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Step extends TexturedMaterial {
+ private static final List<Material> textures = new ArrayList<Material>();
+ static {
+diff --git a/src/main/java/org/bukkit/material/TexturedMaterial.java b/src/main/java/org/bukkit/material/TexturedMaterial.java
+index 6e0a834794453eff7b3efc93e90c9bf49ef7c688..fcac4e6aafd906c14683f0ab0843a7b9ca4d62c7 100644
+--- a/src/main/java/org/bukkit/material/TexturedMaterial.java
++++ b/src/main/java/org/bukkit/material/TexturedMaterial.java
+@@ -9,7 +9,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public abstract class TexturedMaterial extends MaterialData {
+
+ public TexturedMaterial(Material m) {
+diff --git a/src/main/java/org/bukkit/material/Torch.java b/src/main/java/org/bukkit/material/Torch.java
+index a4f0c62dcd39f94a68bca8cc76311847118d9ad1..2dafb1bb9779cc25471b5dfc0176a81014e8c840 100644
+--- a/src/main/java/org/bukkit/material/Torch.java
++++ b/src/main/java/org/bukkit/material/Torch.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Torch extends SimpleAttachableMaterialData {
+ public Torch() {
+ super(Material.LEGACY_TORCH);
+diff --git a/src/main/java/org/bukkit/material/TrapDoor.java b/src/main/java/org/bukkit/material/TrapDoor.java
+index effedfc714d67254428b548bba74264cdba4ba15..ed8035f3f45d07a08346efeebf206bcfdb083bc6 100644
+--- a/src/main/java/org/bukkit/material/TrapDoor.java
++++ b/src/main/java/org/bukkit/material/TrapDoor.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class TrapDoor extends SimpleAttachableMaterialData implements Openable {
+ public TrapDoor() {
+ super(Material.LEGACY_TRAP_DOOR);
+diff --git a/src/main/java/org/bukkit/material/Tree.java b/src/main/java/org/bukkit/material/Tree.java
+index e759f50339903ab10f50bebe56bab5cfe8d9f7e0..4f79b8ac23e4851da9ed41858eafaffa39efb59a 100644
+--- a/src/main/java/org/bukkit/material/Tree.java
++++ b/src/main/java/org/bukkit/material/Tree.java
+@@ -13,7 +13,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Tree extends Wood {
+ protected static final Material DEFAULT_TYPE = Material.LEGACY_LOG;
+ protected static final BlockFace DEFAULT_DIRECTION = BlockFace.UP;
+diff --git a/src/main/java/org/bukkit/material/Tripwire.java b/src/main/java/org/bukkit/material/Tripwire.java
+index e5ffa4db87b435df8c04f1b43521fda6493fd43d..eb667f22b7a143d695cf78219986230c57ab229f 100644
+--- a/src/main/java/org/bukkit/material/Tripwire.java
++++ b/src/main/java/org/bukkit/material/Tripwire.java
+@@ -8,7 +8,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Tripwire extends MaterialData {
+
+ public Tripwire() {
+diff --git a/src/main/java/org/bukkit/material/TripwireHook.java b/src/main/java/org/bukkit/material/TripwireHook.java
+index 80aa1c7bc7a1ef71b51101b154361feff4dcf88e..8a19008272897fa32b0b30504545a9873b82a54c 100644
+--- a/src/main/java/org/bukkit/material/TripwireHook.java
++++ b/src/main/java/org/bukkit/material/TripwireHook.java
+@@ -9,7 +9,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class TripwireHook extends SimpleAttachableMaterialData implements Redstone {
+
+ public TripwireHook() {
+diff --git a/src/main/java/org/bukkit/material/Vine.java b/src/main/java/org/bukkit/material/Vine.java
+index 07a4f3b1511e274affe751aad2b9020b49df815f..574b09896f25e42e20c8953e9668cc4edae31348 100644
+--- a/src/main/java/org/bukkit/material/Vine.java
++++ b/src/main/java/org/bukkit/material/Vine.java
+@@ -11,7 +11,7 @@ import org.bukkit.block.BlockFace;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Vine extends MaterialData {
+ private static final int VINE_NORTH = 0x4;
+ private static final int VINE_EAST = 0x8;
+diff --git a/src/main/java/org/bukkit/material/Wood.java b/src/main/java/org/bukkit/material/Wood.java
+index 5d51c9286dbf71ff4bb8717d5e83431b1815770e..2d4556ce2367395d42d622d94f073de9ae4e4a36 100644
+--- a/src/main/java/org/bukkit/material/Wood.java
++++ b/src/main/java/org/bukkit/material/Wood.java
+@@ -13,7 +13,7 @@ import org.bukkit.TreeSpecies;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Wood extends MaterialData {
+ protected static final Material DEFAULT_TYPE = Material.LEGACY_WOOD;
+ protected static final TreeSpecies DEFAULT_SPECIES = TreeSpecies.GENERIC;
+diff --git a/src/main/java/org/bukkit/material/WoodenStep.java b/src/main/java/org/bukkit/material/WoodenStep.java
+index b99a9a304d1c14c187ad2721424d5e5caed90973..827bcd7284919a7f7a71a3ea53c2c67bbbca378b 100644
+--- a/src/main/java/org/bukkit/material/WoodenStep.java
++++ b/src/main/java/org/bukkit/material/WoodenStep.java
+@@ -11,7 +11,7 @@ import org.bukkit.TreeSpecies;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class WoodenStep extends Wood {
+ protected static final Material DEFAULT_TYPE = Material.LEGACY_WOOD_STEP;
+ protected static final boolean DEFAULT_INVERTED = false;
+diff --git a/src/main/java/org/bukkit/material/Wool.java b/src/main/java/org/bukkit/material/Wool.java
+index 3b17409a98b53538989a8d2d5ad1b80643befeab..c5b32246f9d777d5b02f27ca616bdf8323a14ccd 100644
+--- a/src/main/java/org/bukkit/material/Wool.java
++++ b/src/main/java/org/bukkit/material/Wool.java
+@@ -8,7 +8,7 @@ import org.bukkit.Material;
+ * @deprecated all usage of MaterialData is deprecated and subject to removal.
+ * Use {@link org.bukkit.block.data.BlockData}.
+ */
+-@Deprecated
++@Deprecated(forRemoval = true, since = "1.13")
+ public class Wool extends MaterialData implements Colorable {
+ public Wool() {
+ super(Material.LEGACY_WOOL);
diff --git a/src/main/java/org/bukkit/material/types/MushroomBlockTexture.java b/src/main/java/org/bukkit/material/types/MushroomBlockTexture.java
index 0ea9c6b2420a0f990bd1fdf50fc015e37a7060d8..e99644eae1c662b117aa19060d2484aca19fe0a4 100644
--- a/src/main/java/org/bukkit/material/types/MushroomBlockTexture.java
diff --git a/patches/api/0182-Add-Raw-Byte-ItemStack-Serialization.patch b/patches/api/0182-Add-Raw-Byte-ItemStack-Serialization.patch
index 2d931c5392..f230461309 100644
--- a/patches/api/0182-Add-Raw-Byte-ItemStack-Serialization.patch
+++ b/patches/api/0182-Add-Raw-Byte-ItemStack-Serialization.patch
@@ -20,7 +20,7 @@ index da997507b96908027c49dabc6daf7c787dcad95d..cb7aef53cbffc76dea9fec28445ea8ae
// Paper end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index d5dd79c98f4d37b09d232214f06ed7dca3a7e6dd..abdb3b5d3bc96fc48ee53208f77ae0f9c295d771 100644
+index e9c29fc1db686b80bc2477d78ec2b361b8600b9e..4b4c364dad70126dee17aabca2c3da9f148dd6d0 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -661,6 +661,30 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0202-Add-methods-to-get-translation-keys.patch b/patches/api/0202-Add-methods-to-get-translation-keys.patch
index bce3299948..fa62b17b92 100644
--- a/patches/api/0202-Add-methods-to-get-translation-keys.patch
+++ b/patches/api/0202-Add-methods-to-get-translation-keys.patch
@@ -526,7 +526,7 @@ index 5bd252c0ae3b09fe141d131360c67bb9bfbf5422..78587d9fabe6371a23a7963917b054db
+
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index abdb3b5d3bc96fc48ee53208f77ae0f9c295d771..03f50bcf60ce868d633912e53e804a2b25999f6e 100644
+index 4b4c364dad70126dee17aabca2c3da9f148dd6d0..ef36a696f2f926d70c5d93ce08f75fa9a749e32f 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -27,7 +27,7 @@ import org.jetbrains.annotations.Nullable;
diff --git a/patches/api/0225-Add-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/api/0225-Add-API-to-get-Material-from-Boats-and-Minecarts.patch
index d297dd5c24..081fbd1bf8 100644
--- a/patches/api/0225-Add-API-to-get-Material-from-Boats-and-Minecarts.patch
+++ b/patches/api/0225-Add-API-to-get-Material-from-Boats-and-Minecarts.patch
@@ -24,7 +24,7 @@ index 88852215d01f3fc4866449f7b826f6603b0ed9d8..f7548098bcdd033d9c530fdc584fc553
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/entity/Minecart.java b/src/main/java/org/bukkit/entity/Minecart.java
-index 7f9c4d4b430a3f0276461346ff2621bacf864075..bc1e62759c995a1463ebcd10d73c7d502c9acc45 100644
+index a1e4328994a119de2966dce5470581b5a520d55e..d1f602faa34cc5cc4563e18b63a40078e406641d 100644
--- a/src/main/java/org/bukkit/entity/Minecart.java
+++ b/src/main/java/org/bukkit/entity/Minecart.java
@@ -1,5 +1,6 @@
diff --git a/patches/api/0254-Improve-Item-Rarity-API.patch b/patches/api/0254-Improve-Item-Rarity-API.patch
index f945efb2fe..4a53134873 100644
--- a/patches/api/0254-Improve-Item-Rarity-API.patch
+++ b/patches/api/0254-Improve-Item-Rarity-API.patch
@@ -110,7 +110,7 @@ index e7931f73f10fe35ebd5fe4a04b036d53bb117ebd..cbce835ed6d44e5b8c9aaae4e36a77f8
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 03f50bcf60ce868d633912e53e804a2b25999f6e..e2f8a0d3a9dcab3fce2d71221751434abc9ab94f 100644
+index ef36a696f2f926d70c5d93ce08f75fa9a749e32f..fb1d7ff51f267225ac76c29a56d67fb443d3a92f 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -907,5 +907,17 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0272-ItemStack-repair-check-API.patch b/patches/api/0272-ItemStack-repair-check-API.patch
index b918edcf35..3c15ebede4 100644
--- a/patches/api/0272-ItemStack-repair-check-API.patch
+++ b/patches/api/0272-ItemStack-repair-check-API.patch
@@ -25,7 +25,7 @@ index 8635846c9f672e39f0929eec7bf83b22536ed284..51f1a09164d501de6d2561ed90175f2c
// Paper end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index e2f8a0d3a9dcab3fce2d71221751434abc9ab94f..057c87bc25b23f5fb3c34d0de781b7e125921439 100644
+index fb1d7ff51f267225ac76c29a56d67fb443d3a92f..b38154b45935ec45154e89277a8c2b1b9e46522d 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -919,5 +919,27 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0275-ItemStack-editMeta.patch b/patches/api/0275-ItemStack-editMeta.patch
index a50fabf48e..83787f07f9 100644
--- a/patches/api/0275-ItemStack-editMeta.patch
+++ b/patches/api/0275-ItemStack-editMeta.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] ItemStack#editMeta
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 057c87bc25b23f5fb3c34d0de781b7e125921439..7915521e3640ffc12d87dbbab4cd1a777e3801c9 100644
+index b38154b45935ec45154e89277a8c2b1b9e46522d..7789c57ee27dc0e95764a6a5830de4cba210aa3b 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -574,6 +574,50 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0287-Missing-Entity-API.patch b/patches/api/0287-Missing-Entity-API.patch
index 1a26485c3a..806c30e4a0 100644
--- a/patches/api/0287-Missing-Entity-API.patch
+++ b/patches/api/0287-Missing-Entity-API.patch
@@ -380,7 +380,7 @@ index c4537080ee1875e984356eee42337a1342f4c9a3..f89edd9c129802f70eac022ff6bf80be
* Gets the entity's absorption amount.
*
diff --git a/src/main/java/org/bukkit/entity/Enderman.java b/src/main/java/org/bukkit/entity/Enderman.java
-index 58191017244f3949f6174fb108e3a245738a53c4..61672c6faf94aa497145aadd634bb10103c7b05a 100644
+index 875817b807c9f515eb07b03cc85d368955388dc3..db01cc952f0a0efd799454d6c86ee4c250e852d8 100644
--- a/src/main/java/org/bukkit/entity/Enderman.java
+++ b/src/main/java/org/bukkit/entity/Enderman.java
@@ -86,4 +86,36 @@ public interface Enderman extends Monster {
diff --git a/patches/api/0309-Add-hasCollision-methods-to-various-places.patch b/patches/api/0309-Add-hasCollision-methods-to-various-places.patch
index ad022302d0..aad90b390e 100644
--- a/patches/api/0309-Add-hasCollision-methods-to-various-places.patch
+++ b/patches/api/0309-Add-hasCollision-methods-to-various-places.patch
@@ -49,7 +49,7 @@ index 6ada8c036f1a112f11a9fbc3baf1f79b3f1bfc8e..02361d58ac723d02d93db80a721b27d3
/**
diff --git a/src/main/java/org/bukkit/block/BlockState.java b/src/main/java/org/bukkit/block/BlockState.java
-index fd4a9bdcfb6775dfbdb7492e6c9eb90722d2ecdc..e573e70d9e74e444783a7363e6cdac126124d86d 100644
+index f4a739d8022d19a7ae0ee9bf93eb5c4846b4bd40..94e1278340c0d9d2be9edc68f645414380aab353 100644
--- a/src/main/java/org/bukkit/block/BlockState.java
+++ b/src/main/java/org/bukkit/block/BlockState.java
@@ -245,4 +245,13 @@ public interface BlockState extends Metadatable {
diff --git a/patches/api/0340-Add-enchantWithLevels-API.patch b/patches/api/0340-Add-enchantWithLevels-API.patch
index 8dbe2d7555..878b0c7df5 100644
--- a/patches/api/0340-Add-enchantWithLevels-API.patch
+++ b/patches/api/0340-Add-enchantWithLevels-API.patch
@@ -70,7 +70,7 @@ index 96546712f788e091749a1b4eebc6b1d6c3db7814..bd0e55562f1cabef3078573182e0cf9f
+ // Paper end - enchantWithLevels API
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 7915521e3640ffc12d87dbbab4cd1a777e3801c9..c9fc93b2f4f3cf971ccb496cafce44c93c4b83c6 100644
+index 7789c57ee27dc0e95764a6a5830de4cba210aa3b..ab74890e9b6a13b76756f884d6d176bb45470191 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -678,6 +678,24 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0363-Add-getDrops-to-BlockState.patch b/patches/api/0363-Add-getDrops-to-BlockState.patch
index f9e8152229..b28d1d5381 100644
--- a/patches/api/0363-Add-getDrops-to-BlockState.patch
+++ b/patches/api/0363-Add-getDrops-to-BlockState.patch
@@ -7,7 +7,7 @@ Originally added isPreferredTool to BlockData but
upstream added that.
diff --git a/src/main/java/org/bukkit/block/BlockState.java b/src/main/java/org/bukkit/block/BlockState.java
-index e573e70d9e74e444783a7363e6cdac126124d86d..80e5d39afe8a6cf882b29c0da78450b958812137 100644
+index 94e1278340c0d9d2be9edc68f645414380aab353..8c7c8c0e54682dc4276109d19d92394cdd4bc189 100644
--- a/src/main/java/org/bukkit/block/BlockState.java
+++ b/src/main/java/org/bukkit/block/BlockState.java
@@ -253,5 +253,41 @@ public interface BlockState extends Metadatable {
diff --git a/patches/api/0376-ItemStack-damage-API.patch b/patches/api/0376-ItemStack-damage-API.patch
index bd4ff35bcc..1a38447711 100644
--- a/patches/api/0376-ItemStack-damage-API.patch
+++ b/patches/api/0376-ItemStack-damage-API.patch
@@ -66,7 +66,7 @@ index 8dd993ce32686431e1c759d446a3620cb52f7ec1..0d665a31152c9a667576f2e9d91ffec5
+ // Paper end - ItemStack damage API
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index c9fc93b2f4f3cf971ccb496cafce44c93c4b83c6..db128d14931ec2afea5205faa58fb5410ec9a54c 100644
+index ab74890e9b6a13b76756f884d6d176bb45470191..659191a226cae406a14c67cc0992f7026f6188e6 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -1003,5 +1003,19 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0421-Allow-proper-checking-of-empty-item-stacks.patch b/patches/api/0421-Allow-proper-checking-of-empty-item-stacks.patch
index 7c74a0781c..9fe874ee2d 100644
--- a/patches/api/0421-Allow-proper-checking-of-empty-item-stacks.patch
+++ b/patches/api/0421-Allow-proper-checking-of-empty-item-stacks.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Allow proper checking of empty item stacks
This adds a method to check if an item stack is empty or not. This mirrors vanilla's implementation of the same method.
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index db128d14931ec2afea5205faa58fb5410ec9a54c..9d397c395d777f337a421fac8fea064680065661 100644
+index 659191a226cae406a14c67cc0992f7026f6188e6..5b918d510b9c8a6f8c6d146e90e1d0ef4a204b5a 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -1017,5 +1017,24 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0429-Remove-unnecessary-durability-check-in-ItemStack-isS.patch b/patches/api/0429-Remove-unnecessary-durability-check-in-ItemStack-isS.patch
index 72deb7498e..bdb434071d 100644
--- a/patches/api/0429-Remove-unnecessary-durability-check-in-ItemStack-isS.patch
+++ b/patches/api/0429-Remove-unnecessary-durability-check-in-ItemStack-isS.patch
@@ -9,7 +9,7 @@ By removing this check we avoid unnecessarily allocating useless `ItemMeta` obje
This is a leftover from when checking for the item's durability was "free" because the durability was stored in the `ItemStack` itself, this [was changed in Minecraft 1.13](https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/commits/f8b2086d60942eb2cd7ac25a2a1408cb790c222c#src/main/java/org/bukkit/inventory/ItemStack.java).
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 9d397c395d777f337a421fac8fea064680065661..c5e22bca27f3199eb2a466f41aa82047f5fd0e44 100644
+index 5b918d510b9c8a6f8c6d146e90e1d0ef4a204b5a..13d035ace9fbe93c3754595ac6cadbfbe30062a5 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -307,7 +307,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0445-ItemStack-Tooltip-API.patch b/patches/api/0445-ItemStack-Tooltip-API.patch
index 7fa28ddc99..9ed3f18811 100644
--- a/patches/api/0445-ItemStack-Tooltip-API.patch
+++ b/patches/api/0445-ItemStack-Tooltip-API.patch
@@ -119,7 +119,7 @@ index 3f1b48fd65df954e874e6dc6b9093cb12370e2c5..0e9ccfee7a03d341e7c4d271f53b4ed1
+ @NotNull java.util.List<net.kyori.adventure.text.Component> computeTooltipLines(@NotNull ItemStack itemStack, @NotNull io.papermc.paper.inventory.tooltip.TooltipContext tooltipContext, @Nullable org.bukkit.entity.Player player); // Paper - expose itemstack tooltip lines
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index c5e22bca27f3199eb2a466f41aa82047f5fd0e44..235d41b0078bb513470b17a0dad46fae3ac73a16 100644
+index 13d035ace9fbe93c3754595ac6cadbfbe30062a5..718070359c644de65c8fc2b34ad39913525d18c6 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -1037,4 +1037,21 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0455-Deprecate-ItemStack-setType.patch b/patches/api/0455-Deprecate-ItemStack-setType.patch
index 910f35e09e..cdb918bc11 100644
--- a/patches/api/0455-Deprecate-ItemStack-setType.patch
+++ b/patches/api/0455-Deprecate-ItemStack-setType.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Deprecate ItemStack#setType
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 235d41b0078bb513470b17a0dad46fae3ac73a16..2866f10f954f6d3fb1d58c216a2d5ae1372adbad 100644
+index 718070359c644de65c8fc2b34ad39913525d18c6..5b261bcffa7d04c9e7db57fee37d4a1471cbbd64 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -143,8 +143,18 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0461-Fix-ItemFlags.patch b/patches/api/0461-Fix-ItemFlags.patch
index 1b1eb619b9..a6301eff75 100644
--- a/patches/api/0461-Fix-ItemFlags.patch
+++ b/patches/api/0461-Fix-ItemFlags.patch
@@ -47,7 +47,7 @@ index 5b8dac777bb1640dc00bbe98feb6460c36eebb98..1af15fd327e0613cd1a179bd7fef1e83
/**
* Setting to show/hide item-specific information, including, but not limited to:
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 2866f10f954f6d3fb1d58c216a2d5ae1372adbad..7f5633e7689b82b937d5b985c3e6ae15dc94a20f 100644
+index 5b261bcffa7d04c9e7db57fee37d4a1471cbbd64..1d2ffdf88daa9186993c69c5ab2b96520b41920b 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -588,6 +588,13 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0478-Proxy-ItemStack-to-CraftItemStack.patch b/patches/api/0478-Proxy-ItemStack-to-CraftItemStack.patch
index 17e0017583..9a283e022c 100644
--- a/patches/api/0478-Proxy-ItemStack-to-CraftItemStack.patch
+++ b/patches/api/0478-Proxy-ItemStack-to-CraftItemStack.patch
@@ -16,7 +16,7 @@ index 7332034bb1753f48f7904dafab1ef4b3ee117ea3..11bccf6c27b8b2a2ed558a1375a3b3ad
+ ItemStack createEmptyStack(); // Paper - proxy ItemStack
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..2b414b01f80f9c683381c92deb1fca2ec15be2c7 100644
+index 1d2ffdf88daa9186993c69c5ab2b96520b41920b..4fe68a22576933676271f841a5af0ee45b90216f 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -28,10 +28,38 @@ import org.jetbrains.annotations.Nullable;
diff --git a/patches/api/0479-Make-a-PDC-view-accessible-directly-from-ItemStack.patch b/patches/api/0479-Make-a-PDC-view-accessible-directly-from-ItemStack.patch
index c3ec74beb8..042b9e8600 100644
--- a/patches/api/0479-Make-a-PDC-view-accessible-directly-from-ItemStack.patch
+++ b/patches/api/0479-Make-a-PDC-view-accessible-directly-from-ItemStack.patch
@@ -207,7 +207,7 @@ index 0000000000000000000000000000000000000000..9789916f949374bfb50da535b0761807
+ @NonNull PersistentDataContainerView getPersistentDataContainer();
+}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 2b414b01f80f9c683381c92deb1fca2ec15be2c7..8bbd98ea729755e7666403b96f277fd419560951 100644
+index 4fe68a22576933676271f841a5af0ee45b90216f..b3abe3bde05d4a360e31e490bff8a859dc2bd4a6 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -27,7 +27,7 @@ import org.jetbrains.annotations.Nullable;