Fixed DiscordBotUI

This commit is contained in:
2024-05-17 12:36:02 +03:00
parent 152e09f4af
commit 8dbbfbfaef
9 changed files with 43 additions and 41 deletions

View File

@@ -78,7 +78,6 @@ public class Program
private static async Task LoadComponents(string[] args) private static async Task LoadComponents(string[] args)
{ {
await Application.CreateApplication(); await Application.CreateApplication();
Application.CurrentApplication.ApplicationEnvironmentVariables["Version"] = Assembly.GetExecutingAssembly().GetName().Version.ToString(); Application.CurrentApplication.ApplicationEnvironmentVariables["Version"] = Assembly.GetExecutingAssembly().GetName().Version.ToString();
AppUpdater updater = new(); AppUpdater updater = new();

View File

@@ -9,6 +9,7 @@ namespace DiscordBotCore.Others.Actions;
public class InternalActionManager public class InternalActionManager
{ {
public Dictionary<string, ICommandAction> Actions = new(); public Dictionary<string, ICommandAction> Actions = new();
private readonly ActionsLoader _loader; private readonly ActionsLoader _loader;
public InternalActionManager(string path, string extension) public InternalActionManager(string path, string extension)
@@ -19,6 +20,7 @@ public class InternalActionManager
public async Task Initialize() public async Task Initialize()
{ {
var loadedActions = await _loader.Load(); var loadedActions = await _loader.Load();
if (loadedActions == null) if (loadedActions == null)
return; return;
foreach (var action in loadedActions) foreach (var action in loadedActions)

View File

@@ -1,9 +1,9 @@
using System.Collections.Generic; using System.Collections.Generic;
using Discord; using Discord;
using PluginManager; using DiscordBotCore;
using PluginManager.Interfaces; using DiscordBotCore.Interfaces;
using PluginManager.Loaders; using DiscordBotCore.Loaders;
using PluginManager.Others; using DiscordBotCore.Others;
namespace DiscordBotUI.Bot.Commands; namespace DiscordBotUI.Bot.Commands;
@@ -79,7 +79,7 @@ internal class Help: DBCommand
); );
if (cmd == null) return null; if (cmd == null) return null;
embedBuilder.AddField("Usage", Config.Application.CurrentApplication.ApplicationEnvironmentVariables["prefix"] + cmd.Usage); embedBuilder.AddField("Usage", DiscordBotCore.Application.CurrentApplication.ApplicationEnvironmentVariables["prefix"] + cmd.Usage);
embedBuilder.AddField("Description", cmd.Description); embedBuilder.AddField("Description", cmd.Description);
if (cmd.Aliases is null) if (cmd.Aliases is null)
return embedBuilder; return embedBuilder;

View File

@@ -1,9 +1,9 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using PluginManager; using DiscordBotCore;
using PluginManager.Interfaces; using DiscordBotCore.Interfaces;
using PluginManager.Loaders; using DiscordBotCore.Loaders;
using PluginManager.Others; using DiscordBotCore.Others;
namespace DiscordBotUI.Bot namespace DiscordBotUI.Bot
{ {
@@ -18,15 +18,15 @@ namespace DiscordBotUI.Bot
public async Task InitializeBot() public async Task InitializeBot()
{ {
string token = Config.Application.CurrentApplication.ApplicationEnvironmentVariables["token"]; string token = DiscordBotCore.Application.CurrentApplication.ApplicationEnvironmentVariables["token"];
string prefix = Config.Application.CurrentApplication.ApplicationEnvironmentVariables["prefix"]; string prefix = DiscordBotCore.Application.CurrentApplication.ApplicationEnvironmentVariables["prefix"];
PluginManager.Bot.Boot discordBooter = new PluginManager.Bot.Boot(token, prefix); DiscordBotCore.Bot.Boot discordBooter = new DiscordBotCore.Bot.Boot(token, prefix);
await discordBooter.Awake(); await discordBooter.Awake();
} }
public async Task LoadPlugins() public async Task LoadPlugins()
{ {
var loader = new PluginLoader(Config.DiscordBot.Client); var loader = new PluginLoader(DiscordBotCore.Application.CurrentApplication.DiscordBotClient.Client);
loader.OnCommandLoaded += (data) => loader.OnCommandLoaded += (data) =>
{ {

View File

@@ -20,6 +20,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\PluginManager\DiscordBotCore.csproj" /> <ProjectReference Include="..\..\DiscordBotCore\DiscordBotCore.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -7,8 +7,9 @@ using Avalonia.Threading;
using DiscordBotUI.Bot; using DiscordBotUI.Bot;
using PluginManager; using DiscordBotCore;
using PluginManager.Others.Logger; using DiscordBotCore.Others.Logger;
using DiscordBotCore.Interfaces.Logger;
namespace DiscordBotUI.Views; namespace DiscordBotUI.Views;
@@ -26,31 +27,31 @@ public partial class HomePage : Window
private async void HomePage_Loaded(object? sender, Avalonia.Interactivity.RoutedEventArgs e) private async void HomePage_Loaded(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
{ {
await Config.Initialize(); await DiscordBotCore.Application.CreateApplication();
if(!Config.Application.CurrentApplication.ApplicationEnvironmentVariables.ContainsAllKeys("token", "prefix")) if(!DiscordBotCore.Application.CurrentApplication.ApplicationEnvironmentVariables.ContainsAllKeys("token", "prefix"))
{ {
await new SettingsPage().ShowDialog(this); await new SettingsPage().ShowDialog(this);
if (string.IsNullOrWhiteSpace(Config.Application.CurrentApplication.ApplicationEnvironmentVariables["token"]) || string.IsNullOrWhiteSpace(Config.Application.CurrentApplication.ApplicationEnvironmentVariables["prefix"])) if (string.IsNullOrWhiteSpace(DiscordBotCore.Application.CurrentApplication.ApplicationEnvironmentVariables["token"]) || string.IsNullOrWhiteSpace(DiscordBotCore.Application.CurrentApplication.ApplicationEnvironmentVariables["prefix"]))
Environment.Exit(-1); Environment.Exit(-1);
} }
textBoxToken.Text = Config.Application.CurrentApplication.ApplicationEnvironmentVariables["token"]; textBoxToken.Text = DiscordBotCore.Application.CurrentApplication.ApplicationEnvironmentVariables["token"];
textBoxPrefix.Text = Config.Application.CurrentApplication.ApplicationEnvironmentVariables["prefix"]; textBoxPrefix.Text = DiscordBotCore.Application.CurrentApplication.ApplicationEnvironmentVariables["prefix"];
textBoxServerId.Text = Config.Application.CurrentApplication.ApplicationEnvironmentVariables["ServerID"]; textBoxServerId.Text = DiscordBotCore.Application.CurrentApplication.ApplicationEnvironmentVariables["ServerID"];
} }
private void SetTextToTB(Log logMessage) private void SetTextToTB(ILogMessage logMessage)
{ {
logTextBlock.Text += $"[{logMessage.Type}] [{logMessage.ThrowTime.ToShortTimeString()}] {logMessage.Message}\n"; logTextBlock.Text += $"[{logMessage.LogMessageType}] [{logMessage.ThrowTime.ToShortTimeString()}] {logMessage.Message}\n";
} }
private async void ButtonStartBotClick(object? sender, Avalonia.Interactivity.RoutedEventArgs e) private async void ButtonStartBotClick(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
{ {
Application.CurrentApplication.Logger.OnLog += async (sender, logMessage) => DiscordBotCore.Application.CurrentApplication.Logger.OnRawLog += async (sender, logMessage) =>
{ {
await Dispatcher.UIThread.InvokeAsync(() => SetTextToTB(logMessage), DispatcherPriority.Background); await Dispatcher.UIThread.InvokeAsync(() => SetTextToTB(logMessage), DispatcherPriority.Background);
}; };

View File

@@ -11,8 +11,8 @@ using Avalonia.Media;
using DiscordBotUI.ViewModels; using DiscordBotUI.ViewModels;
using PluginManager; using DiscordBotCore;
using PluginManager.Plugin; using DiscordBotCore.Plugin;
namespace DiscordBotUI.Views; namespace DiscordBotUI.Views;
@@ -30,9 +30,9 @@ public partial class PluginInstaller : Window
private async void OnPageLoaded(object? sender, RoutedEventArgs e) private async void OnPageLoaded(object? sender, RoutedEventArgs e)
{ {
if (Config.PluginsManager is null) return; if (DiscordBotCore.Application.CurrentApplication.PluginManager is null) return;
List<PluginOnlineInfo>? onlineInfos = await Config.PluginsManager.GetPluginsList(); List<PluginOnlineInfo>? onlineInfos = await DiscordBotCore.Application.CurrentApplication.PluginManager.GetPluginsList();
if(onlineInfos is null) return; if(onlineInfos is null) return;
@@ -52,11 +52,11 @@ public partial class PluginInstaller : Window
public async void InstallPlugin(string name) public async void InstallPlugin(string name)
{ {
PluginOnlineInfo? info = await Config.PluginsManager.GetPluginDataByName(name); PluginOnlineInfo? info = await DiscordBotCore.Application.CurrentApplication.PluginManager.GetPluginDataByName(name);
if(info is null) return; if(info is null) return;
await Config.PluginsManager.InstallPlugin(info, null); await DiscordBotCore.Application.CurrentApplication.PluginManager.InstallPlugin(info, null);
} }
} }

View File

@@ -6,7 +6,7 @@ using Avalonia.Interactivity;
using DiscordBotUI.ViewModels; using DiscordBotUI.ViewModels;
using PluginManager; using DiscordBotCore;
namespace DiscordBotUI.Views; namespace DiscordBotUI.Views;
@@ -24,9 +24,9 @@ public partial class PluginsPage: Window
private async void OnPageLoaded(object? sender, RoutedEventArgs e) private async void OnPageLoaded(object? sender, RoutedEventArgs e)
{ {
if (Config.PluginsManager is null) return; if (DiscordBotCore.Application.CurrentApplication.PluginManager is null) return;
var plugins = await Config.PluginsManager.GetInstalledPlugins(); var plugins = await DiscordBotCore.Application.CurrentApplication.PluginManager.GetInstalledPlugins();
var localList = new List<Plugin>(); var localList = new List<Plugin>();
foreach (var plugin in plugins) foreach (var plugin in plugins)
{ {

View File

@@ -1,6 +1,6 @@
using Avalonia.Controls; using Avalonia.Controls;
using PluginManager; using DiscordBotCore;
namespace DiscordBotUI.Views; namespace DiscordBotUI.Views;
@@ -30,13 +30,13 @@ public partial class SettingsPage : Window
return; return;
} }
Config.Application.CurrentApplication.ApplicationEnvironmentVariables.Add("token", token); DiscordBotCore.Application.CurrentApplication.ApplicationEnvironmentVariables.Add("token", token);
Config.Application.CurrentApplication.ApplicationEnvironmentVariables.Add("prefix", botPrefix); DiscordBotCore.Application.CurrentApplication.ApplicationEnvironmentVariables.Add("prefix", botPrefix);
Config.Application.CurrentApplication.ApplicationEnvironmentVariables.Add("ServerID", serverId); DiscordBotCore.Application.CurrentApplication.ApplicationEnvironmentVariables.Add("ServerID", serverId);
await Config.Application.CurrentApplication.ApplicationEnvironmentVariables.SaveToFile(); await DiscordBotCore.Application.CurrentApplication.ApplicationEnvironmentVariables.SaveToFile();
Application.CurrentApplication.Logger.Log("Config Saved"); DiscordBotCore.Application.CurrentApplication.Logger.Log("Config Saved", this);
Close(); Close();