mirror of
https://github.com/project-redbud/FunGame-Server.git
synced 2025-12-16 05:18:21 +00:00
填充一些请求控制器的方法
This commit is contained in:
parent
60c667a929
commit
e462dc7b71
@ -4,13 +4,13 @@ using Milimoe.FunGame.Core.Api.Utility;
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Interface.Base;
|
using Milimoe.FunGame.Core.Interface.Base;
|
||||||
using Milimoe.FunGame.Core.Library.Common.Addon;
|
using Milimoe.FunGame.Core.Library.Common.Addon;
|
||||||
using Milimoe.FunGame.Core.Library.Common.Event;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
using Milimoe.FunGame.Core.Library.SQLScript.Common;
|
using Milimoe.FunGame.Core.Library.SQLScript.Common;
|
||||||
using Milimoe.FunGame.Core.Library.SQLScript.Entity;
|
using Milimoe.FunGame.Core.Library.SQLScript.Entity;
|
||||||
using Milimoe.FunGame.Server.Model;
|
using Milimoe.FunGame.Server.Model;
|
||||||
using Milimoe.FunGame.Server.Others;
|
using Milimoe.FunGame.Server.Others;
|
||||||
using Milimoe.FunGame.Server.Services;
|
using Milimoe.FunGame.Server.Services;
|
||||||
|
using ProjectRedbud.FunGame.SQLQueryExtension;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Server.Controller
|
namespace Milimoe.FunGame.Server.Controller
|
||||||
{
|
{
|
||||||
@ -51,6 +51,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
{
|
{
|
||||||
Dictionary<string, object> result = [];
|
Dictionary<string, object> result = [];
|
||||||
_lastRequest = type;
|
_lastRequest = type;
|
||||||
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
@ -118,6 +119,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case DataRequestType.Room_GetRoomSettings:
|
case DataRequestType.Room_GetRoomSettings:
|
||||||
|
GetRoomSettings(data, result);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DataRequestType.Room_GetRoomPlayerCount:
|
case DataRequestType.Room_GetRoomPlayerCount:
|
||||||
@ -128,6 +130,78 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
await UpdateRoomMaster(data, result);
|
await UpdateRoomMaster(data, result);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.UserCenter_GetUserProfile:
|
||||||
|
GetUserProfile(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.UserCenter_GetUserStatistics:
|
||||||
|
GetUserStatistics(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.UserCenter_UpdateUser:
|
||||||
|
UpdateUser(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.UserCenter_UpdatePassword:
|
||||||
|
UpdatePassword(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.UserCenter_DailySignIn:
|
||||||
|
DailySignIn(result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.Inventory_GetStore:
|
||||||
|
GetStore(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.Inventory_GetMarket:
|
||||||
|
GetMarket(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.Inventory_StoreBuy:
|
||||||
|
StoreBuy(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.Inventory_MarketBuy:
|
||||||
|
MarketBuy(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.Inventory_GetInventory:
|
||||||
|
GetInventory(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.Inventory_Use:
|
||||||
|
Use(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.Inventory_StoreSell:
|
||||||
|
StoreSell(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.Inventory_MarketSell:
|
||||||
|
MarketSell(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.Inventory_UpdateMarketPrice:
|
||||||
|
UpdateMarketPrice(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.Inventory_GetOffer:
|
||||||
|
GetOffer(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.Inventory_MakeOffer:
|
||||||
|
MakeOffer(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.Inventory_ReviseOffer:
|
||||||
|
ReviseOffer(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DataRequestType.Inventory_RespondOffer:
|
||||||
|
RespondOffer(data, result);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -148,7 +222,6 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
Guid key = Guid.Empty;
|
Guid key = Guid.Empty;
|
||||||
if (requestData.Count >= 1)
|
if (requestData.Count >= 1)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
key = DataRequest.GetDictionaryJsonObject<Guid>(requestData, "key");
|
key = DataRequest.GetDictionaryJsonObject<Guid>(requestData, "key");
|
||||||
if (Server.IsLoginKey(key))
|
if (Server.IsLoginKey(key))
|
||||||
{
|
{
|
||||||
@ -170,9 +243,8 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
/// 获取公告
|
/// 获取公告
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="resultData"></param>
|
/// <param name="resultData"></param>
|
||||||
private void GetServerNotice(Dictionary<string, object> resultData)
|
private static void GetServerNotice(Dictionary<string, object> resultData)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
resultData.Add("notice", Config.ServerNotice);
|
resultData.Add("notice", Config.ServerNotice);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,7 +262,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
string gamemodule = DataRequest.GetDictionaryJsonObject<string>(requestData, "gamemoduleserver") ?? "";
|
string gamemodule = DataRequest.GetDictionaryJsonObject<string>(requestData, "gamemoduleserver") ?? "";
|
||||||
string gamemap = DataRequest.GetDictionaryJsonObject<string>(requestData, "gamemap") ?? "";
|
string gamemap = DataRequest.GetDictionaryJsonObject<string>(requestData, "gamemap") ?? "";
|
||||||
bool isrank = DataRequest.GetDictionaryJsonObject<bool>(requestData, "isrank");
|
bool isrank = DataRequest.GetDictionaryJsonObject<bool>(requestData, "isrank");
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest) + " : " + RoomSet.GetTypeString(type) + " (" + string.Join(", ", [gamemodule, gamemap]) + ")", InvokeMessageType.DataRequest);
|
ServerHelper.WriteLine("[CreateRoom] " + RoomSet.GetTypeString(type) + " (" + string.Join(", ", [gamemodule, gamemap]) + ")", InvokeMessageType.DataRequest);
|
||||||
if (gamemodule == "" || gamemap == "" || FunGameSystem.GameModuleLoader is null || !FunGameSystem.GameModuleLoader.ModuleServers.ContainsKey(gamemodule) || !FunGameSystem.GameModuleLoader.Maps.ContainsKey(gamemap))
|
if (gamemodule == "" || gamemap == "" || FunGameSystem.GameModuleLoader is null || !FunGameSystem.GameModuleLoader.ModuleServers.ContainsKey(gamemodule) || !FunGameSystem.GameModuleLoader.Maps.ContainsKey(gamemap))
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("缺少对应的模组或地图,无法创建房间。");
|
ServerHelper.WriteLine("缺少对应的模组或地图,无法创建房间。");
|
||||||
@ -219,10 +291,10 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
if (SQLHelper.Result == SQLResult.Success)
|
if (SQLHelper.Result == SQLResult.Success)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[CreateRoom] Master: " + user.Username + " RoomID: " + roomid);
|
ServerHelper.WriteLine("[CreateRoom] Master: " + user.Username + " RoomID: " + roomid);
|
||||||
SQLHelper.ExecuteDataSet(RoomQuery.Select_IsExistRoom(SQLHelper, roomid));
|
DataRow? dr = SQLHelper.ExecuteDataRow(RoomQuery.Select_IsExistRoom(SQLHelper, roomid));
|
||||||
if (SQLHelper.Result == SQLResult.Success && SQLHelper.DataSet.Tables[0].Rows.Count > 0)
|
if (dr != null)
|
||||||
{
|
{
|
||||||
room = Factory.GetRoom(SQLHelper.DataSet.Tables[0].Rows[0], user);
|
room = Factory.GetRoom(dr, user);
|
||||||
FunGameSystem.RoomList.AddRoom(room);
|
FunGameSystem.RoomList.AddRoom(room);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -236,9 +308,8 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
/// 更新房间列表
|
/// 更新房间列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="resultData"></param>
|
/// <param name="resultData"></param>
|
||||||
private void UpdateRoom(Dictionary<string, object> resultData)
|
private static void UpdateRoom(Dictionary<string, object> resultData)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
resultData.Add("rooms", FunGameSystem.RoomList.ListRoom); // 传RoomList
|
resultData.Add("rooms", FunGameSystem.RoomList.ListRoom); // 传RoomList
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,7 +323,6 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
bool result = false;
|
bool result = false;
|
||||||
if (requestData.Count >= 2)
|
if (requestData.Count >= 2)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
string roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
string roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
||||||
bool isMaster = DataRequest.GetDictionaryJsonObject<bool>(requestData, "isMaster");
|
bool isMaster = DataRequest.GetDictionaryJsonObject<bool>(requestData, "isMaster");
|
||||||
|
|
||||||
@ -274,7 +344,6 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
bool result = false;
|
bool result = false;
|
||||||
if (requestData.Count >= 1)
|
if (requestData.Count >= 1)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
string roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
string roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
||||||
|
|
||||||
if (roomid != "-1")
|
if (roomid != "-1")
|
||||||
@ -313,7 +382,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
bool iscancel = DataRequest.GetDictionaryJsonObject<bool>(requestData, "iscancel");
|
bool iscancel = DataRequest.GetDictionaryJsonObject<bool>(requestData, "iscancel");
|
||||||
if (!iscancel)
|
if (!iscancel)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest) + " : Start", InvokeMessageType.DataRequest);
|
ServerHelper.WriteLine("[MatchRoom] Start", InvokeMessageType.DataRequest);
|
||||||
RoomType type = DataRequest.GetDictionaryJsonObject<RoomType>(requestData, "roomtype");
|
RoomType type = DataRequest.GetDictionaryJsonObject<RoomType>(requestData, "roomtype");
|
||||||
User user = DataRequest.GetDictionaryJsonObject<User>(requestData, "matcher") ?? Factory.GetUser();
|
User user = DataRequest.GetDictionaryJsonObject<User>(requestData, "matcher") ?? Factory.GetUser();
|
||||||
StartMatching(type, user);
|
StartMatching(type, user);
|
||||||
@ -321,7 +390,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 取消匹配
|
// 取消匹配
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest) + " : Cancel", InvokeMessageType.DataRequest);
|
ServerHelper.WriteLine("[MatchRoom] Cancel", InvokeMessageType.DataRequest);
|
||||||
StopMatching();
|
StopMatching();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -339,7 +408,6 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
string roomid = "-1";
|
string roomid = "-1";
|
||||||
if (requestData.Count >= 1)
|
if (requestData.Count >= 1)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
||||||
User user = Server.User;
|
User user = Server.User;
|
||||||
|
|
||||||
@ -365,7 +433,6 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
string roomid = "-1";
|
string roomid = "-1";
|
||||||
if (requestData.Count >= 1)
|
if (requestData.Count >= 1)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
||||||
User user = Server.User;
|
User user = Server.User;
|
||||||
|
|
||||||
@ -407,7 +474,6 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
bool result = false;
|
bool result = false;
|
||||||
if (requestData.Count >= 2)
|
if (requestData.Count >= 2)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
string roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
string roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
||||||
bool isMaster = DataRequest.GetDictionaryJsonObject<bool>(requestData, "isMaster");
|
bool isMaster = DataRequest.GetDictionaryJsonObject<bool>(requestData, "isMaster");
|
||||||
|
|
||||||
@ -523,7 +589,6 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
bool success = false;
|
bool success = false;
|
||||||
if (requestData.Count >= 4)
|
if (requestData.Count >= 4)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
string username = DataRequest.GetDictionaryJsonObject<string>(requestData, "username") ?? "";
|
string username = DataRequest.GetDictionaryJsonObject<string>(requestData, "username") ?? "";
|
||||||
string password = DataRequest.GetDictionaryJsonObject<string>(requestData, "password") ?? "";
|
string password = DataRequest.GetDictionaryJsonObject<string>(requestData, "password") ?? "";
|
||||||
string email = DataRequest.GetDictionaryJsonObject<string>(requestData, "email") ?? "";
|
string email = DataRequest.GetDictionaryJsonObject<string>(requestData, "email") ?? "";
|
||||||
@ -550,7 +615,6 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
/// <param name="resultData"></param>
|
/// <param name="resultData"></param>
|
||||||
private async Task Login(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
private async Task Login(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
string msg = "";
|
string msg = "";
|
||||||
User user = Factory.GetUser();
|
User user = Factory.GetUser();
|
||||||
|
|
||||||
@ -609,7 +673,6 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
string msg = "无法找回您的密码,请稍后再试。"; // 返回的验证信息
|
string msg = "无法找回您的密码,请稍后再试。"; // 返回的验证信息
|
||||||
if (requestData.Count >= 3)
|
if (requestData.Count >= 3)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
string username = DataRequest.GetDictionaryJsonObject<string>(requestData, ForgetVerifyCodes.Column_Username) ?? "";
|
string username = DataRequest.GetDictionaryJsonObject<string>(requestData, ForgetVerifyCodes.Column_Username) ?? "";
|
||||||
string email = DataRequest.GetDictionaryJsonObject<string>(requestData, ForgetVerifyCodes.Column_Email) ?? "";
|
string email = DataRequest.GetDictionaryJsonObject<string>(requestData, ForgetVerifyCodes.Column_Email) ?? "";
|
||||||
string verifycode = DataRequest.GetDictionaryJsonObject<string>(requestData, ForgetVerifyCodes.Column_ForgetVerifyCode) ?? "";
|
string verifycode = DataRequest.GetDictionaryJsonObject<string>(requestData, ForgetVerifyCodes.Column_ForgetVerifyCode) ?? "";
|
||||||
@ -620,11 +683,11 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
// 先检查验证码
|
// 先检查验证码
|
||||||
if (SQLHelper != null)
|
if (SQLHelper != null)
|
||||||
{
|
{
|
||||||
SQLHelper.ExecuteDataSet(ForgetVerifyCodes.Select_ForgetVerifyCode(SQLHelper, username, email, verifycode));
|
DataRow? dr = SQLHelper.ExecuteDataRow(ForgetVerifyCodes.Select_ForgetVerifyCode(SQLHelper, username, email, verifycode));
|
||||||
if (SQLHelper.Result == SQLResult.Success)
|
if (dr != null)
|
||||||
{
|
{
|
||||||
// 检查验证码是否过期
|
// 检查验证码是否过期
|
||||||
if (!DateTime.TryParse(SQLHelper.DataSet.Tables[0].Rows[0][ForgetVerifyCodes.Column_SendTime].ToString(), out DateTime SendTime))
|
if (!DateTime.TryParse(dr[ForgetVerifyCodes.Column_SendTime].ToString(), out DateTime SendTime))
|
||||||
{
|
{
|
||||||
SendTime = General.DefaultTime;
|
SendTime = General.DefaultTime;
|
||||||
}
|
}
|
||||||
@ -637,7 +700,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 检查验证码是否正确
|
// 检查验证码是否正确
|
||||||
if (verifycode.Equals(SQLHelper.DataSet.Tables[0].Rows[0][ForgetVerifyCodes.Column_ForgetVerifyCode]))
|
if (verifycode.Equals(dr[ForgetVerifyCodes.Column_ForgetVerifyCode]))
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[ForgerPassword] Username: " + username + " Email: " + email);
|
ServerHelper.WriteLine("[ForgerPassword] Username: " + username + " Email: " + email);
|
||||||
SQLHelper.Execute(ForgetVerifyCodes.Delete_ForgetVerifyCode(SQLHelper, username, email));
|
SQLHelper.Execute(ForgetVerifyCodes.Delete_ForgetVerifyCode(SQLHelper, username, email));
|
||||||
@ -662,8 +725,8 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 检查验证码是否发送过和是否过期
|
// 检查验证码是否发送过和是否过期
|
||||||
SQLHelper.ExecuteDataSet(ForgetVerifyCodes.Select_HasSentForgetVerifyCode(SQLHelper, username, email));
|
DataRow? dr = SQLHelper.ExecuteDataRow(ForgetVerifyCodes.Select_HasSentForgetVerifyCode(SQLHelper, username, email));
|
||||||
if (SQLHelper.Result != SQLResult.Success || (DateTime.TryParse(SQLHelper.DataSet.Tables[0].Rows[0][ForgetVerifyCodes.Column_SendTime].ToString(), out DateTime SendTime) && (DateTime.Now - SendTime).TotalMinutes >= 10))
|
if (dr is null || (DateTime.TryParse(dr[ForgetVerifyCodes.Column_SendTime].ToString(), out DateTime SendTime) && (DateTime.Now - SendTime).TotalMinutes >= 10))
|
||||||
{
|
{
|
||||||
// 发送验证码,需要先删除之前过期的验证码
|
// 发送验证码,需要先删除之前过期的验证码
|
||||||
SQLHelper.Execute(ForgetVerifyCodes.Delete_ForgetVerifyCode(SQLHelper, username, email));
|
SQLHelper.Execute(ForgetVerifyCodes.Delete_ForgetVerifyCode(SQLHelper, username, email));
|
||||||
@ -691,7 +754,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
}
|
}
|
||||||
else // 不使用MailSender的情况
|
else // 不使用MailSender的情况
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + $" 验证码为:{forgetVerify},请服务器管理员告知此用户");
|
ServerHelper.WriteLine(Server.GetClientName() + $" 验证码为:{forgetVerify},但因 SMTP 服务未开启,请服务器管理员告知此用户");
|
||||||
msg = "";
|
msg = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -699,7 +762,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 发送过验证码且验证码没有过期
|
// 发送过验证码且验证码没有过期
|
||||||
string ForgetVerifyCode = (string)SQLHelper.DataSet.Tables[0].Rows[0][ForgetVerifyCodes.Column_ForgetVerifyCode];
|
string ForgetVerifyCode = (string)dr[ForgetVerifyCodes.Column_ForgetVerifyCode];
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + $" 十分钟内已向{email}发送过验证码:{ForgetVerifyCode}");
|
ServerHelper.WriteLine(Server.GetClientName() + $" 十分钟内已向{email}发送过验证码:{ForgetVerifyCode}");
|
||||||
msg = "";
|
msg = "";
|
||||||
}
|
}
|
||||||
@ -710,49 +773,30 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
resultData.Add("msg", msg);
|
resultData.Add("msg", msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 更新用户的密码
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="requestData"></param>
|
|
||||||
/// <param name="resultData"></param>
|
|
||||||
private void UpdatePassword(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
|
||||||
{
|
|
||||||
string msg = "无法更新您的密码,请稍后再试。";
|
|
||||||
if (requestData.Count >= 2)
|
|
||||||
{
|
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
string username = DataRequest.GetDictionaryJsonObject<string>(requestData, UserQuery.Column_Username) ?? "";
|
|
||||||
string password = DataRequest.GetDictionaryJsonObject<string>(requestData, UserQuery.Column_Password) ?? "";
|
|
||||||
if (username.Trim() != "" && password.Trim() != "")
|
|
||||||
{
|
|
||||||
FunGameSystem.UpdateUserKey(username);
|
|
||||||
password = password.Encrypt(FunGameSystem.GetUserKey(username));
|
|
||||||
SQLHelper?.Execute(UserQuery.Update_Password(SQLHelper, username, password));
|
|
||||||
if (SQLHelper?.Success ?? false)
|
|
||||||
{
|
|
||||||
// 更新成功返回空值
|
|
||||||
msg = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
resultData.Add("msg", msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Room
|
#region Room
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取房间设置
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private static void GetRoomSettings(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取房间内玩家数量
|
/// 获取房间内玩家数量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="requestData"></param>
|
/// <param name="requestData"></param>
|
||||||
/// <param name="resultData"></param>
|
/// <param name="resultData"></param>
|
||||||
private void GetRoomPlayerCount(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
private static void GetRoomPlayerCount(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
{
|
{
|
||||||
string roomid = "-1";
|
string roomid = "-1";
|
||||||
if (requestData.Count >= 1)
|
if (requestData.Count >= 1)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
||||||
}
|
}
|
||||||
resultData.Add("count", FunGameSystem.RoomList.GetUserCount(roomid));
|
resultData.Add("count", FunGameSystem.RoomList.GetUserCount(roomid));
|
||||||
@ -770,7 +814,6 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
|
|
||||||
if (requestData.Count >= 2)
|
if (requestData.Count >= 2)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_lastRequest), InvokeMessageType.DataRequest);
|
|
||||||
string roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
string roomid = DataRequest.GetDictionaryJsonObject<string>(requestData, "roomid") ?? "-1";
|
||||||
User newMaster = DataRequest.GetDictionaryJsonObject<User>(requestData, "newMaster") ?? Factory.GetUser();
|
User newMaster = DataRequest.GetDictionaryJsonObject<User>(requestData, "newMaster") ?? Factory.GetUser();
|
||||||
|
|
||||||
@ -783,10 +826,10 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
|
|
||||||
if (SQLHelper != null)
|
if (SQLHelper != null)
|
||||||
{
|
{
|
||||||
SQLHelper.Execute(RoomQuery.Update_UpdateRoomMaster(SQLHelper, roomid, newMaster.Id));
|
SQLHelper.UpdateRoomMaster(roomid, newMaster.Id);
|
||||||
if (SQLHelper.Result == SQLResult.Success)
|
if (SQLHelper.Result == SQLResult.Success)
|
||||||
{
|
{
|
||||||
await Server.UpdateRoomMaster(room, true);
|
await Server.SendClients(Server.Listener.ClientList.Where(c => c != null && c.InRoom.Roomid == roomid), SocketMessageType.UpdateRoomMaster, room);
|
||||||
ServerHelper.WriteLine($"[UpdateRoomMaster] RoomID: {roomid} 房主变更: {oldMaster.Username} -> {newMaster.Username}");
|
ServerHelper.WriteLine($"[UpdateRoomMaster] RoomID: {roomid} 房主变更: {oldMaster.Username} -> {newMaster.Username}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -852,9 +895,8 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
double time = 0; // 已经匹配的时间
|
double time = 0; // 已经匹配的时间
|
||||||
double expandInterval = 10; // 扩大匹配范围的间隔时间
|
double expandInterval = 10; // 扩大匹配范围的间隔时间
|
||||||
double maxTime = 50; // 最大匹配时间
|
double maxTime = 50; // 最大匹配时间
|
||||||
|
bool isRefreshRoom = false; // 是否刷新房间列表
|
||||||
|
|
||||||
while (_isMatching)
|
|
||||||
{
|
|
||||||
// 匹配房间类型(如果是All,则匹配所有房间)
|
// 匹配房间类型(如果是All,则匹配所有房间)
|
||||||
List<Room> targets;
|
List<Room> targets;
|
||||||
if (roomtype == RoomType.All)
|
if (roomtype == RoomType.All)
|
||||||
@ -866,6 +908,21 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
targets = [.. FunGameSystem.RoomList.ListRoom.Where(r => (r.RoomState == RoomState.Created || r.RoomState == RoomState.Matching) && r.RoomType == roomtype)];
|
targets = [.. FunGameSystem.RoomList.ListRoom.Where(r => (r.RoomState == RoomState.Created || r.RoomState == RoomState.Matching) && r.RoomType == roomtype)];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while (_isMatching)
|
||||||
|
{
|
||||||
|
if (isRefreshRoom)
|
||||||
|
{
|
||||||
|
isRefreshRoom = false;
|
||||||
|
if (roomtype == RoomType.All)
|
||||||
|
{
|
||||||
|
targets = [.. FunGameSystem.RoomList.ListRoom.Where(r => r.RoomState == RoomState.Created || r.RoomState == RoomState.Matching)];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
targets = [.. FunGameSystem.RoomList.ListRoom.Where(r => (r.RoomState == RoomState.Created || r.RoomState == RoomState.Matching) && r.RoomType == roomtype)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 如果匹配停止,则退出
|
// 如果匹配停止,则退出
|
||||||
if (!_isMatching) break;
|
if (!_isMatching) break;
|
||||||
|
|
||||||
@ -895,6 +952,8 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
if (time >= expandInterval * i)
|
if (time >= expandInterval * i)
|
||||||
{
|
{
|
||||||
i++;
|
i++;
|
||||||
|
// 刷新房间列表
|
||||||
|
isRefreshRoom = true;
|
||||||
}
|
}
|
||||||
// 达到最大匹配时间后不再匹配Elo,直接返回第一个房间
|
// 达到最大匹配时间后不再匹配Elo,直接返回第一个房间
|
||||||
if (time >= maxTime)
|
if (time >= maxTime)
|
||||||
@ -910,5 +969,240 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region UserCenter
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取用户资料信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void GetUserProfile(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取用户统计数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void GetUserStatistics(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 更新用户(全部数据)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void UpdateUser(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 更新用户的密码
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void UpdatePassword(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
string msg = "无法更新您的密码,请稍后再试。";
|
||||||
|
if (requestData.Count >= 2)
|
||||||
|
{
|
||||||
|
string username = DataRequest.GetDictionaryJsonObject<string>(requestData, UserQuery.Column_Username) ?? "";
|
||||||
|
string password = DataRequest.GetDictionaryJsonObject<string>(requestData, UserQuery.Column_Password) ?? "";
|
||||||
|
if (username.Trim() != "" && password.Trim() != "")
|
||||||
|
{
|
||||||
|
FunGameSystem.UpdateUserKey(username);
|
||||||
|
password = password.Encrypt(FunGameSystem.GetUserKey(username));
|
||||||
|
SQLHelper?.UpdatePassword(username, password);
|
||||||
|
if (SQLHelper?.Success ?? false)
|
||||||
|
{
|
||||||
|
// 更新成功返回空值
|
||||||
|
msg = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
resultData.Add("msg", msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 每日签到
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void DailySignIn(Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
if (SQLHelper != null)
|
||||||
|
{
|
||||||
|
long userId = Server.User.Id;
|
||||||
|
if (userId != 0)
|
||||||
|
{
|
||||||
|
DataRow? dr = SQLHelper.ExecuteDataRow(UserSignIns.Select_GetUserSignIn(SQLHelper, userId));
|
||||||
|
if (dr != null)
|
||||||
|
{
|
||||||
|
int days = Convert.ToInt32(dr[UserSignIns.Column_Days]) + 1;
|
||||||
|
bool isSigned = Convert.ToInt32(dr[UserSignIns.Column_IsSigned]) != 0;
|
||||||
|
if (dr[UserSignIns.Column_LastTime] != DBNull.Value && DateTime.TryParseExact(dr[UserSignIns.Column_LastTime].ToString(), General.GeneralDateTimeFormat, null, System.Globalization.DateTimeStyles.None, out DateTime dt))
|
||||||
|
{
|
||||||
|
if (isSigned)
|
||||||
|
{
|
||||||
|
resultData.Add("msg", "今天已经签到过了,请明天再来。");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ((DateTime.Now - dt).TotalDays > 1)
|
||||||
|
{
|
||||||
|
days = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SQLHelper.Execute(UserSignIns.Update_UserSignIn(SQLHelper, userId, days));
|
||||||
|
if (SQLHelper.Success)
|
||||||
|
{
|
||||||
|
resultData.Add("msg", $"签到成功!你已经连续签到 {days} 天!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
resultData.Add("msg", "签到失败!");
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Inventory
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取商店信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void GetStore(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取市场信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void GetMarket(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 购买物品(商店)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void StoreBuy(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 购买物品(市场)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void MarketBuy(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取库存信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void GetInventory(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 使用物品
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void Use(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 出售物品(商店)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void StoreSell(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 出售物品(市场)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void MarketSell(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 更新市场价格
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void UpdateMarketPrice(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取交易报价
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void GetOffer(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建交易报价
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void MakeOffer(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 修改交易报价
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void ReviseOffer(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 回应交易报价
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestData"></param>
|
||||||
|
/// <param name="resultData"></param>
|
||||||
|
private void RespondOffer(Dictionary<string, object> requestData, Dictionary<string, object> resultData)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,6 +11,7 @@ using Milimoe.FunGame.Core.Library.SQLScript.Entity;
|
|||||||
using Milimoe.FunGame.Server.Controller;
|
using Milimoe.FunGame.Server.Controller;
|
||||||
using Milimoe.FunGame.Server.Others;
|
using Milimoe.FunGame.Server.Others;
|
||||||
using Milimoe.FunGame.Server.Services;
|
using Milimoe.FunGame.Server.Services;
|
||||||
|
using ProjectRedbud.FunGame.SQLQueryExtension;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Server.Model
|
namespace Milimoe.FunGame.Server.Model
|
||||||
{
|
{
|
||||||
@ -382,6 +383,7 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
public async Task<bool> QuitRoom(string roomid, bool isMaster)
|
public async Task<bool> QuitRoom(string roomid, bool isMaster)
|
||||||
{
|
{
|
||||||
bool result;
|
bool result;
|
||||||
|
SQLHelper?.NewTransaction();
|
||||||
|
|
||||||
FunGameSystem.RoomList.CancelReady(roomid, User);
|
FunGameSystem.RoomList.CancelReady(roomid, User);
|
||||||
FunGameSystem.RoomList.QuitRoom(roomid, User);
|
FunGameSystem.RoomList.QuitRoom(roomid, User);
|
||||||
@ -390,36 +392,37 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
if (isMaster)
|
if (isMaster)
|
||||||
{
|
{
|
||||||
List<User> users = [.. FunGameSystem.RoomList[roomid].UserAndIsReady.Keys];
|
List<User> users = [.. FunGameSystem.RoomList[roomid].UserAndIsReady.Keys];
|
||||||
if (users.Count > 0) // 如果此时房间还有人,更新房主
|
User? newRoomMaster = null;
|
||||||
|
if (users.Count > 0) newRoomMaster = users[0];
|
||||||
|
SQLHelper?.QuitRoomByRoomMaster(roomid, User.Id, newRoomMaster?.Id);
|
||||||
|
if (newRoomMaster != null)
|
||||||
{
|
{
|
||||||
User NewMaster = users[0];
|
Room.RoomMaster = users[0];
|
||||||
Room.RoomMaster = NewMaster;
|
ServerHelper.WriteLine("[ " + GetClientName() + " ] 退出了房间 " + roomid + ",并更新房主为:" + newRoomMaster);
|
||||||
SQLHelper?.Execute(RoomQuery.Update_QuitRoom(SQLHelper, roomid, User.Id, NewMaster.Id));
|
await NotifyQuitRoom(Room, true);
|
||||||
this.InRoom = General.HallInstance;
|
|
||||||
await UpdateRoomMaster(Room, true);
|
|
||||||
result = true;
|
|
||||||
}
|
}
|
||||||
else // 没人了就解散房间
|
else
|
||||||
{
|
{
|
||||||
FunGameSystem.RoomList.RemoveRoom(roomid);
|
FunGameSystem.RoomList.RemoveRoom(roomid);
|
||||||
SQLHelper?.Execute(RoomQuery.Delete_QuitRoom(SQLHelper, roomid, User.Id));
|
|
||||||
this.InRoom = General.HallInstance;
|
|
||||||
ServerHelper.WriteLine("[ " + GetClientName() + " ] 解散了房间 " + roomid);
|
ServerHelper.WriteLine("[ " + GetClientName() + " ] 解散了房间 " + roomid);
|
||||||
result = true;
|
|
||||||
}
|
}
|
||||||
|
InRoom = General.HallInstance;
|
||||||
|
result = true;
|
||||||
}
|
}
|
||||||
// 不是房主直接退出房间
|
// 不是房主直接退出房间
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.InRoom = General.HallInstance;
|
this.InRoom = General.HallInstance;
|
||||||
await UpdateRoomMaster(Room);
|
await NotifyQuitRoom(Room);
|
||||||
result = true;
|
result = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SQLHelper?.Commit();
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task UpdateRoomMaster(Room room, bool isUpdateRoomMaster = false)
|
public async Task NotifyQuitRoom(Room room, bool isUpdateRoomMaster = false)
|
||||||
{
|
{
|
||||||
foreach (IServerModel Client in Listener.ClientList.Where(c => c != null && c.User.Id != 0 && room.Roomid == c.InRoom?.Roomid))
|
foreach (IServerModel Client in Listener.ClientList.Where(c => c != null && c.User.Id != 0 && room.Roomid == c.InRoom?.Roomid))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -215,11 +215,16 @@ try
|
|||||||
IExceptionHandlerFeature? contextFeature = context.Features.Get<IExceptionHandlerFeature>();
|
IExceptionHandlerFeature? contextFeature = context.Features.Get<IExceptionHandlerFeature>();
|
||||||
if (contextFeature != null)
|
if (contextFeature != null)
|
||||||
{
|
{
|
||||||
await context.Response.WriteAsync(new
|
await context.Response.WriteAsync(new PayloadModel<DataRequestType>()
|
||||||
{
|
{
|
||||||
context.Response.StatusCode,
|
Event = "system_error",
|
||||||
|
RequestType = DataRequestType.UnKnown,
|
||||||
|
StatusCode = context.Response.StatusCode,
|
||||||
Message = "Internal Server Error.",
|
Message = "Internal Server Error.",
|
||||||
Detailed = contextFeature.Error.Message
|
Data = new()
|
||||||
|
{
|
||||||
|
{ "detail", contextFeature.Error.Message }
|
||||||
|
}
|
||||||
}.ToString() ?? "");
|
}.ToString() ?? "");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user