From a60b6d7b3f4098f7494fb5022d6df1c708cbe6a9 Mon Sep 17 00:00:00 2001 From: milimoe <110188673+milimoe@users.noreply.github.com> Date: Sat, 2 Dec 2023 01:19:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84Room=E7=9A=84=E6=9E=84?= =?UTF-8?q?=E9=80=A0=E5=87=BD=E6=95=B0=E5=92=8CSQLScript=20(#65)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Api/Factory/RoomFactory.cs | 4 ++-- Api/Utility/Factory.cs | 11 +++++++---- Docs/api.xml | 3 ++- Entity/System/Room.cs | 5 ++++- Library/Common/JsonConverter/RoomConverter.cs | 4 ++++ Library/SQLScript/Entity/RoomQuery.cs | 7 ++++--- 6 files changed, 23 insertions(+), 11 deletions(-) diff --git a/Api/Factory/RoomFactory.cs b/Api/Factory/RoomFactory.cs index 5bb1b33..acefc84 100644 --- a/Api/Factory/RoomFactory.cs +++ b/Api/Factory/RoomFactory.cs @@ -13,9 +13,9 @@ namespace Milimoe.FunGame.Core.Api.Factory return RoomFactory.Create(); } - public static Room Create(long Id = 0, string Roomid = "-1", DateTime? CreateTime = null, User? RoomMaster = null, RoomType RoomType = RoomType.All, string GameMode = "", string GameMap = "", RoomState RoomState = RoomState.Created, string Password = "") + public static Room Create(long Id = 0, string Roomid = "-1", DateTime? CreateTime = null, User? RoomMaster = null, RoomType RoomType = RoomType.All, string GameMode = "", string GameMap = "", RoomState RoomState = RoomState.Created, bool IsRank = false, string Password = "") { - return new Room(Id, Roomid, CreateTime, RoomMaster, RoomType, GameMode, GameMap, RoomState, Password); + return new Room(Id, Roomid, CreateTime, RoomMaster, RoomType, GameMode, GameMap, RoomState, IsRank, Password); } } } diff --git a/Api/Utility/Factory.cs b/Api/Utility/Factory.cs index 96ff2d5..ecb5e7c 100644 --- a/Api/Utility/Factory.cs +++ b/Api/Utility/Factory.cs @@ -72,11 +72,12 @@ namespace Milimoe.FunGame.Core.Api.Utility /// 游戏模组 /// /// 房间状态 + /// /// 房间密码 /// - public static Room GetRoom(long Id = 0, string Roomid = "-1", DateTime? CreateTime = null, User? RoomMaster = null, RoomType RoomType = RoomType.All, string GameMode = "", string GameMap = "", RoomState RoomState = RoomState.Created, string Password = "") + public static Room GetRoom(long Id = 0, string Roomid = "-1", DateTime? CreateTime = null, User? RoomMaster = null, RoomType RoomType = RoomType.All, string GameMode = "", string GameMap = "", RoomState RoomState = RoomState.Created, bool IsRank = false, string Password = "") { - return RoomFactory.Create(Id, Roomid, CreateTime, RoomMaster, RoomType, GameMode, GameMap, RoomState, Password); + return RoomFactory.Create(Id, Roomid, CreateTime, RoomMaster, RoomType, GameMode, GameMap, RoomState, IsRank, Password); } /// @@ -98,8 +99,9 @@ namespace Milimoe.FunGame.Core.Api.Utility string GameMode = (string)DrRoom[RoomQuery.Column_GameMode]; string GameMap = (string)DrRoom[RoomQuery.Column_GameMap]; RoomState RoomState = (RoomState)Convert.ToInt32(DrRoom[RoomQuery.Column_RoomState]); + bool IsRank = Convert.ToInt32(DrRoom[RoomQuery.Column_IsRank]) == 1; string Password = (string)DrRoom[RoomQuery.Column_Password]; - room = GetRoom(Id, Roomid, CreateTime, RoomMaster, RoomType, GameMode, GameMap, RoomState, Password); + room = GetRoom(Id, Roomid, CreateTime, RoomMaster, RoomType, GameMode, GameMap, RoomState, IsRank, Password); } return room; } @@ -136,8 +138,9 @@ namespace Milimoe.FunGame.Core.Api.Utility string GameMode = (string)DrRoom[RoomQuery.Column_GameMode]; string GameMap = (string)DrRoom[RoomQuery.Column_GameMap]; RoomState RoomState = (RoomState)Convert.ToInt32(DrRoom[RoomQuery.Column_RoomState]); + bool IsRank = Convert.ToInt32(DrRoom[RoomQuery.Column_IsRank]) == 1; string Password = (string)DrRoom[RoomQuery.Column_Password]; - list.Add(GetRoom(Id, Roomid, CreateTime, RoomMaster, RoomType, GameMode, GameMap, RoomState, Password)); + list.Add(GetRoom(Id, Roomid, CreateTime, RoomMaster, RoomType, GameMode, GameMap, RoomState, IsRank, Password)); } } return list; diff --git a/Docs/api.xml b/Docs/api.xml index 6c03f7e..7b058e0 100644 --- a/Docs/api.xml +++ b/Docs/api.xml @@ -235,7 +235,7 @@ - + 获取房间实例 @@ -247,6 +247,7 @@ 游戏模组 房间状态 + 房间密码 diff --git a/Entity/System/Room.cs b/Entity/System/Room.cs index bf7472d..564bce6 100644 --- a/Entity/System/Room.cs +++ b/Entity/System/Room.cs @@ -24,14 +24,17 @@ namespace Milimoe.FunGame.Core.Entity Statistics = new(this); } - internal Room(long Id = 0, string Roomid = "-1", DateTime? CreateTime = null, User? RoomMaster = null, RoomType RoomType = RoomType.All, string GameMode = "", string GameMap = "", RoomState RoomState = RoomState.Created, string Password = "") + internal Room(long Id = 0, string Roomid = "-1", DateTime? CreateTime = null, User? RoomMaster = null, RoomType RoomType = RoomType.All, string GameMode = "", string GameMap = "", RoomState RoomState = RoomState.Created, bool IsRank = false, string Password = "") { this.Id = Id; this.Roomid = Roomid; this.CreateTime = CreateTime ?? General.DefaultTime; this.RoomMaster = RoomMaster ?? General.UnknownUserInstance; this.RoomType = RoomType; + this.GameMode = GameMode; + this.GameMap = GameMap; this.RoomState = RoomState; + this.IsRank = IsRank; this.Password = Password; Statistics = new(this); } diff --git a/Library/Common/JsonConverter/RoomConverter.cs b/Library/Common/JsonConverter/RoomConverter.cs index e9c0d90..9505fcd 100644 --- a/Library/Common/JsonConverter/RoomConverter.cs +++ b/Library/Common/JsonConverter/RoomConverter.cs @@ -65,6 +65,10 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter case RoomQuery.Column_RoomState: room.RoomState = (RoomState)reader.GetInt64(); break; + + case RoomQuery.Column_IsRank: + room.IsRank = reader.GetBoolean(); + break; case RoomQuery.Column_Password: room.Password = reader.GetString() ?? ""; diff --git a/Library/SQLScript/Entity/RoomQuery.cs b/Library/SQLScript/Entity/RoomQuery.cs index 6759f47..86f0dba 100644 --- a/Library/SQLScript/Entity/RoomQuery.cs +++ b/Library/SQLScript/Entity/RoomQuery.cs @@ -12,18 +12,19 @@ public const string Column_GameMode = "GameMode"; public const string Column_GameMap = "GameMap"; public const string Column_RoomState = "RoomState"; + public const string Column_IsRank = "IsRank"; public const string Column_HasPass = "HasPass"; public const string Column_Password = "Password"; public const string Select_Rooms = $"{Command_Select} {TableName}.{Command_All}, {UserQuery.TableName}.{UserQuery.Column_Username} {Command_As} {Column_RoomMasterName} " + $"{Command_From} {TableName} {Command_LeftJoin} {UserQuery.TableName} {Command_On} {UserQuery.TableName}.{UserQuery.Column_UID} = {TableName}.{Column_RoomMaster}"; - public static string Insert_CreateRoom(string RoomID, long RoomMaster, Library.Constant.RoomType RoomType, string GameMode, string GameMap, string Password) + public static string Insert_CreateRoom(string RoomID, long RoomMaster, Library.Constant.RoomType RoomType, string GameMode, string GameMap, bool IsRank, string Password) { Library.Constant.RoomState RoomState = Library.Constant.RoomState.Created; DateTime NowTime = DateTime.Now; bool HasPass = Password.Trim() != ""; - return $"{Command_Insert} {Command_Into} {TableName} ({Column_RoomID}, {Column_CreateTime}, {Column_RoomMaster}, {Column_RoomType}, {Column_GameMode}, {Column_GameMap}, {Column_RoomState}, {Column_HasPass}, {Column_Password})" + - $" {Command_Values} ('{RoomID}', '{NowTime}', {RoomMaster}, {(int)RoomType}, '{GameMode}', '{GameMap}', {(int)RoomState}, {(HasPass ? 1 : 0)}, '{Password}')"; + return $"{Command_Insert} {Command_Into} {TableName} ({Column_RoomID}, {Column_CreateTime}, {Column_RoomMaster}, {Column_RoomType}, {Column_GameMode}, {Column_GameMap}, {Column_RoomState}, {Column_IsRank}, {Column_HasPass}, {Column_Password})" + + $" {Command_Values} ('{RoomID}', '{NowTime}', {RoomMaster}, {(int)RoomType}, '{GameMode}', '{GameMap}', {(int)RoomState}, {(IsRank ? 1 : 0)}, {(HasPass ? 1 : 0)}, '{Password}')"; } public static string Delete_Rooms(params string[] roomids)