mirror of
https://github.com/FancyInnovations/FancyPlugins.git
synced 2025-12-06 07:43:36 +00:00
fancydialogs, docs: Add fancydialogs command
This commit is contained in:
@@ -2,6 +2,7 @@ package com.fancyinnovations.fancydialogs;
|
||||
|
||||
import com.fancyinnovations.fancydialogs.api.Dialog;
|
||||
import com.fancyinnovations.fancydialogs.api.data.DialogData;
|
||||
import com.fancyinnovations.fancydialogs.commands.FancyDialogsCMD;
|
||||
import com.fancyinnovations.fancydialogs.commands.TutorialCMD;
|
||||
import com.fancyinnovations.fancydialogs.config.FDFeatureFlags;
|
||||
import com.fancyinnovations.fancydialogs.config.FancyDialogsConfig;
|
||||
@@ -137,6 +138,7 @@ public class FancyDialogsPlugin extends JavaPlugin {
|
||||
Lamp<BukkitCommandActor> lamp = BukkitLamp
|
||||
.builder(this)
|
||||
.build();
|
||||
lamp.register(FancyDialogsCMD.INSTANCE);
|
||||
lamp.register(TutorialCMD.INSTANCE);
|
||||
|
||||
// FancyNpcs actions
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
package com.fancyinnovations.fancydialogs.commands;
|
||||
|
||||
import com.fancyinnovations.fancydialogs.FancyDialogsPlugin;
|
||||
import com.fancyinnovations.fancydialogs.api.Dialog;
|
||||
import com.fancyinnovations.fancydialogs.api.data.DialogData;
|
||||
import com.fancyinnovations.fancydialogs.dialog.DialogImpl;
|
||||
import de.oliver.fancylib.translations.Translator;
|
||||
import revxrsal.commands.annotation.Command;
|
||||
import revxrsal.commands.annotation.Description;
|
||||
import revxrsal.commands.bukkit.actor.BukkitCommandActor;
|
||||
import revxrsal.commands.bukkit.annotation.CommandPermission;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public final class FancyDialogsCMD {
|
||||
|
||||
public static final FancyDialogsCMD INSTANCE = new FancyDialogsCMD();
|
||||
|
||||
private final FancyDialogsPlugin plugin = FancyDialogsPlugin.get();
|
||||
private final Translator translator = FancyDialogsPlugin.get().getTranslator();
|
||||
|
||||
private FancyDialogsCMD() {
|
||||
}
|
||||
|
||||
@Command("fancydialogs version")
|
||||
@Description("Shows the version of FancyDialogs")
|
||||
@CommandPermission("fancydialogs.commands.tutorial")
|
||||
public void version(
|
||||
final BukkitCommandActor actor,
|
||||
final String tutorial
|
||||
) {
|
||||
String version = plugin.getPluginMeta().getVersion();
|
||||
|
||||
translator.translate("commands.fancydialogs.version")
|
||||
.replace("version", version)
|
||||
.send(actor.sender());
|
||||
}
|
||||
|
||||
@Command("fancydialogs storage save")
|
||||
@Description("Saves all dialog data to the storage")
|
||||
@CommandPermission("fancydialogs.commands.storage.save")
|
||||
public void storageSave(
|
||||
final BukkitCommandActor actor
|
||||
) {
|
||||
List<DialogData> dialogs = plugin.getDialogRegistry().getAll().stream()
|
||||
.map(Dialog::getData)
|
||||
.toList();
|
||||
|
||||
plugin.getDialogStorage().saveBatch(dialogs);
|
||||
|
||||
translator.translate("commands.fancydialogs.storage.save.success")
|
||||
.replace("count", String.valueOf(dialogs.size()))
|
||||
.send(actor.sender());
|
||||
}
|
||||
|
||||
@Command("fancydialogs storage load")
|
||||
@Description("Loads all dialog data from the storage")
|
||||
@CommandPermission("fancydialogs.commands.storage.load")
|
||||
public void storageLoad(
|
||||
final BukkitCommandActor actor
|
||||
) {
|
||||
Collection<DialogData> dialogs = plugin.getDialogStorage().loadAll();
|
||||
|
||||
for (DialogData dialogData : dialogs) {
|
||||
DialogImpl dialog = new DialogImpl(dialogData.id(), dialogData);
|
||||
plugin.getDialogRegistry().register(dialog);
|
||||
}
|
||||
|
||||
translator.translate("commands.fancydialogs.storage.load.success")
|
||||
.replace("count", String.valueOf(dialogs.size()))
|
||||
.send(actor.sender());
|
||||
}
|
||||
|
||||
@Command("fancydialogs registry list")
|
||||
@Description("Lists all registered dialogs")
|
||||
@CommandPermission("fancydialogs.commands.registry.list")
|
||||
public void registryList(
|
||||
final BukkitCommandActor actor
|
||||
) {
|
||||
Collection<Dialog> dialogs = plugin.getDialogRegistry().getAll();
|
||||
if (dialogs.isEmpty()) {
|
||||
translator.translate("commands.fancydialogs.registry.list.empty").send(actor.sender());
|
||||
return;
|
||||
}
|
||||
|
||||
translator.translate("commands.fancydialogs.registry.list.header")
|
||||
.replace("count", String.valueOf(dialogs.size()))
|
||||
.send(actor.sender());
|
||||
|
||||
for (Dialog dialog : dialogs) {
|
||||
translator.translate("commands.fancydialogs.registry.list.entry")
|
||||
.replace("id", dialog.getId())
|
||||
.replace("title", dialog.getData().title())
|
||||
.send(actor.sender());
|
||||
}
|
||||
}
|
||||
|
||||
@Command("fancydialogs registry clear")
|
||||
@Description("Clears the dialog registry")
|
||||
@CommandPermission("fancydialogs.commands.registry.clear")
|
||||
public void registryClear(
|
||||
final BukkitCommandActor actor
|
||||
) {
|
||||
plugin.getDialogRegistry().clear();
|
||||
translator.translate("commands.fancydialogs.registry.clear.success").send(actor.sender());
|
||||
}
|
||||
|
||||
@Command("fancydialogs registry unregister <id>")
|
||||
@Description("Unregisters a dialog by its ID")
|
||||
@CommandPermission("fancydialogs.commands.registry.unregister")
|
||||
public void registryUnregister(
|
||||
final BukkitCommandActor actor,
|
||||
final String id
|
||||
) {
|
||||
Dialog dialog = plugin.getDialogRegistry().get(id);
|
||||
if (dialog == null) {
|
||||
translator.translate("commands.fancydialogs.registry.unregister.not_found")
|
||||
.replace("id", id)
|
||||
.send(actor.sender());
|
||||
return;
|
||||
}
|
||||
|
||||
plugin.getDialogRegistry().unregister(id);
|
||||
translator.translate("commands.fancydialogs.registry.unregister.success")
|
||||
.replace("id", id)
|
||||
.send(actor.sender());
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,20 @@
|
||||
language_name: default
|
||||
messages:
|
||||
foo: "Foo"
|
||||
commands:
|
||||
fancydialogs:
|
||||
version: "<dark_gray>› <gray>You are running FancyDialogs {warningColor}{version}<gray>."
|
||||
storage:
|
||||
save:
|
||||
success: "<dark_gray>› <gray>Successfully saved {warningColor}{count}<gray> dialogs to the storage."
|
||||
load:
|
||||
success: "<dark_gray>› <gray>Successfully loaded {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:
|
||||
success: "<dark_gray>› <gray>Successfully unregistered dialog {warningColor}{id}<gray>."
|
||||
not_found: "<dark_gray>› <gray>Dialog {warningColor}{id}<gray> is not registered."
|
||||
Reference in New Issue
Block a user