From 247090341f0e1ec455d36ae0f23451452b892fc3 Mon Sep 17 00:00:00 2001 From: milimoe <110188673+milimoe@users.noreply.github.com> Date: Fri, 30 Jun 2023 13:56:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=BE=E5=9B=9E=E5=AF=86=E7=A0=81=20?= =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E9=83=A8=E5=88=86=20(#37)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 常量更新 * 添加枚举:Login_UpdatePassword * 添加Hashtable反序列化方法 Server那边没有Request对象 --------- Co-authored-by: Yezi <53083103+yeziuku@users.noreply.github.com> --- Api/Transmittal/DataRequest.cs | 36 +++++++++++++++- Library/Common/Network/Socket.cs | 6 +-- Library/Constant/ConstantSet.cs | 59 +++++++++++++++++--------- Library/Constant/FunGameInfo.cs | 4 +- Library/Constant/General.cs | 3 ++ Library/Constant/MethodEnum.cs | 3 ++ Library/Constant/ResultEnum.cs | 5 ++- Library/Constant/StateEnum.cs | 5 ++- Library/Constant/TypeEnum.cs | 61 +++++++++++++++------------ Library/SQLScript/Entity/UserQuery.cs | 5 +++ Model/RunTime.cs | 8 ++-- Service/SocketManager.cs | 36 ++++++++-------- 12 files changed, 154 insertions(+), 77 deletions(-) diff --git a/Api/Transmittal/DataRequest.cs b/Api/Transmittal/DataRequest.cs index 85e76e9..fcaf462 100644 --- a/Api/Transmittal/DataRequest.cs +++ b/Api/Transmittal/DataRequest.cs @@ -3,7 +3,6 @@ using Milimoe.FunGame.Core.Library.Common.Architecture; using Milimoe.FunGame.Core.Library.Common.Network; using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Exception; -using Milimoe.FunGame.Core.Service; namespace Milimoe.FunGame.Core.Api.Transmittal { @@ -88,7 +87,7 @@ namespace Milimoe.FunGame.Core.Api.Transmittal /// public T? GetResult(string key) { - return JsonManager.GetObject(Worker.ResultData, key); + return GetHashtableJsonObject(Worker.ResultData, key); } private class Request : BaseModel @@ -158,5 +157,38 @@ namespace Milimoe.FunGame.Core.Api.Transmittal } } } + + /// + /// 获取Type的等效字符串 + /// + /// + /// + public static string GetTypeString(DataRequestType type) + { + return type switch + { + DataRequestType.Main_GetNotice => DataRequestSet.Main_GetNotice, + DataRequestType.Main_CreateRoom => DataRequestSet.Main_CreateRoom, + DataRequestType.Main_UpdateRoom => DataRequestSet.Main_UpdateRoom, + DataRequestType.Reg_GetRegVerifyCode => DataRequestSet.Reg_GetRegVerifyCode, + DataRequestType.Login_GetFindPasswordVerifyCode => DataRequestSet.Login_GetFindPasswordVerifyCode, + DataRequestType.Login_UpdatePassword => DataRequestSet.Login_UpdatePassword, + DataRequestType.Room_GetRoomSettings => DataRequestSet.Room_GetRoomSettings, + DataRequestType.Room_GetRoomPlayerCount => DataRequestSet.Room_GetRoomPlayerCount, + _ => DataRequestSet.UnKnown + }; + } + + /// + /// 反序列化Hashtable中的Json对象 + /// + /// + /// + /// + /// + public static T? GetHashtableJsonObject(Hashtable hashtable, string key) + { + return Utility.NetworkUtility.JsonDeserializeFromHashtable(hashtable, key); + } } } diff --git a/Library/Common/Network/Socket.cs b/Library/Common/Network/Socket.cs index aa6ff59..862d073 100644 --- a/Library/Common/Network/Socket.cs +++ b/Library/Common/Network/Socket.cs @@ -59,7 +59,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Network try { SocketObject result = SocketManager.Receive(); - if (result.SocketType == SocketMessageType.HeartBeat) + if (result.SocketType == SocketMessageType.RunTime_HeartBeat) { if (WaitHeartBeatReply != null && !WaitHeartBeatReply.IsCompleted) WaitHeartBeatReply.Wait(1); _HeartBeatFaileds = 0; @@ -79,7 +79,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Network SocketObject[] result = SocketManager.ReceiveArray(); foreach (SocketObject obj in result) { - if (obj.SocketType == SocketMessageType.HeartBeat) + if (obj.SocketType == SocketMessageType.RunTime_HeartBeat) { if (WaitHeartBeatReply != null && !WaitHeartBeatReply.IsCompleted) WaitHeartBeatReply.Wait(1); _HeartBeatFaileds = 0; @@ -155,7 +155,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Network { if (!SendingHeartBeat) _SendingHeartBeat= true; // 发送心跳包 - if (Send(SocketMessageType.HeartBeat) == SocketResult.Success) + if (Send(SocketMessageType.RunTime_HeartBeat) == SocketResult.Success) { WaitHeartBeatReply = Task.Run(() => { diff --git a/Library/Constant/ConstantSet.cs b/Library/Constant/ConstantSet.cs index 30b9c85..4f1d572 100644 --- a/Library/Constant/ConstantSet.cs +++ b/Library/Constant/ConstantSet.cs @@ -1,4 +1,7 @@ -namespace Milimoe.FunGame.Core.Library.Constant +/** + * 此文件用于保存字符串常量(String Set) + */ +namespace Milimoe.FunGame.Core.Library.Constant { public class InterfaceSet { @@ -31,24 +34,42 @@ public const string Socket = "Socket"; public const string Unknown = "Unknown"; public const string DataRequest = "DataRequest"; - public const string Connect = "Connect"; - public const string GetNotice = "GetNotice"; - public const string Login = "Login"; - public const string CheckLogin = "CheckLogin"; - public const string Logout = "Logout"; - public const string Disconnect = "Disconnect"; - public const string HeartBeat = "HeartBeat"; - public const string IntoRoom = "IntoRoom"; - public const string QuitRoom = "QuitRoom"; - public const string Chat = "Chat"; - public const string Reg = "Reg"; - public const string CheckReg = "CheckReg"; - public const string CreateRoom = "CreateRoom"; - public const string UpdateRoom = "UpdateRoom"; - public const string ChangeRoomSetting = "ChangeRoomSetting"; - public const string MatchRoom = "MatchRoom"; - public const string UpdateRoomMaster = "UpdateRoomMaster"; - public const string GetRoomPlayerCount = "GetRoomPlayerCount"; + public const string RunTime_Connect = "RunTime_Connect"; + public const string RunTime_Reg = "RunTime_Reg"; + public const string RunTime_CheckReg = "RunTime_CheckReg"; + public const string RunTime_Login = "RunTime_Login"; + public const string RunTime_CheckLogin = "RunTime_CheckLogin"; + public const string RunTime_Logout = "RunTime_Logout"; + public const string RunTime_Disconnect = "RunTime_Disconnect"; + public const string RunTime_HeartBeat = "RunTime_HeartBeat"; + public const string Main_GetNotice = "Main_GetNotice"; + public const string Main_IntoRoom = "Main_IntoRoom"; + public const string Main_QuitRoom = "Main_QuitRoom"; + public const string Main_Chat = "Main_Chat"; + public const string Main_CreateRoom = "Main_CreateRoom"; + public const string Main_UpdateRoom = "Main_UpdateRoom"; + public const string Main_MatchRoom = "Main_MatchRoom"; + public const string Room_ChangeRoomSetting = "Room_ChangeRoomSetting"; + public const string Room_UpdateRoomMaster = "Room_UpdateRoomMaster"; + public const string Room_GetRoomPlayerCount = "Room_GetRoomPlayerCount"; + } + + /// + /// 需要同步更新 + /// Milimoe.FunGame.Core.Library.Constant.DataRequestType, + /// Milimoe.FunGame.Core.Api.Transmittal.DataRequest.GetTypeString(DataRequestType type) + /// + public class DataRequestSet + { + public const string UnKnown = "UnKnown"; + public const string Main_GetNotice = "Main_GetNotice"; + public const string Main_CreateRoom = "Main_CreateRoom"; + public const string Main_UpdateRoom = "Main_UpdateRoom"; + public const string Reg_GetRegVerifyCode = "Reg_GetRegVerifyCode"; + public const string Login_GetFindPasswordVerifyCode = "Login_GetFindPasswordVerifyCode"; + public const string Login_UpdatePassword = "Login_UpdatePassword"; + public const string Room_GetRoomSettings = "Room_GetRoomSettings"; + public const string Room_GetRoomPlayerCount = "Room_GetRoomPlayerCount"; } public class ReflectionSet diff --git a/Library/Constant/FunGameInfo.cs b/Library/Constant/FunGameInfo.cs index ce0fdbc..34a25a1 100644 --- a/Library/Constant/FunGameInfo.cs +++ b/Library/Constant/FunGameInfo.cs @@ -11,7 +11,7 @@ FunGame_Server } - public const string FunGame_CopyRight = @"©2023 Mili.cyou. 米粒的糖果屋"; + public const string FunGame_CopyRight = @"©2023 Milimoe. 米粒的糖果屋"; private const string FunGame_Core = "FunGame Core"; private const string FunGame_Core_Api = "FunGame Core Api"; @@ -33,7 +33,7 @@ FunGame.FunGame_Server => FunGame_Server, _ => "" }; - return type + " [ 版本: " + FunGame_Version + FunGame_VersionPatch + " ]\n" + (type.Equals(FunGame_Desktop) ? @"©" : "(C)") + "2023 Mili.cyou. 保留所有权利\n"; + return type + " [ 版本: " + FunGame_Version + FunGame_VersionPatch + " ]\n" + (type.Equals(FunGame_Desktop) ? @"©" : "(C)") + "2023 Milimoe. 保留所有权利\n"; } /** diff --git a/Library/Constant/General.cs b/Library/Constant/General.cs index 7003166..f5b815f 100644 --- a/Library/Constant/General.cs +++ b/Library/Constant/General.cs @@ -1,6 +1,9 @@ using System.Text; using Milimoe.FunGame.Core.Entity; +/** + * 此文件保存常用的对象常量 + */ namespace Milimoe.FunGame.Core.Library.Constant { public class General diff --git a/Library/Constant/MethodEnum.cs b/Library/Constant/MethodEnum.cs index 32a9676..edbfc57 100644 --- a/Library/Constant/MethodEnum.cs +++ b/Library/Constant/MethodEnum.cs @@ -1,3 +1,6 @@ +/** + * ļMethodö + */ namespace Milimoe.FunGame.Core.Library.Constant { public enum InterfaceMethod diff --git a/Library/Constant/ResultEnum.cs b/Library/Constant/ResultEnum.cs index ac57cce..c1ff875 100644 --- a/Library/Constant/ResultEnum.cs +++ b/Library/Constant/ResultEnum.cs @@ -1,4 +1,7 @@ -namespace Milimoe.FunGame.Core.Library.Constant +/** + * 此文件保存Result(结果)的枚举 + */ +namespace Milimoe.FunGame.Core.Library.Constant { public enum MessageResult { diff --git a/Library/Constant/StateEnum.cs b/Library/Constant/StateEnum.cs index 5078d64..e47ec91 100644 --- a/Library/Constant/StateEnum.cs +++ b/Library/Constant/StateEnum.cs @@ -1,4 +1,7 @@ -namespace Milimoe.FunGame.Core.Library.Constant +/** + * 此文件保存State(状态)的枚举 + */ +namespace Milimoe.FunGame.Core.Library.Constant { public enum StartMatchState { diff --git a/Library/Constant/TypeEnum.cs b/Library/Constant/TypeEnum.cs index 4450c5b..29e437c 100644 --- a/Library/Constant/TypeEnum.cs +++ b/Library/Constant/TypeEnum.cs @@ -1,4 +1,7 @@ -namespace Milimoe.FunGame.Core.Library.Constant +/** + * 此文件保存Type(类型)的枚举 + */ +namespace Milimoe.FunGame.Core.Library.Constant { public enum FormType { @@ -56,37 +59,41 @@ { Unknown, DataRequest, - Connect, - GetNotice, - Login, - CheckLogin, - Logout, - ForceLogout, - Disconnect, - HeartBeat, - IntoRoom, - QuitRoom, - Chat, - Reg, - CheckReg, - CreateRoom, - UpdateRoom, - ChangeRoomSetting, - MatchRoom, - UpdateRoomMaster, - GetRoomPlayerCount + RunTime_Connect, + RunTime_Reg, + RunTime_CheckReg, + RunTime_Login, + RunTime_CheckLogin, + RunTime_Logout, + RunTime_ForceLogout, + RunTime_Disconnect, + RunTime_HeartBeat, + Main_GetNotice, + Main_IntoRoom, + Main_QuitRoom, + Main_Chat, + Main_CreateRoom, + Main_UpdateRoom, + Main_MatchRoom, + Room_ChangeRoomSetting, + Room_UpdateRoomMaster, + Room_GetRoomPlayerCount } + /// + /// 需要同步更新Milimoe.FunGame.Core.Library.Constant.DataRequestSet + /// public enum DataRequestType { UnKnown, - GetNotice, - GetRegVerifyCode, - CreateRoom, - UpdateRoom, - GetRoomSettings, - GetRoomPlayerCount, - GetFindPasswordVerifyCode + Main_GetNotice, + Main_CreateRoom, + Main_UpdateRoom, + Reg_GetRegVerifyCode, + Login_GetFindPasswordVerifyCode, + Login_UpdatePassword, + Room_GetRoomSettings, + Room_GetRoomPlayerCount } public enum SocketRuntimeType diff --git a/Library/SQLScript/Entity/UserQuery.cs b/Library/SQLScript/Entity/UserQuery.cs index c3bbe76..f494158 100644 --- a/Library/SQLScript/Entity/UserQuery.cs +++ b/Library/SQLScript/Entity/UserQuery.cs @@ -55,6 +55,11 @@ return $"{Constant.Command_Update} {TableName} {Constant.Command_Set} {Column_LastTime} = '{DateTime.Now}', {Column_LastIP} = '{IP}' {Constant.Command_Where} {Column_Username} = '{Username}'"; } + public static string Update_Password(string Username, string Password) + { + return $"{Constant.Command_Update} {TableName} {Constant.Command_Set} {Column_Password} = '{Password}' {Constant.Command_Where} {Column_Username} = '{Username}'"; + } + public static string Update_GameTime(string Username, int GameTimeMinutes) { return $"{Constant.Command_Update} {TableName} {Constant.Command_Set} {Column_GameTime} = {Column_GameTime} + {GameTimeMinutes} {Constant.Command_Where} {Column_Username} = '{Username}'"; diff --git a/Model/RunTime.cs b/Model/RunTime.cs index 41ee52c..b18c988 100644 --- a/Model/RunTime.cs +++ b/Model/RunTime.cs @@ -53,7 +53,7 @@ namespace Milimoe.FunGame.Core.Model try { - result = _Socket?.Send(SocketMessageType.Disconnect, "") == SocketResult.Success; + result = _Socket?.Send(SocketMessageType.RunTime_Disconnect, "") == SocketResult.Success; } catch (Exception e) { @@ -196,15 +196,15 @@ namespace Milimoe.FunGame.Core.Model result = type; switch (type) { - case SocketMessageType.Connect: + case SocketMessageType.RunTime_Connect: if (!SocketHandler_Connect(ServerMessage)) return SocketMessageType.Unknown; break; - case SocketMessageType.Disconnect: + case SocketMessageType.RunTime_Disconnect: SocketHandler_Disconnect(ServerMessage); break; - case SocketMessageType.HeartBeat: + case SocketMessageType.RunTime_HeartBeat: if (_Socket != null && _Socket.Connected) { SocketHandler_HeartBeat(ServerMessage); diff --git a/Service/SocketManager.cs b/Service/SocketManager.cs index 4f66e92..24a652c 100644 --- a/Service/SocketManager.cs +++ b/Service/SocketManager.cs @@ -257,24 +257,24 @@ namespace Milimoe.FunGame.Core.Service return type switch { SocketMessageType.DataRequest => SocketSet.DataRequest, - SocketMessageType.Connect => SocketSet.Connect, - SocketMessageType.GetNotice => SocketSet.GetNotice, - SocketMessageType.Login => SocketSet.Login, - SocketMessageType.CheckLogin => SocketSet.CheckLogin, - SocketMessageType.Logout => SocketSet.Logout, - SocketMessageType.Disconnect => SocketSet.Disconnect, - SocketMessageType.HeartBeat => SocketSet.HeartBeat, - SocketMessageType.IntoRoom => SocketSet.IntoRoom, - SocketMessageType.QuitRoom => SocketSet.QuitRoom, - SocketMessageType.Chat => SocketSet.Chat, - SocketMessageType.Reg => SocketSet.Reg, - SocketMessageType.CheckReg => SocketSet.CheckReg, - SocketMessageType.CreateRoom => SocketSet.CreateRoom, - SocketMessageType.UpdateRoom => SocketSet.UpdateRoom, - SocketMessageType.ChangeRoomSetting => SocketSet.ChangeRoomSetting, - SocketMessageType.MatchRoom => SocketSet.MatchRoom, - SocketMessageType.UpdateRoomMaster => SocketSet.UpdateRoomMaster, - SocketMessageType.GetRoomPlayerCount => SocketSet.GetRoomPlayerCount, + SocketMessageType.RunTime_Connect => SocketSet.RunTime_Connect, + SocketMessageType.RunTime_Reg => SocketSet.RunTime_Reg, + SocketMessageType.RunTime_CheckReg => SocketSet.RunTime_CheckReg, + SocketMessageType.RunTime_Login => SocketSet.RunTime_Login, + SocketMessageType.RunTime_CheckLogin => SocketSet.RunTime_CheckLogin, + SocketMessageType.RunTime_Logout => SocketSet.RunTime_Logout, + SocketMessageType.RunTime_Disconnect => SocketSet.RunTime_Disconnect, + SocketMessageType.RunTime_HeartBeat => SocketSet.RunTime_HeartBeat, + SocketMessageType.Main_GetNotice => SocketSet.Main_GetNotice, + SocketMessageType.Main_IntoRoom => SocketSet.Main_IntoRoom, + SocketMessageType.Main_QuitRoom => SocketSet.Main_QuitRoom, + SocketMessageType.Main_Chat => SocketSet.Main_Chat, + SocketMessageType.Main_CreateRoom => SocketSet.Main_CreateRoom, + SocketMessageType.Main_UpdateRoom => SocketSet.Main_UpdateRoom, + SocketMessageType.Main_MatchRoom => SocketSet.Main_MatchRoom, + SocketMessageType.Room_ChangeRoomSetting => SocketSet.Room_ChangeRoomSetting, + SocketMessageType.Room_UpdateRoomMaster => SocketSet.Room_UpdateRoomMaster, + SocketMessageType.Room_GetRoomPlayerCount => SocketSet.Room_GetRoomPlayerCount, _ => SocketSet.Unknown, }; }