mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-06 11:58:10 +02:00
Some of these were wrong (scoreboard manager), others are counter to everything everyone expects (Locations world being null, which wasnt ever safe EVER) others are just too noisy. Replace some with Contract to get rid of the nullability constraint and go back to the old days of IDE not considering it strictly one way or the other. Also, stop requiring annotations on package-private. Introduces the next Developer Perk for Paper-API: Your plugin isn't yellow anymore. Also fixed random dupe code in ensureServerConversions that got mistakenly set in the update.
67 lines
2.5 KiB
Diff
67 lines
2.5 KiB
Diff
From 20eb853456b944fc4eb760f9ee5c6bfa3433513b 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 cbcbe8c8a..8e602cf51 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 7b709457f..4ee01be5f 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
@@ -517,7 +517,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable {
|
|
}
|
|
}
|
|
|
|
- return result;
|
|
+ return result.ensureServerConversions(); // Paper
|
|
}
|
|
|
|
/**
|
|
@@ -576,4 +576,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
|
|
|