diff --git a/paper-api/src/main/java/io/papermc/paper/dialog/DialogResponseView.java b/paper-api/src/main/java/io/papermc/paper/dialog/DialogResponseView.java index 10a26e788f65..c4cbfd9637f0 100644 --- a/paper-api/src/main/java/io/papermc/paper/dialog/DialogResponseView.java +++ b/paper-api/src/main/java/io/papermc/paper/dialog/DialogResponseView.java @@ -4,6 +4,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Contract; import org.jspecify.annotations.Nullable; +import java.util.Collection; /** * A view for a possible response to a dialog. @@ -49,4 +50,12 @@ public interface DialogResponseView { */ @Contract(pure = true) @Nullable Float getFloat(String key); + + /** + * Gets all keys in the response. + * + * @return a collection of keys + */ + @Contract(pure = true) + Collection keys(); } diff --git a/paper-server/src/main/java/io/papermc/paper/dialog/PaperDialogResponseView.java b/paper-server/src/main/java/io/papermc/paper/dialog/PaperDialogResponseView.java index fef4e81eb379..db1fafceef91 100644 --- a/paper-server/src/main/java/io/papermc/paper/dialog/PaperDialogResponseView.java +++ b/paper-server/src/main/java/io/papermc/paper/dialog/PaperDialogResponseView.java @@ -4,6 +4,7 @@ import net.kyori.adventure.nbt.api.BinaryTagHolder; import net.minecraft.nbt.CompoundTag; import org.jspecify.annotations.Nullable; +import java.util.Collection; public class PaperDialogResponseView implements DialogResponseView { @@ -45,4 +46,9 @@ public BinaryTagHolder payload() { } return this.payload.getFloat(key).orElse(null); } + + @Override + public Collection keys() { + return this.payload.keySet(); + } }