From 1d70b5019fec1ecd2ced3228d459a046336e76a2 Mon Sep 17 00:00:00 2001 From: milimoe Date: Tue, 12 Dec 2023 00:36:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E5=BA=94=E8=AF=A5=E6=98=AF=E4=BD=BF=E7=94=A8Implement=E7=9A=84?= =?UTF-8?q?=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/RunTimeController.cs | 7 ----- FunGame.Desktop/UI/Main/Main.cs | 27 ++++++++++++------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/FunGame.Desktop/Controller/RunTimeController.cs b/FunGame.Desktop/Controller/RunTimeController.cs index bcb844b..4d8b111 100644 --- a/FunGame.Desktop/Controller/RunTimeController.cs +++ b/FunGame.Desktop/Controller/RunTimeController.cs @@ -107,13 +107,6 @@ namespace Milimoe.FunGame.Desktop.Controller throw new CanNotConnectException(); } Config.FunGame_isRetrying = true; - // 如果服务器地址为空需要获取一次地址 - if (ip == "" || port <= 0) - { - (ip, port) = GetServerAddress(); - RunTime.Session.Server_IP = ip; - RunTime.Session.Server_Port = port; - } return true; } else diff --git a/FunGame.Desktop/UI/Main/Main.cs b/FunGame.Desktop/UI/Main/Main.cs index f21b4a7..c2eb77d 100644 --- a/FunGame.Desktop/UI/Main/Main.cs +++ b/FunGame.Desktop/UI/Main/Main.cs @@ -79,7 +79,7 @@ namespace Milimoe.FunGame.Desktop.UI ComboGameMap.SelectedIndex = 0; }); // 自动连接服务器 - if (Config.FunGame_isAutoConnect) InvokeController_Connect(); + if (Config.FunGame_isAutoConnect) InvokeController_Connect(true); }); } @@ -1194,7 +1194,7 @@ namespace Milimoe.FunGame.Desktop.UI { if (ShowMessage(ShowMessageType.OKCancel, "你确定要退出登录吗?", "退出登录") == MessageResult.OK) { - if (MainController == null || !await LogOut()) + if (MainController == null || !await InvokeController_LogOut()) ShowMessage(ShowMessageType.Warning, "请求无效:退出登录失败!"); } }); @@ -1671,7 +1671,7 @@ namespace Milimoe.FunGame.Desktop.UI { CurrentRetryTimes = -1; Config.FunGame_isAutoRetry = true; - InvokeController_Connect(); + InvokeController_Connect(true); } break; case Constant.FunGame_Disconnect: @@ -1681,7 +1681,7 @@ namespace Milimoe.FunGame.Desktop.UI bool SuccessLogOut = false; TaskUtility.NewTask(async () => { - if (await LogOut()) SuccessLogOut = true; + if (await InvokeController_LogOut()) SuccessLogOut = true; }).OnCompleted(() => { if (SuccessLogOut) InvokeController_Disconnect(); @@ -1704,12 +1704,12 @@ namespace Milimoe.FunGame.Desktop.UI int port; if (addr.Length < 2) { - ip = addr[0]; + ip = addr[0].Trim(); port = 22222; } else if (addr.Length < 3) { - ip = addr[0]; + ip = addr[0].Trim(); port = Convert.ToInt32(addr[1]); } else @@ -1760,16 +1760,23 @@ namespace Milimoe.FunGame.Desktop.UI /// /// 连接服务器,并处理事件 /// + /// 如果为false,则使用上一次连接的服务器的地址 /// - private void InvokeController_Connect() + private void InvokeController_Connect(bool original = false) { + if (original) + { + // 使用Implement中的原始服务器地址,下面会重新获取 + (RunTime.Session.Server_IP, RunTime.Session.Server_Port) = ("", 0); + } ConnectEventArgs EventArgs = new(RunTime.Session.Server_IP, RunTime.Session.Server_Port); ConnectResult result = ConnectResult.CanNotConnect; TaskUtility.NewTask(() => { - if (RunTime.Controller != null) + // 如果服务器地址为空需要获取一次地址 + if (RunTime.Controller != null && RunTime.Session.Server_IP.Trim() == "" && RunTime.Session.Server_Port == 0) { (RunTime.Session.Server_IP, RunTime.Session.Server_Port) = RunTime.Controller.GetServerAddress(); } @@ -1823,7 +1830,7 @@ namespace Milimoe.FunGame.Desktop.UI if (Usercfg.LoginUser.Id != 0) { - await LogOut(); + await InvokeController_LogOut(); } result = RunTime.Controller?.Disconnect() ?? false; @@ -2035,7 +2042,7 @@ namespace Milimoe.FunGame.Desktop.UI /// 退出登录 /// /// - public async Task LogOut() + public async Task InvokeController_LogOut() { GeneralEventArgs EventArgs = new(); bool result = false;