diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/FancyDialogsPlugin.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/FancyDialogsPlugin.java index 1b41eac8..bb08addf 100644 --- a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/FancyDialogsPlugin.java +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/FancyDialogsPlugin.java @@ -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 = 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 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())); } diff --git a/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/registry/DefaultDialogs.java b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/registry/DefaultDialogs.java new file mode 100644 index 00000000..3ea69d22 --- /dev/null +++ b/plugins/fancydialogs/src/main/java/com/fancyinnovations/fancydialogs/registry/DefaultDialogs.java @@ -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); + } + +}