mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-02 04:56:50 +01:00
3e90a19183
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 304e83eb PR-1002: Improve documentation and implementation of getMaxStackSize e8215ea2 SPIGOT-7638: Library loader does not seem to resolve every dependency 79c595c0 SPIGOT-7637: Bad logic in checking nullability of AttributeModifier slots CraftBukkit Changes: 91b1fc3f1 SPIGOT-7644: Fix ItemMeta#getAsString 4e77a81e1 SPIGOT-7615: PlayerLeashEntityEvent cancelled eats lead 996f660f3 Do not remove leash knot if leasing to an existing leash knot gets cancelled f70367d42 SPIGOT-7643: Fix inverted leash event cancelled usage and remove leash knot if no entity gets leashed 7ddb48294 SPIGOT-7640: Abnormal jumping height of wind charge 080c8711e SPIGOT-7639: Incoming plugin channels not working ad549847e Open a direct connection instead of pinging mojang server to check if it is reachable 38e2926c5 SPIGOT-7365: DamageCause blocked by shield should trigger invulnerableTime
54 lines
2.4 KiB
Diff
54 lines
2.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
|
|
Date: Thu, 29 Feb 2024 17:54:26 -0500
|
|
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 b669df4bd1ff0ecba575d42415973e81bccddbbe..1294f7ce50977dfe72daf535b611386844c205e0 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
@@ -134,8 +134,18 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
|
* {@link Material#isItem()} returns false.</b>
|
|
*
|
|
* @param type New type to set the items in this stack to
|
|
+ * @deprecated <b>Setting the material type of ItemStacks is no longer supported.</b>
|
|
+ * <p>
|
|
+ * This method is deprecated due to potential illegal behavior that may occur
|
|
+ * during the context of which this ItemStack is being used, allowing for certain item validation to be bypassed.
|
|
+ * It is recommended to instead create a new ItemStack object with the desired
|
|
+ * Material type, and if possible, set it in the appropriate context.
|
|
+ *
|
|
+ * Using this method in ItemStacks passed in events will result in undefined behavior.
|
|
+ * @see ItemStack#withType(Material)
|
|
*/
|
|
@Utility
|
|
+ @Deprecated // Paper
|
|
public void setType(@NotNull Material type) {
|
|
Preconditions.checkArgument(type != null, "Material cannot be null");
|
|
this.type = type;
|
|
@@ -148,6 +158,24 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
|
this.data = null;
|
|
}
|
|
}
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Creates a new ItemStack with the specified Material type, where the item count and item meta is preserved.
|
|
+ *
|
|
+ * @param type The Material type of the new ItemStack.
|
|
+ * @return A new ItemStack instance with the specified Material type.
|
|
+ */
|
|
+ @NotNull
|
|
+ @org.jetbrains.annotations.Contract(value = "_ -> new", pure = true)
|
|
+ public ItemStack withType(@NotNull Material type) {
|
|
+ ItemStack itemStack = new ItemStack(type, this.amount);
|
|
+ if (this.hasItemMeta()) {
|
|
+ itemStack.setItemMeta(this.getItemMeta());
|
|
+ }
|
|
+
|
|
+ return itemStack;
|
|
+ }
|
|
+ // Paper end
|
|
|
|
/**
|
|
* Gets the amount of items in this stack
|