From a736c1a3c79f0285bb5dc95cc7c6f712e711c216 Mon Sep 17 00:00:00 2001 From: u9g <43508353+u9g@users.noreply.github.com> Date: Sun, 9 Jan 2022 11:35:45 -0500 Subject: [PATCH] Add new overload to PersistentDataContainer#has (#7278) Co-authored-by: u9g Co-authored-by: Josh Roy --- ...rload-to-PersistentDataContainer-has.patch | 30 +++++++++++++++++++ ...rload-to-PersistentDataContainer-has.patch | 24 +++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 patches/api/0354-Add-new-overload-to-PersistentDataContainer-has.patch create mode 100644 patches/server/0846-Add-new-overload-to-PersistentDataContainer-has.patch diff --git a/patches/api/0354-Add-new-overload-to-PersistentDataContainer-has.patch b/patches/api/0354-Add-new-overload-to-PersistentDataContainer-has.patch new file mode 100644 index 0000000000..73c49a2fc8 --- /dev/null +++ b/patches/api/0354-Add-new-overload-to-PersistentDataContainer-has.patch @@ -0,0 +1,30 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: u9g +Date: Mon, 3 Jan 2022 23:27:21 -0500 +Subject: [PATCH] Add new overload to PersistentDataContainer#has + +Adds the new overload: PersistentDataContainer#has(NamespacedKey key) + +diff --git a/src/main/java/org/bukkit/persistence/PersistentDataContainer.java b/src/main/java/org/bukkit/persistence/PersistentDataContainer.java +index bf2a957be52d86d07d7d303c86bd3da5fe0a16c0..eebb3da156e2d95efbe22d4afa470b977ce19f10 100644 +--- a/src/main/java/org/bukkit/persistence/PersistentDataContainer.java ++++ b/src/main/java/org/bukkit/persistence/PersistentDataContainer.java +@@ -151,4 +151,18 @@ public interface PersistentDataContainer { + */ + @NotNull + PersistentDataAdapterContext getAdapterContext(); ++ ++ // Paper start ++ /** ++ * Returns if the persistent metadata provider has metadata registered ++ * matching the provided key. ++ * ++ * @param key the key for which existence should be checked. ++ * ++ * @return whether the key exists ++ * ++ * @throws NullPointerException if the key to look up is null ++ */ ++ boolean has(@NotNull NamespacedKey key); ++ // Paper end + } diff --git a/patches/server/0846-Add-new-overload-to-PersistentDataContainer-has.patch b/patches/server/0846-Add-new-overload-to-PersistentDataContainer-has.patch new file mode 100644 index 0000000000..d19f7179e1 --- /dev/null +++ b/patches/server/0846-Add-new-overload-to-PersistentDataContainer-has.patch @@ -0,0 +1,24 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: u9g +Date: Mon, 3 Jan 2022 23:32:42 -0500 +Subject: [PATCH] Add new overload to PersistentDataContainer#has + +Adds the new overload: PersistentDataContainer#has(NamespacedKey key) + +diff --git a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java +index 2c59f09a9261a1690951161fd856a5848d9885b7..f0588bec9be09cb8273c310fb3de8bfe72dee9e5 100644 +--- a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java ++++ b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java +@@ -161,5 +161,12 @@ public class CraftPersistentDataContainer implements PersistentDataContainer { + public void clear() { + this.customDataTags.clear(); + } ++ ++ @Override ++ public boolean has(NamespacedKey key) { ++ Validate.notNull(key, "The provided key for the custom value was null"); ++ ++ return this.customDataTags.containsKey(key.toString()); ++ } + // Paper end + }