summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/bukkit/inventory/ItemStack.java33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index e1adce49..f7f41b39 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -205,7 +205,10 @@ public class ItemStack implements Serializable, ConfigurationSerializable {
@Override
public ItemStack clone() {
- return new ItemStack(type, amount, durability);
+ ItemStack result = new ItemStack(type, amount, durability);
+ result.addEnchantments(getEnchantments());
+
+ return result;
}
@Override
@@ -247,6 +250,20 @@ public class ItemStack implements Serializable, ConfigurationSerializable {
}
/**
+ * Adds the specified enchantments to this item stack.
+ * <p>
+ * This method is the same as calling {@link #addEnchantment(org.bukkit.enchantments.Enchantment, int)}
+ * for each element of the map.
+ *
+ * @param enchantments Enchantments to add
+ */
+ public void addEnchantments(Map<Enchantment, Integer> enchantments) {
+ for (Map.Entry<Enchantment, Integer> entry : getEnchantments().entrySet()) {
+ addEnchantment(entry.getKey(), entry.getValue());
+ }
+ }
+
+ /**
* Adds the specified {@link Enchantment} to this item stack.
* <p>
* If this item stack already contained the given enchantment (at any level), it will be replaced.
@@ -265,6 +282,20 @@ public class ItemStack implements Serializable, ConfigurationSerializable {
}
/**
+ * Adds the specified enchantments to this item stack in an unsafe manner.
+ * <p>
+ * This method is the same as calling {@link #addUnsafeEnchantment(org.bukkit.enchantments.Enchantment, int)}
+ * for each element of the map.
+ *
+ * @param enchantments Enchantments to add
+ */
+ public void addUnsafeEnchantments(Map<Enchantment, Integer> enchantments) {
+ for (Map.Entry<Enchantment, Integer> entry : getEnchantments().entrySet()) {
+ addUnsafeEnchantment(entry.getKey(), entry.getValue());
+ }
+ }
+
+ /**
* Adds the specified {@link Enchantment} to this item stack.
* <p>
* If this item stack already contained the given enchantment (at any level), it will be replaced.