@page "/" @using DiscordBotCore.Others.Exceptions @using DiscordBotWebUI.Components.Pages.Setup @using DiscordBotWebUI.DiscordBot @inject DialogService DialogService @code { private string? _TextValue; private DiscordBotStartup _DiscordBotStartup = null!; protected override async Task OnAfterRenderAsync(bool firstRender) { // Only run after the first render if(!firstRender) { return; } _DiscordBotStartup = new DiscordBotStartup {RequirementsSolver = FixModules}; await _DiscordBotStartup.CreateApplication(); } private async Task FixModules(ModuleRequirement requirements) { if(!requirements.RequireAny) { return; } await DialogService.OpenAsync("Some required modules are not installed. Please install before using the bot ...", new Dictionary() { {"Requirements", requirements} }, new DialogOptions() { Width = "75%", Height = "75%" }); } private async void Initialize() { _DiscordBotStartup.Log += async (str, type) => { _TextValue += $"[{type}] {str} \n"; await InvokeAsync(StateHasChanged); }; dynamic result = _DiscordBotStartup.LoadComponents(); if (!result) { result = await DialogService.OpenAsync("Please complete this setup before starting the bot", new Dictionary() { {"OnSaveChanged", () => {DialogService.Close(true);}} }); if (result != true) { Environment.Exit(0); } } await _DiscordBotStartup.PrepareBot(); await _DiscordBotStartup.RefreshPlugins(false); } }