fancydialogs: Register default dialogs

This commit is contained in:
Oliver
2025-06-15 19:12:40 +02:00
committed by Oliver
parent 603ddd2151
commit 6c155dc00b
2 changed files with 58 additions and 21 deletions

View File

@@ -1,14 +1,13 @@
package com.fancyinnovations.fancydialogs;
import com.fancyinnovations.fancydialogs.api.Dialog;
import com.fancyinnovations.fancydialogs.api.data.DialogBodyData;
import com.fancyinnovations.fancydialogs.api.data.DialogButton;
import com.fancyinnovations.fancydialogs.api.data.DialogData;
import com.fancyinnovations.fancydialogs.commands.TutorialCMD;
import com.fancyinnovations.fancydialogs.config.FDFeatureFlags;
import com.fancyinnovations.fancydialogs.config.FancyDialogsConfig;
import com.fancyinnovations.fancydialogs.dialog.DialogImpl;
import com.fancyinnovations.fancydialogs.listener.PlayerJoinListener;
import com.fancyinnovations.fancydialogs.registry.DefaultDialogs;
import com.fancyinnovations.fancydialogs.registry.DialogRegistry;
import com.fancyinnovations.fancydialogs.storage.DialogStorage;
import com.fancyinnovations.fancydialogs.storage.JsonDialogStorage;
@@ -92,25 +91,6 @@ public class FancyDialogsPlugin extends JavaPlugin {
dialogStorage = new JsonDialogStorage();
Collection<DialogData> dialogData = dialogStorage.loadAll();
DialogData welcomeDialog = new DialogData(
"welcome_to_fancydialogs_dialog",
"Welcome to FancyDialogs",
"Welcome to FancyDialogs",
false,
List.of(
new DialogBodyData("Welcome to FancyDialogs! This is a sample dialog to get you started.")
),
List.of(
new DialogButton(
"Close",
"Close the dialog",
"close_dialog"
)
)
);
dialogStorage.save(welcomeDialog);
dialogData.add(welcomeDialog);
List<Dialog> dialogs = new ArrayList<>();
for (DialogData data : dialogData) {
Dialog dialog = new DialogImpl(data.id(), data);
@@ -121,6 +101,8 @@ public class FancyDialogsPlugin extends JavaPlugin {
dialogRegistry = new DialogRegistry();
dialogs.forEach(dialogRegistry::register);
DefaultDialogs.registerDefaultDialogs();
fancyLogger.info("Successfully loaded FancyDialogs version %s".formatted(getDescription().getVersion()));
}

View File

@@ -0,0 +1,55 @@
package com.fancyinnovations.fancydialogs.registry;
import com.fancyinnovations.fancydialogs.FancyDialogsPlugin;
import com.fancyinnovations.fancydialogs.api.data.DialogBodyData;
import com.fancyinnovations.fancydialogs.api.data.DialogButton;
import com.fancyinnovations.fancydialogs.api.data.DialogData;
import com.fancyinnovations.fancydialogs.dialog.DialogImpl;
import com.fancyinnovations.fancydialogs.storage.DialogStorage;
import java.io.File;
import java.util.List;
public class DefaultDialogs {
private static final DialogRegistry registry = FancyDialogsPlugin.get().getDialogRegistry();
private static final DialogStorage storage = FancyDialogsPlugin.get().getDialogStorage();
public static void registerDefaultDialogs() {
File dialogsFolder = new File("plugins/FancyDialogs/data/dialogs");
if (dialogsFolder.exists()) {
return;
}
dialogsFolder.mkdirs();
welcomeDialog();
}
private static void welcomeDialog() {
DialogData data = new DialogData(
"welcome_to_fancydialogs_dialog",
"Welcome to FancyDialogs",
"Welcome to FancyDialogs",
false,
List.of(
new DialogBodyData("Welcome to FancyDialogs! This is a sample dialog to get you started.")
),
List.of(
new DialogButton(
"Close",
"Close the dialog",
"close_dialog"
)
)
);
register(data);
}
private static void register(DialogData dialogData) {
DialogImpl dialog = new DialogImpl(dialogData.id(), dialogData);
storage.save(dialogData);
registry.register(dialog);
}
}