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)