From 46b14c30d76080a09200784ee767c3e93802bb1f Mon Sep 17 00:00:00 2001
From: Bukkit/Spigot <noreply+git-bukkit@papermc.io>
Date: Fri, 26 Jun 2020 10:49:24 +1000
Subject: [PATCH] #500: Add PersistentDataContainer#getKeys()

By: Parker Hawke <hawkeboyz2@hotmail.com>
---
 .../bukkit/persistence/PersistentDataContainer.java | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/paper-api/src/main/java/org/bukkit/persistence/PersistentDataContainer.java b/paper-api/src/main/java/org/bukkit/persistence/PersistentDataContainer.java
index 05a93aa314..bf2a957be5 100644
--- a/paper-api/src/main/java/org/bukkit/persistence/PersistentDataContainer.java
+++ b/paper-api/src/main/java/org/bukkit/persistence/PersistentDataContainer.java
@@ -1,5 +1,6 @@
 package org.bukkit.persistence;
 
+import java.util.Set;
 import org.bukkit.NamespacedKey;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -114,6 +115,18 @@ public interface PersistentDataContainer {
     @NotNull
     <T, Z> Z getOrDefault(@NotNull NamespacedKey key, @NotNull PersistentDataType<T, Z> type, @NotNull Z defaultValue);
 
+    /**
+     * Get a set of keys present on this {@link PersistentDataContainer}
+     * instance.
+     *
+     * Any changes made to the returned set will not be reflected on the
+     * instance.
+     *
+     * @return the key set
+     */
+    @NotNull
+    Set<NamespacedKey> getKeys();
+
     /**
      * Removes a custom key from the {@link PersistentDataHolder} instance.
      *