mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-01 04:31:58 +01:00
96d5e6ca48
Currently includes generated key holder classes for types used in the Registry Modification API
64 lines
2.7 KiB
Diff
64 lines
2.7 KiB
Diff
From 0000000000000000000000000000000000000000 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 cccf5d3dfd368c434dcafb0e9319f09a668c7ec2..246b58f52e914c45f357240b155c826b1d40b202 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemFactory.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java
|
|
@@ -253,4 +253,18 @@ public interface ItemFactory {
|
|
@Deprecated
|
|
String getI18NDisplayName(@Nullable ItemStack item);
|
|
// Paper end - add getI18NDisplayName
|
|
+
|
|
+ // Paper start - ensure server conversions API
|
|
+ /**
|
|
+ * Minecraft's updates are converting simple item stacks into more complex NBT oriented Item Stacks.
|
|
+ *
|
|
+ * Use this method 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 - ensure server conversions API
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
index 09a36df6edce2a283df80c67d5ef62da7ff73555..a8faa4c1881bae4d47d901388a78b991d138b518 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
@@ -537,7 +537,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
|
}
|
|
}
|
|
|
|
- return result;
|
|
+ return result.ensureServerConversions(); // Paper
|
|
}
|
|
|
|
/**
|
|
@@ -619,6 +619,19 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
|
return Bukkit.getServer().getItemFactory().displayName(this);
|
|
}
|
|
|
|
+ /**
|
|
+ * Minecraft updates are converting simple item stacks into more complex NBT oriented Item Stacks.
|
|
+ *
|
|
+ * Use this method 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);
|
|
+ }
|
|
+
|
|
/**
|
|
* Gets the Display name as seen in the Client.
|
|
* Currently the server only supports the English language. To override this,
|