mirror of
https://github.com/FancyInnovations/FancyPlugins.git
synced 2025-12-06 07:43:36 +00:00
fancydialogs: More command stuff
This commit is contained in:
@@ -7,4 +7,16 @@ order: 10
|
||||
|
||||
# /Dialog
|
||||
|
||||
The `/dialog` command is the main command for managing dialogs.
|
||||
## List all dialogs
|
||||
|
||||
Lists all registered dialogs.
|
||||
|
||||
- **Syntax**: `/dialog list`
|
||||
- **Permissions**: `fancydialogs.commands.dialog.list`
|
||||
|
||||
## Open dialog
|
||||
|
||||
Opens a dialog (for a player) by its ID.
|
||||
|
||||
- **Syntax**: `/dialog open <id> [player]`
|
||||
- **Permissions**: `fancydialogs.commands.dialog.open`
|
||||
|
||||
@@ -11,7 +11,7 @@ order: 9
|
||||
|
||||
Shows the version of FancyDialogs.
|
||||
|
||||
- **Syntax**: `/fancydialogs version`
|
||||
- **Syntax**: `/fancydialogs version`
|
||||
- **Permissions**: `fancydialogs.commands.fancydialogs.version`
|
||||
|
||||
## Storage
|
||||
@@ -20,21 +20,21 @@ Shows the version of FancyDialogs.
|
||||
|
||||
Saves all dialog data to the storage.
|
||||
|
||||
- **Syntax**: `/fancydialogs storage save`
|
||||
- **Syntax**: `/fancydialogs storage save`
|
||||
- **Permissions**: `fancydialogs.commands.fancydialogs.storage.save`
|
||||
|
||||
### Load all dialogs
|
||||
|
||||
Loads all dialog data from the storage.
|
||||
|
||||
- **Syntax**: `/fancydialogs storage load`
|
||||
- **Syntax**: `/fancydialogs storage load`
|
||||
- **Permissions**: `fancydialogs.commands.fancydialogs.storage.load`
|
||||
|
||||
### Reload all dialogs
|
||||
|
||||
Clears the dialog registry and loads all dialog data from the storage.
|
||||
|
||||
- **Syntax**: `/fancydialogs storage reload`
|
||||
- **Syntax**: `/fancydialogs storage reload`
|
||||
- **Permissions**: `fancydialogs.commands.fancydialogs.storage.reload`
|
||||
|
||||
## Registry
|
||||
@@ -43,19 +43,19 @@ Clears the dialog registry and loads all dialog data from the storage.
|
||||
|
||||
Lists all registered dialogs.
|
||||
|
||||
- **Syntax**: `/fancydialogs registry list`
|
||||
- **Syntax**: `/fancydialogs registry list`
|
||||
- **Permissions**: `fancydialogs.commands.fancydialogs.registry.list`
|
||||
|
||||
## Clear registry
|
||||
|
||||
Clears the dialog registry
|
||||
|
||||
- **Syntax**: `/fancydialogs registry clear`
|
||||
- **Syntax**: `/fancydialogs registry clear`
|
||||
- **Permissions**: `fancydialogs.commands.fancydialogs.registry.clear`
|
||||
|
||||
## Unregister dialog
|
||||
|
||||
Unregisters a dialog by its ID.
|
||||
|
||||
- **Syntax**: `/fancydialogs registry unregister <id>`
|
||||
- **Syntax**: `/fancydialogs registry unregister <id>`
|
||||
- **Permissions**: `fancydialogs.commands.fancydialogs.registry.unregister`
|
||||
@@ -7,7 +7,11 @@ import org.bukkit.entity.Player;
|
||||
import revxrsal.commands.annotation.Command;
|
||||
import revxrsal.commands.annotation.Description;
|
||||
import revxrsal.commands.annotation.Optional;
|
||||
import revxrsal.commands.bukkit.actor.BukkitCommandActor;
|
||||
import revxrsal.commands.bukkit.annotation.CommandPermission;
|
||||
import revxrsal.commands.bukkit.parameters.EntitySelector;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public final class DialogCMD {
|
||||
|
||||
@@ -19,13 +23,35 @@ public final class DialogCMD {
|
||||
private DialogCMD() {
|
||||
}
|
||||
|
||||
@Command("dialog list")
|
||||
@Description("Lists all registered dialogs")
|
||||
@CommandPermission("fancydialogs.commands.dialog.list")
|
||||
public void list(BukkitCommandActor actor) {
|
||||
Collection<Dialog> dialogs = plugin.getDialogRegistry().getAll();
|
||||
if (dialogs.isEmpty()) {
|
||||
translator.translate("commands.dialog.registry.list.empty").send(actor.sender());
|
||||
return;
|
||||
}
|
||||
|
||||
translator.translate("commands.dialog.registry.list.header")
|
||||
.replace("count", String.valueOf(dialogs.size()))
|
||||
.send(actor.sender());
|
||||
|
||||
for (Dialog dialog : dialogs) {
|
||||
translator.translate("commands.dialog.registry.list.entry")
|
||||
.replace("id", dialog.getId())
|
||||
.replace("title", dialog.getData().title())
|
||||
.send(actor.sender());
|
||||
}
|
||||
}
|
||||
|
||||
@Command("dialog open <dialog>")
|
||||
@Description("Opens a dialog (for a player) by its ID")
|
||||
@CommandPermission("fancydialogs.commands.registry.unregister")
|
||||
public void open(
|
||||
Player actor,
|
||||
Dialog dialog,
|
||||
@Optional Player target
|
||||
@Optional EntitySelector<Player> target
|
||||
) {
|
||||
if (target == null) {
|
||||
dialog.open(actor);
|
||||
@@ -33,10 +59,18 @@ public final class DialogCMD {
|
||||
.replace("id", dialog.getId())
|
||||
.send(actor);
|
||||
} else {
|
||||
dialog.open(target);
|
||||
for (Player player : target) {
|
||||
dialog.open(player);
|
||||
}
|
||||
|
||||
Collection<String> players = target.stream()
|
||||
.map(Player::getName)
|
||||
.toList();
|
||||
String playersStr = String.join(", ", players);
|
||||
|
||||
translator.translate("commands.dialog.open.other")
|
||||
.replace("id", dialog.getId())
|
||||
.replace("target", target.getName())
|
||||
.replace("target", playersStr)
|
||||
.send(actor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,16 +98,16 @@ public final class FancyDialogsCMD {
|
||||
) {
|
||||
Collection<Dialog> dialogs = plugin.getDialogRegistry().getAll();
|
||||
if (dialogs.isEmpty()) {
|
||||
translator.translate("commands.fancydialogs.registry.list.empty").send(actor.sender());
|
||||
translator.translate("commands.dialog.registry.list.empty").send(actor.sender());
|
||||
return;
|
||||
}
|
||||
|
||||
translator.translate("commands.fancydialogs.registry.list.header")
|
||||
translator.translate("commands.dialog.registry.list.header")
|
||||
.replace("count", String.valueOf(dialogs.size()))
|
||||
.send(actor.sender());
|
||||
|
||||
for (Dialog dialog : dialogs) {
|
||||
translator.translate("commands.fancydialogs.registry.list.entry")
|
||||
translator.translate("commands.dialog.registry.list.entry")
|
||||
.replace("id", dialog.getId())
|
||||
.replace("title", dialog.getData().title())
|
||||
.send(actor.sender());
|
||||
|
||||
@@ -6,7 +6,11 @@ messages:
|
||||
dialog:
|
||||
open:
|
||||
self: "<dark_gray>› <gray>Opened dialog {warningColor}{id}<gray>."
|
||||
other: "<dark_gray>› <gray>Opened dialog {warningColor}{id}<gray> for player {target}."
|
||||
other: "<dark_gray>› <gray>Opened dialog {warningColor}{id}<gray> for {target}."
|
||||
list:
|
||||
empty: "<dark_gray>› <gray>There are no dialogs registered."
|
||||
header: "<dark_gray>› <gray>Registered dialogs:"
|
||||
entry: "<dark_gray>› <gray> - {warningColor}{id}<gray> ({title})"
|
||||
fancydialogs:
|
||||
version: "<dark_gray>› <gray>You are running FancyDialogs {warningColor}{version}<gray>."
|
||||
storage:
|
||||
@@ -17,10 +21,6 @@ messages:
|
||||
reload:
|
||||
success: "<dark_gray>› <gray>Successfully reloaded {warningColor}{count}<gray> dialogs from the storage."
|
||||
registry:
|
||||
list:
|
||||
empty: "<dark_gray>› <gray>There are no dialogs registered."
|
||||
header: "<dark_gray>› <gray>Registered dialogs:"
|
||||
entry: "<dark_gray>› <gray> - {warningColor}{id}<gray> ({title})"
|
||||
clear:
|
||||
success: "<dark_gray>› <gray>Successfully cleared all registered dialogs."
|
||||
unregister:
|
||||
|
||||
Reference in New Issue
Block a user