From 950ae5e467bb4337276169725d96d3a40b3158b7 Mon Sep 17 00:00:00 2001 From: milimoe Date: Fri, 22 Sep 2023 00:30:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E6=8F=92=E4=BB=B6=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FunGame.Desktop/Model/RunTime.cs | 3 ++- FunGame.Desktop/UI/Main/Main.cs | 33 +++++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/FunGame.Desktop/Model/RunTime.cs b/FunGame.Desktop/Model/RunTime.cs index c1fe506..f325e71 100644 --- a/FunGame.Desktop/Model/RunTime.cs +++ b/FunGame.Desktop/Model/RunTime.cs @@ -1,17 +1,18 @@ using Milimoe.FunGame.Core.Api.Transmittal; +using Milimoe.FunGame.Core.Library.Common.Plugin; using Milimoe.FunGame.Core.Library.Constant; namespace Milimoe.FunGame.Desktop.Model { /// /// 运行时单例 - /// 插件接口可以从这里拿Socket和窗体 /// public class RunTime { public static Core.Model.RoomList RoomList { get; } = new(); public static Core.Model.Session Session { get; } = new(); public static Core.Model.FunGameConfig Config { get; } = new(); + public static Dictionary Plugins { get; } = new(); public static Core.Library.Common.Network.Socket? Socket { get; set; } = null; public static Controller.RunTimeController? Controller { get; set; } = null; public static UI.Main? Main { get; set; } = null; diff --git a/FunGame.Desktop/UI/Main/Main.cs b/FunGame.Desktop/UI/Main/Main.cs index 224da55..83f0b30 100644 --- a/FunGame.Desktop/UI/Main/Main.cs +++ b/FunGame.Desktop/UI/Main/Main.cs @@ -2,6 +2,7 @@ using System.Diagnostics; using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Common.Event; +using Milimoe.FunGame.Core.Library.Common.Plugin; using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Exception; using Milimoe.FunGame.Desktop.Controller; @@ -64,6 +65,9 @@ namespace Milimoe.FunGame.Desktop.UI break; } } + // 加载插件 + LoadPlugins(); + // 自动连接服务器 if (Config.FunGame_isAutoConnect) InvokeController_Connect(); }); } @@ -831,6 +835,25 @@ namespace Milimoe.FunGame.Desktop.UI } } + /// + /// 加载所有插件 + /// + private void LoadPlugins() + { + try + { + PluginLoader.LoadPlugins(RunTime.Plugins); + foreach (KeyValuePair kv in RunTime.Plugins) + { + GetMessage("Load: " + kv.Value.Name); + } + } + catch (Exception e) + { + GetMessage(e.GetErrorInfo(), TimeType.None); + } + } + /// /// 显示FunGame信息 /// @@ -861,13 +884,21 @@ namespace Milimoe.FunGame.Desktop.UI /// private void ExitFunGame() { + bool exit = false; TaskUtility.StartAndAwaitTask(() => { if (ShowMessage(ShowMessageType.OKCancel, "你确定关闭游戏?", "退出") == MessageResult.OK) { InvokeController_Disconnect(); + exit = true; } - }).OnCompleted(() => Environment.Exit(0)); + }).OnCompleted(() => + { + if (exit) + { + Environment.Exit(0); + } + }); } #endregion