editMeta: tighten contract via docs (#5714)

This commit is contained in:
Gergely Sarkozi 2021-05-30 13:45:46 +02:00 committed by GitHub
parent db2d501ba3
commit 34e6b2dc39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -5,16 +5,23 @@ 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 1bd9f7582bb907ff178fd110fdc92834885d1d78..3e2c08641edffcf00b230ad624685aaff30af0e5 100644
index 1bd9f7582bb907ff178fd110fdc92834885d1d78..a7909406e9d54c1ab4789b984ed6b1da50837fce 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -542,6 +542,24 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor
@@ -542,6 +542,31 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor
return result.ensureServerConversions(); // Paper
}
+ // Paper start
+ /**
+ * Edits the {@link ItemMeta} of this stack.
+ * <p>
+ * The {@link java.util.function.Consumer} must only interact
+ * with this stack's {@link ItemMeta} through the provided {@link ItemMeta} instance.
+ * Calling this method or any other meta-related method of the {@link ItemStack} class
+ * (such as {@link #getItemMeta()}, {@link #addItemFlags(ItemFlag...)}, {@link #lore()}, etc.)
+ * from inside the consumer is disallowed and will produce undefined results or exceptions.
+ * </p>
+ *
+ * @param consumer the meta consumer
+ * @return {@code true} if the edit was successful, {@code false} otherwise