From ee918f73ab5b286bdd20cf12baceb1e7a8ddb922 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 27 Jun 2025 19:09:22 +0200 Subject: [PATCH] fancydialogs: Add command to clear joined players cache --- .../src/fancydialogs/commands/fancydialogs.md | 17 ++++++++++--- .../commands/FancyDialogsCMD.java | 25 +++++++++++++++++++ .../JoinedPlayersCache.java | 5 ++++ .../src/main/resources/languages/default.yml | 6 ++++- 4 files changed, 48 insertions(+), 5 deletions(-) diff --git a/docs/src/fancydialogs/commands/fancydialogs.md b/docs/src/fancydialogs/commands/fancydialogs.md index 67d7ac99..4cbcd992 100644 --- a/docs/src/fancydialogs/commands/fancydialogs.md +++ b/docs/src/fancydialogs/commands/fancydialogs.md @@ -48,23 +48,32 @@ Clears the dialog registry and loads all dialog data from the storage. ## Registry -## List all dialogs +### List all dialogs Lists all registered dialogs. - **Syntax**: `/fancydialogs registry list` - **Permissions**: `fancydialogs.commands.fancydialogs.registry.list` -## Clear registry +### Clear registry Clears the dialog registry - **Syntax**: `/fancydialogs registry clear` - **Permissions**: `fancydialogs.commands.fancydialogs.registry.clear` -## Unregister dialog +### Unregister dialog Unregisters a dialog by its ID. - **Syntax**: `/fancydialogs registry unregister ` -- **Permissions**: `fancydialogs.commands.fancydialogs.registry.unregister` \ No newline at end of file +- **Permissions**: `fancydialogs.commands.fancydialogs.registry.unregister` + +## Joined Players Cache + +## Clear joined players cache + +Clears the cache of players who have joined a dialog. + +- **Syntax**: `/fancydialogs joined_players_cache clear` +- **Permissions**: `fancydialogs.commands.fancydialogs.joined_players_cache.clear` \ No newline at end of file diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/commands/FancyDialogsCMD.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/commands/FancyDialogsCMD.java index ea5f6696..5881330d 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/commands/FancyDialogsCMD.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/commands/FancyDialogsCMD.java @@ -224,4 +224,29 @@ public final class FancyDialogsCMD { .replace("id", dialog.getId()) .send(actor.sender()); } + + @Command("fancydialogs joined_players_cache clear") + @Description("Clears the joined players cache") + @CommandPermission("fancydialogs.commands.fancydialogs.joined_players_cache.clear") + public void joinedPlayersCacheClear( + final BukkitCommandActor actor + ) { + if (actor.isPlayer()) { + new ConfirmationDialog("Are you sure you want to clear the joined players cache?") + .withTitle("Confirm clear") + .withOnConfirm(() -> clearJoinedPlayersCache(actor)) + .withOnCancel(() -> translator.translate("commands.fancydialogs.joined_players_cache.clear.cancelled").send(actor.sender())) + .ask(actor.asPlayer()); + } else { + clearJoinedPlayersCache(actor); + } + } + + private void clearJoinedPlayersCache( + final BukkitCommandActor actor + ) { + plugin.getJoinedPlayersCache().clear(); + translator.translate("commands.fancydialogs.joined_players_cache.clear.success") + .send(actor.sender()); + } } diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/joinedplayerscache/JoinedPlayersCache.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/joinedplayerscache/JoinedPlayersCache.java index b4214910..1b0e4e3c 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/joinedplayerscache/JoinedPlayersCache.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/joinedplayerscache/JoinedPlayersCache.java @@ -42,6 +42,11 @@ public class JoinedPlayersCache { } } + public void clear() { + playersJoined.clear(); + save(); + } + public boolean checkIfPlayerJoined(UUID playerUUID) { return playersJoined.contains(playerUUID.toString()); } diff --git a/plugins/fancydialogs/src/main/resources/languages/default.yml b/plugins/fancydialogs/src/main/resources/languages/default.yml index 133ca2a1..a20cf36d 100644 --- a/plugins/fancydialogs/src/main/resources/languages/default.yml +++ b/plugins/fancydialogs/src/main/resources/languages/default.yml @@ -32,4 +32,8 @@ messages: cancelled: "Clearing registered dialogs was cancelled." unregister: success: "Successfully unregistered dialog {warningColor}{id}." - cancelled: "Unregistering dialog {warningColor}{id} was cancelled." \ No newline at end of file + cancelled: "Unregistering dialog {warningColor}{id} was cancelled." + joined_players_cache: + clear: + success: "Successfully cleared the joined players cache." + cancelled: "Clearing the joined players cache was cancelled." \ No newline at end of file