修改创建房间逻辑

This commit is contained in:
milimoe 2023-12-11 01:09:21 +08:00
parent c66b25c21d
commit 7c75fbaf62
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
2 changed files with 9 additions and 11 deletions

View File

@ -167,11 +167,11 @@ namespace Milimoe.FunGame.Server.Controller
Room room = General.HallInstance;
if (RequestData.Count >= 3)
{
string roomtype_string = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomtype") ?? RoomSet.All;
RoomType type = DataRequest.GetHashtableJsonObject<RoomType>(RequestData, "roomtype");
string gamemode = DataRequest.GetHashtableJsonObject<string>(RequestData, "gamemode") ?? "";
string gamemap = DataRequest.GetHashtableJsonObject<string>(RequestData, "gamemap") ?? "";
bool isrank = DataRequest.GetHashtableJsonObject<bool>(RequestData, "isrank");
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest) + " : " + roomtype_string + " (" + string.Join(", ", [gamemode, gamemap]) + ")", InvokeMessageType.DataRequest);
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest) + " : " + RoomSet.GetTypeString(type) + " (" + string.Join(", ", [gamemode, gamemap]) + ")", InvokeMessageType.DataRequest);
if (gamemode == "" || gamemap == "")
{
ServerHelper.WriteLine("缺少对应的模组或地图,无法创建房间。");
@ -181,11 +181,10 @@ namespace Milimoe.FunGame.Server.Controller
User user = DataRequest.GetHashtableJsonObject<User>(RequestData, "master") ?? Factory.GetUser();
string password = DataRequest.GetHashtableJsonObject<string>(RequestData, "password") ?? "";
if (!string.IsNullOrWhiteSpace(roomtype_string) && user.Id != 0)
if (user.Id != 0)
{
RoomType roomtype = RoomSet.GetRoomType(roomtype_string);
string roomid = Verification.CreateVerifyCode(VerifyCodeType.MixVerifyCode, 7).ToUpper();
SQLHelper.Execute(RoomQuery.Insert_CreateRoom(roomid, user.Id, roomtype, gamemode, gamemap, isrank, password ?? ""));
SQLHelper.Execute(RoomQuery.Insert_CreateRoom(roomid, user.Id, type, gamemode, gamemap, isrank, password ?? ""));
if (SQLHelper.Result == SQLResult.Success)
{
ServerHelper.WriteLine("[CreateRoom] Master: " + user.Username + " RoomID: " + roomid);
@ -278,9 +277,9 @@ namespace Milimoe.FunGame.Server.Controller
if (!iscancel)
{
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest) + " : Start", InvokeMessageType.DataRequest);
string roomtype_string = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomtype") ?? RoomSet.All;
RoomType type = DataRequest.GetHashtableJsonObject<RoomType>(RequestData, "roomtype");
User user = DataRequest.GetHashtableJsonObject<User>(RequestData, "matcher") ?? Factory.GetUser();
Server.StartMatching(roomtype_string, user);
Server.StartMatching(type, user);
}
else
{

View File

@ -434,16 +434,15 @@ namespace Milimoe.FunGame.Server.Model
return Send(socket, SocketMessageType.HeartBeat, "");
}
public void StartMatching(string roomtype_string, User user)
public void StartMatching(RoomType type, User user)
{
IsMatching = true;
ServerHelper.WriteLine(GetClientName() + " 开始匹配。类型:" + roomtype_string);
ServerHelper.WriteLine(GetClientName() + " 开始匹配。类型:" + RoomSet.GetTypeString(type));
TaskUtility.NewTask(async () =>
{
if (IsMatching)
{
RoomType roomtype = RoomSet.GetRoomType(roomtype_string);
Room room = await MatchingRoom(roomtype, user);
Room room = await MatchingRoom(type, user);
if (IsMatching && Socket != null)
{
Send(Socket, SocketMessageType.MatchRoom, room);