PaperMC/Spigot-API-Patches/0061-ensureServerConversions-API.patch
Spottedleaf 2f782a6652 Updated Upstream (CraftBukkit)
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

CraftBukkit Changes:
17543ecf SPIGOT-5035: Error Using Virtual Merchant GUI
0fc6922b SPIGOT-5028: Villager#setVillagerExperience() doesn't work
bdbdbe44 SPIGOT-5024: Fox error - Unknown target reason
2019-06-06 16:56:51 +01:00

66 lines
2.5 KiB
Diff

From a1e4c9a771b5827464c1e538b2452ed09116bac1 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 4ff149fd9..bb3f7cdc1 100644
--- a/src/main/java/org/bukkit/inventory/ItemFactory.java
+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java
@@ -141,4 +141,17 @@ public interface ItemFactory {
@Deprecated
@NotNull
Material updateMaterial(@NotNull final ItemMeta meta, @NotNull 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
+ */
+ @NotNull
+ ItemStack ensureServerConversions(@NotNull 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 bab86d804..44f3bec7d 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -518,7 +518,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable {
}
}
- return result;
+ return result.ensureServerConversions(); // Paper
}
/**
@@ -577,4 +577,19 @@ 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
+ */
+ @NotNull
+ public ItemStack ensureServerConversions() {
+ return Bukkit.getServer().getItemFactory().ensureServerConversions(this);
+ }
+ // Paper end
}
--
2.21.0