mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-15 07:01:36 +08:00
5e7e79880e
Upstream has released updates that appears 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: 28237f03 SPIGOT-4330: Improve isSimilar for legacy stacks
70 lines
2.5 KiB
Diff
70 lines
2.5 KiB
Diff
From 2d6c06d66fa0bb54e1e769dc71adbb750c64225d Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Wed, 4 May 2016 23:55:48 -0400
|
|
Subject: [PATCH] ensureServerConversions API
|
|
|
|
This will take a Bukkit ItemStack and run it through any conversions a server process would perform on it,
|
|
to ensure it meets latest minecraft expectations.
|
|
|
|
diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java
|
|
index ec2b8b8ed..3012aec22 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemFactory.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java
|
|
@@ -134,4 +134,16 @@ public interface ItemFactory {
|
|
*/
|
|
@Deprecated
|
|
Material updateMaterial(final ItemMeta meta, final Material material) throws IllegalArgumentException;
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Minecart updates are converting simple item stacks into more complex NBT oriented Item Stacks.
|
|
+ *
|
|
+ * Use this method to to ensure any desired data conversions are processed.
|
|
+ * The input itemstack will not be the same as the returned itemstack.
|
|
+ *
|
|
+ * @param item The item to process conversions on
|
|
+ * @return A potentially Data Converted ItemStack
|
|
+ */
|
|
+ ItemStack ensureServerConversions(ItemStack item);
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
index c744799f6..5e8de1152 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
@@ -506,7 +506,12 @@ public class ItemStack implements Cloneable, ConfigurationSerializable {
|
|
}
|
|
}
|
|
|
|
- return result;
|
|
+ // Set damage again incase meta overwrote it
|
|
+ if (args.containsKey("damage")) {
|
|
+ result.setDurability(damage);
|
|
+ }
|
|
+
|
|
+ return result.ensureServerConversions(); // Paper
|
|
}
|
|
|
|
/**
|
|
@@ -564,4 +569,18 @@ public class ItemStack implements Cloneable, ConfigurationSerializable {
|
|
|
|
return true;
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Minecart updates are converting simple item stacks into more complex NBT oriented Item Stacks.
|
|
+ *
|
|
+ * Use this method to to ensure any desired data conversions are processed.
|
|
+ * The input itemstack will not be the same as the returned itemstack.
|
|
+ *
|
|
+ * @return A potentially Data Converted ItemStack
|
|
+ */
|
|
+ public ItemStack ensureServerConversions() {
|
|
+ return Bukkit.getServer().getItemFactory().ensureServerConversions(this);
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
--
|
|
2.18.0
|
|
|