mirror of
https://github.com/project-redbud/FunGame-Server.git
synced 2025-04-21 19:49:36 +08:00
为GameModeServer提供了监听接口;优化了控制台日志的输出方式 (#31)
* 为GameModeServer提供了监听接口;优化了控制台日志的输出方式 * 彩色控制台 --------- Co-authored-by: yeziuku <yezi@wrss.org>
This commit is contained in:
parent
a316c853eb
commit
9c1bf43fdf
@ -3,7 +3,7 @@ using Milimoe.FunGame.Core.Api.Utility;
|
|||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
using Milimoe.FunGame.Server.Model;
|
using Milimoe.FunGame.Server.Model;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Server.Controllers
|
namespace Milimoe.FunGame.Server.Controller
|
||||||
{
|
{
|
||||||
public class Authenticator : Core.Library.Common.Architecture.Authenticator
|
public class Authenticator : Core.Library.Common.Architecture.Authenticator
|
||||||
{
|
{
|
||||||
|
@ -3,11 +3,9 @@ using System.Data;
|
|||||||
using Milimoe.FunGame.Core.Api.Transmittal;
|
using Milimoe.FunGame.Core.Api.Transmittal;
|
||||||
using Milimoe.FunGame.Core.Api.Utility;
|
using Milimoe.FunGame.Core.Api.Utility;
|
||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Common.Network;
|
|
||||||
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.Controllers;
|
|
||||||
using Milimoe.FunGame.Server.Model;
|
using Milimoe.FunGame.Server.Model;
|
||||||
using Milimoe.FunGame.Server.Others;
|
using Milimoe.FunGame.Server.Others;
|
||||||
using Milimoe.FunGame.Server.Utility;
|
using Milimoe.FunGame.Server.Utility;
|
||||||
@ -25,7 +23,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
private string ForgetVerify = "";
|
private string ForgetVerify = "";
|
||||||
private string RegVerify = "";
|
private string RegVerify = "";
|
||||||
private DataRequestType _LastRequest = DataRequestType.UnKnown;
|
private DataRequestType _LastRequest = DataRequestType.UnKnown;
|
||||||
private bool[] isReadyCheckCD = new bool[] { false, false };
|
private readonly bool[] isReadyCheckCD = [false, false];
|
||||||
|
|
||||||
public DataRequestController(ServerModel server)
|
public DataRequestController(ServerModel server)
|
||||||
{
|
{
|
||||||
@ -35,7 +33,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
|
|
||||||
public Hashtable GetResultData(DataRequestType type, Hashtable data)
|
public Hashtable GetResultData(DataRequestType type, Hashtable data)
|
||||||
{
|
{
|
||||||
Hashtable result = new();
|
Hashtable result = [];
|
||||||
_LastRequest = type;
|
_LastRequest = type;
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
@ -133,7 +131,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
Guid key = Guid.Empty;
|
Guid key = Guid.Empty;
|
||||||
if (RequestData.Count >= 1)
|
if (RequestData.Count >= 1)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> LogOut");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest), InvokeMessageType.DataRequest);
|
||||||
key = DataRequest.GetHashtableJsonObject<Guid>(RequestData, "key");
|
key = DataRequest.GetHashtableJsonObject<Guid>(RequestData, "key");
|
||||||
if (Server.IsLoginKey(key))
|
if (Server.IsLoginKey(key))
|
||||||
{
|
{
|
||||||
@ -155,8 +153,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
/// <param name="ResultData"></param>
|
/// <param name="ResultData"></param>
|
||||||
private void GetServerNotice(Hashtable ResultData)
|
private void GetServerNotice(Hashtable ResultData)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> GetNotice");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest), InvokeMessageType.DataRequest);
|
||||||
_LastRequest = DataRequestType.Main_GetNotice;
|
|
||||||
ResultData.Add("notice", Config.ServerNotice);
|
ResultData.Add("notice", Config.ServerNotice);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -174,7 +171,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
string gamemode = DataRequest.GetHashtableJsonObject<string>(RequestData, "gamemode") ?? "";
|
string gamemode = DataRequest.GetHashtableJsonObject<string>(RequestData, "gamemode") ?? "";
|
||||||
string gamemap = DataRequest.GetHashtableJsonObject<string>(RequestData, "gamemap") ?? "";
|
string gamemap = DataRequest.GetHashtableJsonObject<string>(RequestData, "gamemap") ?? "";
|
||||||
bool isrank = DataRequest.GetHashtableJsonObject<bool>(RequestData, "isrank");
|
bool isrank = DataRequest.GetHashtableJsonObject<bool>(RequestData, "isrank");
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> CreateRoom: " + roomtype_string + " (" + string.Join(", ", [gamemode, gamemap]) + ")");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest) + " : " + roomtype_string + " (" + string.Join(", ", [gamemode, gamemap]) + ")", InvokeMessageType.DataRequest);
|
||||||
if (gamemode == "" || gamemap == "")
|
if (gamemode == "" || gamemap == "")
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("缺少对应的模组或地图,无法创建房间。");
|
ServerHelper.WriteLine("缺少对应的模组或地图,无法创建房间。");
|
||||||
@ -210,7 +207,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
/// <param name="ResultData"></param>
|
/// <param name="ResultData"></param>
|
||||||
private void UpdateRoom(Hashtable ResultData)
|
private void UpdateRoom(Hashtable ResultData)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> UpdateRoom");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest), InvokeMessageType.DataRequest);
|
||||||
ResultData.Add("rooms", Config.RoomList.ListRoom); // 传RoomList
|
ResultData.Add("rooms", Config.RoomList.ListRoom); // 传RoomList
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,7 +221,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
bool result = false;
|
bool result = false;
|
||||||
if (RequestData.Count >= 2)
|
if (RequestData.Count >= 2)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> QuitRoom");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest), InvokeMessageType.DataRequest);
|
||||||
string roomid = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomid") ?? "-1";
|
string roomid = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomid") ?? "-1";
|
||||||
bool isMaster = DataRequest.GetHashtableJsonObject<bool>(RequestData, "isMaster");
|
bool isMaster = DataRequest.GetHashtableJsonObject<bool>(RequestData, "isMaster");
|
||||||
|
|
||||||
@ -246,7 +243,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
bool result = false;
|
bool result = false;
|
||||||
if (RequestData.Count >= 1)
|
if (RequestData.Count >= 1)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> IntoRoom");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest), InvokeMessageType.DataRequest);
|
||||||
string roomid = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomid") ?? "-1";
|
string roomid = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomid") ?? "-1";
|
||||||
|
|
||||||
if (roomid != "-1")
|
if (roomid != "-1")
|
||||||
@ -280,7 +277,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
bool iscancel = DataRequest.GetHashtableJsonObject<bool>(RequestData, "iscancel");
|
bool iscancel = DataRequest.GetHashtableJsonObject<bool>(RequestData, "iscancel");
|
||||||
if (!iscancel)
|
if (!iscancel)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> MatchRoom : Start");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest) + " : Start", InvokeMessageType.DataRequest);
|
||||||
string roomtype_string = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomtype") ?? RoomSet.All;
|
string roomtype_string = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomtype") ?? RoomSet.All;
|
||||||
User user = DataRequest.GetHashtableJsonObject<User>(RequestData, "matcher") ?? Factory.GetUser();
|
User user = DataRequest.GetHashtableJsonObject<User>(RequestData, "matcher") ?? Factory.GetUser();
|
||||||
Server.StartMatching(roomtype_string, user);
|
Server.StartMatching(roomtype_string, user);
|
||||||
@ -288,7 +285,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 取消匹配
|
// 取消匹配
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> MatchRoom : Cancel");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest) + " : Cancel", InvokeMessageType.DataRequest);
|
||||||
Server.StopMatching();
|
Server.StopMatching();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -306,7 +303,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
string roomid = "-1";
|
string roomid = "-1";
|
||||||
if (RequestData.Count >= 1)
|
if (RequestData.Count >= 1)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> SetReady");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest), InvokeMessageType.DataRequest);
|
||||||
roomid = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomid") ?? "-1";
|
roomid = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomid") ?? "-1";
|
||||||
User user = Server.User;
|
User user = Server.User;
|
||||||
|
|
||||||
@ -332,7 +329,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
string roomid = "-1";
|
string roomid = "-1";
|
||||||
if (RequestData.Count >= 1)
|
if (RequestData.Count >= 1)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> CancelReady");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest), InvokeMessageType.DataRequest);
|
||||||
roomid = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomid") ?? "-1";
|
roomid = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomid") ?? "-1";
|
||||||
User user = Server.User;
|
User user = Server.User;
|
||||||
|
|
||||||
@ -370,7 +367,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
bool result = false;
|
bool result = false;
|
||||||
if (RequestData.Count >= 2)
|
if (RequestData.Count >= 2)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> StartGame");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest), InvokeMessageType.DataRequest);
|
||||||
string roomid = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomid") ?? "-1";
|
string roomid = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomid") ?? "-1";
|
||||||
bool isMaster = DataRequest.GetHashtableJsonObject<bool>(RequestData, "isMaster");
|
bool isMaster = DataRequest.GetHashtableJsonObject<bool>(RequestData, "isMaster");
|
||||||
|
|
||||||
@ -449,7 +446,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
bool success = false;
|
bool success = false;
|
||||||
if (RequestData.Count >= 4)
|
if (RequestData.Count >= 4)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> Reg");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest), InvokeMessageType.DataRequest);
|
||||||
string username = DataRequest.GetHashtableJsonObject<string>(RequestData, "username") ?? "";
|
string username = DataRequest.GetHashtableJsonObject<string>(RequestData, "username") ?? "";
|
||||||
string password = DataRequest.GetHashtableJsonObject<string>(RequestData, "password") ?? "";
|
string password = DataRequest.GetHashtableJsonObject<string>(RequestData, "password") ?? "";
|
||||||
string email = DataRequest.GetHashtableJsonObject<string>(RequestData, "email") ?? "";
|
string email = DataRequest.GetHashtableJsonObject<string>(RequestData, "email") ?? "";
|
||||||
@ -584,7 +581,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
User user = Factory.GetUser();
|
User user = Factory.GetUser();
|
||||||
if (RequestData.Count >= 4)
|
if (RequestData.Count >= 4)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> Login");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest), InvokeMessageType.DataRequest);
|
||||||
string username = DataRequest.GetHashtableJsonObject<string>(RequestData, "username") ?? "";
|
string username = DataRequest.GetHashtableJsonObject<string>(RequestData, "username") ?? "";
|
||||||
string password = DataRequest.GetHashtableJsonObject<string>(RequestData, "password") ?? "";
|
string password = DataRequest.GetHashtableJsonObject<string>(RequestData, "password") ?? "";
|
||||||
string autokey = DataRequest.GetHashtableJsonObject<string>(RequestData, "autokey") ?? "";
|
string autokey = DataRequest.GetHashtableJsonObject<string>(RequestData, "autokey") ?? "";
|
||||||
@ -649,7 +646,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
string msg = "无法找回您的密码,请稍后再试。"; // 返回的验证信息
|
string msg = "无法找回您的密码,请稍后再试。"; // 返回的验证信息
|
||||||
if (RequestData.Count >= 3)
|
if (RequestData.Count >= 3)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> ForgetPassword");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest), InvokeMessageType.DataRequest);
|
||||||
string username = DataRequest.GetHashtableJsonObject<string>(RequestData, ForgetVerifyCodes.Column_Username) ?? "";
|
string username = DataRequest.GetHashtableJsonObject<string>(RequestData, ForgetVerifyCodes.Column_Username) ?? "";
|
||||||
string email = DataRequest.GetHashtableJsonObject<string>(RequestData, ForgetVerifyCodes.Column_Email) ?? "";
|
string email = DataRequest.GetHashtableJsonObject<string>(RequestData, ForgetVerifyCodes.Column_Email) ?? "";
|
||||||
string verifycode = DataRequest.GetHashtableJsonObject<string>(RequestData, ForgetVerifyCodes.Column_ForgetVerifyCode) ?? "";
|
string verifycode = DataRequest.GetHashtableJsonObject<string>(RequestData, ForgetVerifyCodes.Column_ForgetVerifyCode) ?? "";
|
||||||
@ -751,7 +748,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
string msg = "无法更新您的密码,请稍后再试。";
|
string msg = "无法更新您的密码,请稍后再试。";
|
||||||
if (RequestData.Count >= 2)
|
if (RequestData.Count >= 2)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> UpdatePassword");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest), InvokeMessageType.DataRequest);
|
||||||
string username = DataRequest.GetHashtableJsonObject<string>(RequestData, UserQuery.Column_Username) ?? "";
|
string username = DataRequest.GetHashtableJsonObject<string>(RequestData, UserQuery.Column_Username) ?? "";
|
||||||
string password = DataRequest.GetHashtableJsonObject<string>(RequestData, UserQuery.Column_Password) ?? "";
|
string password = DataRequest.GetHashtableJsonObject<string>(RequestData, UserQuery.Column_Password) ?? "";
|
||||||
if (username.Trim() != "" && password.Trim() != "")
|
if (username.Trim() != "" && password.Trim() != "")
|
||||||
@ -781,7 +778,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
string roomid = "-1";
|
string roomid = "-1";
|
||||||
if (RequestData.Count >= 1)
|
if (RequestData.Count >= 1)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> GetRoomPlayerCount");
|
ServerHelper.WriteLine(Server.GetClientName() + " -> " + DataRequestSet.GetTypeString(_LastRequest), InvokeMessageType.DataRequest);
|
||||||
roomid = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomid") ?? "-1";
|
roomid = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomid") ?? "-1";
|
||||||
}
|
}
|
||||||
ResultData.Add("count", Config.RoomList.GetPlayerCount(roomid));
|
ResultData.Add("count", Config.RoomList.GetPlayerCount(roomid));
|
||||||
|
@ -113,18 +113,18 @@ void StartServer()
|
|||||||
{
|
{
|
||||||
ClientModel.Start();
|
ClientModel.Start();
|
||||||
});
|
});
|
||||||
ClientModel.SetTaskAndClientName(t, clientip);
|
ClientModel.SetClientName(clientip);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(clientip) + " 连接失败。");
|
ServerHelper.WriteLine(ServerHelper.MakeClientName(clientip) + " 连接失败。", InvokeMessageType.Core);
|
||||||
}
|
}
|
||||||
Config.ConnectingPlayerCount--;
|
Config.ConnectingPlayerCount--;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
if (--Config.ConnectingPlayerCount < 0) Config.ConnectingPlayerCount = 0;
|
if (--Config.ConnectingPlayerCount < 0) Config.ConnectingPlayerCount = 0;
|
||||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(clientip) + " 中断连接!");
|
ServerHelper.WriteLine(ServerHelper.MakeClientName(clientip) + " 中断连接!", InvokeMessageType.Core);
|
||||||
ServerHelper.Error(e);
|
ServerHelper.Error(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -156,15 +156,15 @@ bool GetGameModeList()
|
|||||||
{
|
{
|
||||||
// 同时读取Implement预设的模组和gamemods目录下的模组,最后合成一个总的列表
|
// 同时读取Implement预设的模组和gamemods目录下的模组,最后合成一个总的列表
|
||||||
List<string> supported = [];
|
List<string> supported = [];
|
||||||
GameModeLoader loader = GameModeLoader.LoadGameModes();
|
Config.GameModeLoader = GameModeLoader.LoadGameModes(Config.FunGameType, [new Action<string>(msg => ServerHelper.WriteLine(msg, InvokeMessageType.GameMode))]);
|
||||||
string[] mods = (string[]?)Implement.GetFunGameImplValue(InterfaceType.IGameModeSupported, InterfaceMethod.GameModeList, false) ?? [];
|
string[] mods = (string[]?)Implement.GetFunGameImplValue(InterfaceType.IServer, InterfaceMethod.GameModeList, false) ?? [];
|
||||||
if (mods.Length > 0)
|
if (mods.Length > 0)
|
||||||
{
|
{
|
||||||
supported.AddRange(mods);
|
supported.AddRange(mods);
|
||||||
// 检查已安装的模组中是否在Implement预设的模组中存在
|
// 检查已安装的模组中是否在Implement预设的模组中存在
|
||||||
foreach (string mod in mods)
|
foreach (string mod in mods)
|
||||||
{
|
{
|
||||||
if (!loader.Modes.ContainsKey(mod))
|
if (!Config.GameModeLoader.ServerModes.ContainsKey(mod))
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[GameMode] Load Failed: " + mod + " 不存在或未正确安装");
|
ServerHelper.WriteLine("[GameMode] Load Failed: " + mod + " 不存在或未正确安装");
|
||||||
supported.Remove(mod);
|
supported.Remove(mod);
|
||||||
@ -172,17 +172,17 @@ bool GetGameModeList()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 检查模组是否有相对应的地图
|
// 检查模组是否有相对应的地图
|
||||||
foreach (GameMode mode in loader.Modes.Values)
|
foreach (GameModeServer mode in Config.GameModeLoader.ServerModes.Values)
|
||||||
{
|
{
|
||||||
string modename = mode.Name;
|
string modename = mode.Name;
|
||||||
if (loader.Maps.ContainsKey(mode.DefaultMap))
|
if (Config.GameModeLoader.Maps.ContainsKey(mode.DefaultMap))
|
||||||
{
|
{
|
||||||
supported.Add(modename);
|
supported.Add(modename);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("[GameMode] Load Failed: " + modename + " 没有找到相对应的地图,加载失败");
|
ServerHelper.WriteLine("[GameMode] Load Failed: " + modename + " 没有找到相对应的地图,加载失败");
|
||||||
loader.Modes.Remove(modename);
|
Config.GameModeLoader.ServerModes.Remove(modename);
|
||||||
supported.Remove(modename);
|
supported.Remove(modename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -207,18 +207,18 @@ bool Connect(ClientSocket socket, Guid token, string clientip, ref bool isDebugM
|
|||||||
if (Config.ConnectingPlayerCount + Config.OnlinePlayerCount > Config.MaxPlayers)
|
if (Config.ConnectingPlayerCount + Config.OnlinePlayerCount > Config.MaxPlayers)
|
||||||
{
|
{
|
||||||
SendRefuseConnect(socket, "服务器可接受的连接数量已上限!");
|
SendRefuseConnect(socket, "服务器可接受的连接数量已上限!");
|
||||||
ServerHelper.WriteLine("服务器可接受的连接数量已上限!");
|
ServerHelper.WriteLine("服务器可接受的连接数量已上限!", InvokeMessageType.Core);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(clientip) + " 正在连接服务器 . . .");
|
ServerHelper.WriteLine(ServerHelper.MakeClientName(clientip) + " 正在连接服务器 . . .", InvokeMessageType.Core);
|
||||||
if (IsIPBanned(ListeningSocket, clientip))
|
if (IsIPBanned(ListeningSocket, clientip))
|
||||||
{
|
{
|
||||||
SendRefuseConnect(socket, "服务器已拒绝黑名单用户连接。");
|
SendRefuseConnect(socket, "服务器已拒绝黑名单用户连接。");
|
||||||
ServerHelper.WriteLine("检测到 " + ServerHelper.MakeClientName(clientip) + " 为黑名单用户,已禁止其连接!");
|
ServerHelper.WriteLine("检测到 " + ServerHelper.MakeClientName(clientip) + " 为黑名单用户,已禁止其连接!", InvokeMessageType.Core);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(read.SocketType) + "] " + ServerHelper.MakeClientName(socket.ClientIP));
|
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(read.SocketType) + "] " + ServerHelper.MakeClientName(socket.ClientIP), InvokeMessageType.Core);
|
||||||
|
|
||||||
// 读取参数
|
// 读取参数
|
||||||
// 参数1:客户端的游戏模组列表,没有服务器的需要拒绝
|
// 参数1:客户端的游戏模组列表,没有服务器的需要拒绝
|
||||||
@ -233,29 +233,30 @@ bool Connect(ClientSocket socket, Guid token, string clientip, ref bool isDebugM
|
|||||||
if (strDontHave != "")
|
if (strDontHave != "")
|
||||||
{
|
{
|
||||||
strDontHave = "客户端缺少服务器所需的模组:" + strDontHave;
|
strDontHave = "客户端缺少服务器所需的模组:" + strDontHave;
|
||||||
ServerHelper.WriteLine(strDontHave);
|
ServerHelper.WriteLine(strDontHave, InvokeMessageType.Core);
|
||||||
msg += strDontHave;
|
msg += strDontHave;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msg == "" && socket.Send(SocketMessageType.Connect, true, msg, token, Config.ServerName, Config.ServerNotice) == SocketResult.Success)
|
if (msg == "" && socket.Send(SocketMessageType.Connect, true, msg, token, Config.ServerName, Config.ServerNotice) == SocketResult.Success)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(socket.ClientIP) + " <- " + "已确认连接");
|
ServerHelper.WriteLine(ServerHelper.MakeClientName(socket.ClientIP) + " <- " + "已确认连接", InvokeMessageType.Core);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (msg != "" && socket.Send(SocketMessageType.Connect, false, msg) == SocketResult.Success)
|
else if (msg != "" && socket.Send(SocketMessageType.Connect, false, msg) == SocketResult.Success)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(socket.ClientIP) + " <- " + "拒绝连接");
|
ServerHelper.WriteLine(ServerHelper.MakeClientName(socket.ClientIP) + " <- " + "拒绝连接", InvokeMessageType.Core);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("无法传输数据,与客户端的连接可能丢失。");
|
ServerHelper.WriteLine("无法传输数据,与客户端的连接可能丢失。", InvokeMessageType.Core);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ServerHelper.WriteLine("客户端发送了不符合FunGame规定的字符,拒绝连接。");
|
SendRefuseConnect(socket, "服务器已拒绝连接。");
|
||||||
|
ServerHelper.WriteLine("客户端发送了不符合FunGame规定的字符,拒绝连接。", InvokeMessageType.Core);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -265,12 +266,12 @@ bool SendRefuseConnect(ClientSocket socket, string msg)
|
|||||||
msg = "连接被拒绝,如有疑问请联系服务器管理员:" + msg;
|
msg = "连接被拒绝,如有疑问请联系服务器管理员:" + msg;
|
||||||
if (socket.Send(SocketMessageType.Connect, false, msg) == SocketResult.Success)
|
if (socket.Send(SocketMessageType.Connect, false, msg) == SocketResult.Success)
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine(ServerHelper.MakeClientName(socket.ClientIP) + " <- " + "已拒绝连接");
|
ServerHelper.WriteLine(ServerHelper.MakeClientName(socket.ClientIP) + " <- " + "已拒绝连接", InvokeMessageType.Core);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ServerHelper.WriteLine("无法传输数据,与客户端的连接可能丢失。");
|
ServerHelper.WriteLine("无法传输数据,与客户端的连接可能丢失。", InvokeMessageType.Core);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ using Milimoe.FunGame.Core.Api.Transmittal;
|
|||||||
using Milimoe.FunGame.Core.Api.Utility;
|
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.Network;
|
using Milimoe.FunGame.Core.Library.Common.Network;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
using Milimoe.FunGame.Core.Library.SQLScript.Entity;
|
using Milimoe.FunGame.Core.Library.SQLScript.Entity;
|
||||||
@ -20,7 +21,6 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
*/
|
*/
|
||||||
public bool Running => _Running;
|
public bool Running => _Running;
|
||||||
public ClientSocket? Socket => _Socket;
|
public ClientSocket? Socket => _Socket;
|
||||||
public Task? Task => _Task;
|
|
||||||
public string ClientName => _ClientName;
|
public string ClientName => _ClientName;
|
||||||
public User User => _User;
|
public User User => _User;
|
||||||
public Room Room
|
public Room Room
|
||||||
@ -35,11 +35,12 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
/**
|
/**
|
||||||
* Private
|
* Private
|
||||||
*/
|
*/
|
||||||
|
private GameModeServer? NowGamingServer = null;
|
||||||
|
|
||||||
private ClientSocket? _Socket = null;
|
private ClientSocket? _Socket = null;
|
||||||
private bool _Running = false;
|
private bool _Running = false;
|
||||||
private User _User = General.UnknownUserInstance;
|
private User _User = General.UnknownUserInstance;
|
||||||
private Room _Room = General.HallInstance;
|
private Room _Room = General.HallInstance;
|
||||||
private Task? _Task = null;
|
|
||||||
private string _ClientName = "";
|
private string _ClientName = "";
|
||||||
|
|
||||||
private Guid CheckLoginKey = Guid.Empty;
|
private Guid CheckLoginKey = Guid.Empty;
|
||||||
@ -59,6 +60,7 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
_Socket = socket;
|
_Socket = socket;
|
||||||
_Running = running;
|
_Running = running;
|
||||||
Token = socket.Token;
|
Token = socket.Token;
|
||||||
|
this.IsDebugMode = isDebugMode;
|
||||||
if (Config.SQLMode) SQLHelper = new(this);
|
if (Config.SQLMode) SQLHelper = new(this);
|
||||||
MailSender = SmtpHelper.GetMailSender();
|
MailSender = SmtpHelper.GetMailSender();
|
||||||
DataRequestController = new(this);
|
DataRequestController = new(this);
|
||||||
@ -69,6 +71,9 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
// 接收客户端消息
|
// 接收客户端消息
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
// 禁止GameModeServer调用
|
||||||
|
if ((IServerModel)this is GameModeServer) throw new NotSupportedException("请勿在GameModeServer类中调用此方法");
|
||||||
|
|
||||||
SocketObject SocketObject = socket.Receive();
|
SocketObject SocketObject = socket.Receive();
|
||||||
SocketMessageType type = SocketObject.SocketType;
|
SocketMessageType type = SocketObject.SocketType;
|
||||||
Guid token = SocketObject.Token;
|
Guid token = SocketObject.Token;
|
||||||
@ -82,11 +87,22 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (type == SocketMessageType.EndGame)
|
||||||
|
{
|
||||||
|
NowGamingServer = null;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (type == SocketMessageType.DataRequest)
|
if (type == SocketMessageType.DataRequest)
|
||||||
{
|
{
|
||||||
return DataRequestHandler(socket, SocketObject);
|
return DataRequestHandler(socket, SocketObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (type == SocketMessageType.Gaming)
|
||||||
|
{
|
||||||
|
return GamingMessageHandler(socket, SocketObject);
|
||||||
|
}
|
||||||
|
|
||||||
if (type == SocketMessageType.HeartBeat)
|
if (type == SocketMessageType.HeartBeat)
|
||||||
{
|
{
|
||||||
return HeartBeat(socket);
|
return HeartBeat(socket);
|
||||||
@ -95,7 +111,7 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case SocketMessageType.Disconnect:
|
case SocketMessageType.Disconnect:
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + GetClientName() + " -> Disconnect");
|
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + GetClientName() + " -> Disconnect", InvokeMessageType.Core);
|
||||||
msg = "你已成功断开与服务器的连接: " + Config.ServerName + "。 ";
|
msg = "你已成功断开与服务器的连接: " + Config.ServerName + "。 ";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -113,7 +129,7 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
{
|
{
|
||||||
if (SQLHelper != null)
|
if (SQLHelper != null)
|
||||||
{
|
{
|
||||||
Hashtable result = new();
|
Hashtable result = [];
|
||||||
DataRequestType type = DataRequestType.UnKnown;
|
DataRequestType type = DataRequestType.UnKnown;
|
||||||
|
|
||||||
if (SocketObject.Parameters.Length > 0)
|
if (SocketObject.Parameters.Length > 0)
|
||||||
@ -121,7 +137,7 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
type = SocketObject.GetParam<DataRequestType>(0);
|
type = SocketObject.GetParam<DataRequestType>(0);
|
||||||
Hashtable data = SocketObject.GetParam<Hashtable>(1) ?? new();
|
Hashtable data = SocketObject.GetParam<Hashtable>(1) ?? [];
|
||||||
|
|
||||||
SQLHelper.NewTransaction();
|
SQLHelper.NewTransaction();
|
||||||
result = DataRequestController.GetResultData(type, data);
|
result = DataRequestController.GetResultData(type, data);
|
||||||
@ -141,6 +157,35 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool GamingMessageHandler(ClientSocket socket, SocketObject SocketObject)
|
||||||
|
{
|
||||||
|
if (NowGamingServer != null)
|
||||||
|
{
|
||||||
|
Hashtable result = [];
|
||||||
|
GamingType type = GamingType.None;
|
||||||
|
|
||||||
|
if (SocketObject.Parameters.Length > 0)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
type = SocketObject.GetParam<GamingType>(0);
|
||||||
|
Hashtable data = SocketObject.GetParam<Hashtable>(1) ?? [];
|
||||||
|
|
||||||
|
result = NowGamingServer.GamingMessageHandler(UserName, type, data);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
ServerHelper.Error(e);
|
||||||
|
return Send(socket, SocketMessageType.Gaming, type, result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Send(socket, SocketMessageType.Gaming, type, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public bool Send(ClientSocket socket, SocketMessageType type, params object[] objs)
|
public bool Send(ClientSocket socket, SocketMessageType type, params object[] objs)
|
||||||
{
|
{
|
||||||
// 发送消息给客户端
|
// 发送消息给客户端
|
||||||
@ -162,7 +207,7 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
}
|
}
|
||||||
object obj = objs[0];
|
object obj = objs[0];
|
||||||
if (obj.GetType() == typeof(string) && (string)obj != "")
|
if (obj.GetType() == typeof(string) && (string)obj != "")
|
||||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + GetClientName() + " <- " + obj);
|
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + GetClientName() + " <- " + obj, InvokeMessageType.Core);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
throw new CanNotSendToClientException();
|
throw new CanNotSendToClientException();
|
||||||
@ -177,13 +222,13 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
|
|
||||||
public void Start()
|
public void Start()
|
||||||
{
|
{
|
||||||
|
if ((IServerModel)this is GameModeServer) throw new NotSupportedException("请勿在GameModeServer类中调用此方法"); // 禁止GameModeServer调用
|
||||||
Task StreamReader = Task.Factory.StartNew(CreateStreamReader);
|
Task StreamReader = Task.Factory.StartNew(CreateStreamReader);
|
||||||
Task PeriodicalQuerier = Task.Factory.StartNew(CreatePeriodicalQuerier);
|
Task PeriodicalQuerier = Task.Factory.StartNew(CreatePeriodicalQuerier);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetTaskAndClientName(Task t, string ClientName)
|
public void SetClientName(string ClientName)
|
||||||
{
|
{
|
||||||
_Task = t;
|
|
||||||
_ClientName = ClientName;
|
_ClientName = ClientName;
|
||||||
// 添加客户端到列表中
|
// 添加客户端到列表中
|
||||||
Server.AddClient(_ClientName, this);
|
Server.AddClient(_ClientName, this);
|
||||||
@ -335,24 +380,26 @@ namespace Milimoe.FunGame.Server.Model
|
|||||||
room = Config.RoomList[roomid];
|
room = Config.RoomList[roomid];
|
||||||
}
|
}
|
||||||
if (room.Roomid == "-1") return;
|
if (room.Roomid == "-1") return;
|
||||||
foreach (ServerModel serverTask in Server.UserList.Cast<ServerModel>().Where(model => usernames.Length > 0 && usernames.Contains(model.User.Username)))
|
// 启动服务器
|
||||||
|
TaskUtility.NewTask(() =>
|
||||||
{
|
{
|
||||||
if (serverTask != null && serverTask.Socket != null)
|
if (Config.GameModeLoader != null && Config.GameModeLoader.ServerModes.ContainsKey(room.GameMode))
|
||||||
{
|
{
|
||||||
serverTask.Send(serverTask.Socket, SocketMessageType.StartGame, room, users);
|
NowGamingServer = Config.GameModeLoader.GetServerMode(room.GameMode);
|
||||||
}
|
Dictionary<string, IServerModel> others = Server.UserList.Cast<IServerModel>().Where(model => usernames.Contains(model.User.Username) && model.User.Username != UserName).ToDictionary(k => k.User.Username, v => v);
|
||||||
}
|
if (NowGamingServer.StartServer(room.GameMode, room, users, this, others, new Action<string>(msg => ServerHelper.WriteLine(msg))))
|
||||||
TaskUtility.RunTimer(() =>
|
|
||||||
{
|
|
||||||
foreach (ServerModel serverTask in Server.UserList.Cast<ServerModel>().Where(model => usernames.Length > 0 && usernames.Contains(model.User.Username)))
|
|
||||||
{
|
|
||||||
if (serverTask != null && serverTask.Socket != null)
|
|
||||||
{
|
{
|
||||||
Config.RoomList.CancelReady(roomid, serverTask.User);
|
foreach (ServerModel serverTask in Server.UserList.Cast<ServerModel>().Where(model => usernames.Contains(model.User.Username)))
|
||||||
serverTask.Send(serverTask.Socket, SocketMessageType.EndGame, room, users);
|
{
|
||||||
|
if (serverTask != null && serverTask.Socket != null)
|
||||||
|
{
|
||||||
|
Config.RoomList.CancelReady(roomid, serverTask.User);
|
||||||
|
serverTask.Send(serverTask.Socket, SocketMessageType.StartGame, room, users);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, 20 * 1000);
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void IntoRoom(string roomid)
|
public void IntoRoom(string roomid)
|
||||||
|
@ -2,31 +2,71 @@
|
|||||||
using Milimoe.FunGame.Core.Api.Transmittal;
|
using Milimoe.FunGame.Core.Api.Transmittal;
|
||||||
using Milimoe.FunGame.Core.Api.Utility;
|
using Milimoe.FunGame.Core.Api.Utility;
|
||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
using Milimoe.FunGame.Server.Others;
|
using Milimoe.FunGame.Server.Others;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Server.Utility
|
namespace Milimoe.FunGame.Server.Utility
|
||||||
{
|
{
|
||||||
public class ServerHelper
|
public class ServerHelper
|
||||||
{
|
{
|
||||||
public static string GetPrefix()
|
public static string GetPrefix(InvokeMessageType type)
|
||||||
{
|
{
|
||||||
|
string prefix = "";
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case InvokeMessageType.Core:
|
||||||
|
Console.ForegroundColor = ConsoleColor.Yellow;
|
||||||
|
prefix = "[Core] ";
|
||||||
|
break;
|
||||||
|
case InvokeMessageType.Error:
|
||||||
|
Console.ForegroundColor = ConsoleColor.Red;
|
||||||
|
prefix = "[Error] ";
|
||||||
|
break;
|
||||||
|
case InvokeMessageType.Api:
|
||||||
|
Console.ForegroundColor = ConsoleColor.Yellow;
|
||||||
|
prefix = "[Api] ";
|
||||||
|
break;
|
||||||
|
case InvokeMessageType.Interface:
|
||||||
|
Console.ForegroundColor = ConsoleColor.Magenta;
|
||||||
|
prefix = "[Interface] ";
|
||||||
|
break;
|
||||||
|
case InvokeMessageType.DataRequest:
|
||||||
|
Console.ForegroundColor = ConsoleColor.Cyan;
|
||||||
|
prefix = "[DataRequest] ";
|
||||||
|
break;
|
||||||
|
case InvokeMessageType.Plugin:
|
||||||
|
Console.ForegroundColor = ConsoleColor.Green;
|
||||||
|
prefix = "[Plugin] ";
|
||||||
|
break;
|
||||||
|
case InvokeMessageType.GameMode:
|
||||||
|
Console.ForegroundColor = ConsoleColor.Blue;
|
||||||
|
prefix = "[GameMode] ";
|
||||||
|
break;
|
||||||
|
case InvokeMessageType.System:
|
||||||
|
case InvokeMessageType.None:
|
||||||
|
default:
|
||||||
|
Console.ForegroundColor = ConsoleColor.Gray;
|
||||||
|
prefix = "[System] ";
|
||||||
|
break;
|
||||||
|
}
|
||||||
DateTime now = DateTime.Now;
|
DateTime now = DateTime.Now;
|
||||||
return now.AddMilliseconds(-now.Millisecond).ToString() + " " + Config.ServerName + ":";
|
return now.AddMilliseconds(-now.Millisecond).ToString() + " " + prefix + Config.ServerName + ":";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Error(Exception e)
|
public static void Error(Exception e)
|
||||||
{
|
{
|
||||||
Console.Write("\r" + GetPrefix() + e.Message + "\n" + e.StackTrace + "\n\r> ");
|
Console.Write("\r" + GetPrefix(InvokeMessageType.Error) + e.Message + "\n" + e.StackTrace + "\n\r> ");
|
||||||
|
Console.ResetColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Write(string msg)
|
public static void Write(string msg, InvokeMessageType type = InvokeMessageType.System)
|
||||||
{
|
{
|
||||||
if (msg.Trim() != "") Console.Write("\r" + GetPrefix() + msg + "> ");
|
if (msg.Trim() != "") Console.Write("\r" + GetPrefix(type) + msg + "> ");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WriteLine(string msg)
|
public static void WriteLine(string msg, InvokeMessageType type = InvokeMessageType.System)
|
||||||
{
|
{
|
||||||
if (msg.Trim() != "") Console.Write("\r" + GetPrefix() + msg + "\n\r> ");
|
if (msg.Trim() != "") Console.Write("\r" + GetPrefix(type) + msg + "\n\r> ");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Type()
|
public static void Type()
|
||||||
|
@ -38,7 +38,7 @@ namespace Milimoe.FunGame.Server.Utility
|
|||||||
public override int Execute()
|
public override int Execute()
|
||||||
{
|
{
|
||||||
// _IsOneTime = true需要手动创建连接和关闭
|
// _IsOneTime = true需要手动创建连接和关闭
|
||||||
ServerHelper.WriteLine("SQLQuery -> " + Script);
|
ServerHelper.WriteLine("SQLQuery -> " + Script, InvokeMessageType.Api);
|
||||||
_DataSet = new DataSet();
|
_DataSet = new DataSet();
|
||||||
_UpdateRows = MySQLManager.Execute(this, out _Result);
|
_UpdateRows = MySQLManager.Execute(this, out _Result);
|
||||||
if (_IsOneTime) Close();
|
if (_IsOneTime) Close();
|
||||||
@ -54,7 +54,7 @@ namespace Milimoe.FunGame.Server.Utility
|
|||||||
public override int Execute(string Script)
|
public override int Execute(string Script)
|
||||||
{
|
{
|
||||||
// _IsOneTime = true需要手动创建连接和关闭
|
// _IsOneTime = true需要手动创建连接和关闭
|
||||||
ServerHelper.WriteLine("SQLQuery -> " + Script);
|
ServerHelper.WriteLine("SQLQuery -> " + Script, InvokeMessageType.Api);
|
||||||
this.Script = Script;
|
this.Script = Script;
|
||||||
_DataSet = new DataSet();
|
_DataSet = new DataSet();
|
||||||
_UpdateRows = MySQLManager.Execute(this, out _Result);
|
_UpdateRows = MySQLManager.Execute(this, out _Result);
|
||||||
@ -70,7 +70,7 @@ namespace Milimoe.FunGame.Server.Utility
|
|||||||
public override DataSet ExecuteDataSet()
|
public override DataSet ExecuteDataSet()
|
||||||
{
|
{
|
||||||
// _IsOneTime = true需要手动创建连接和关闭
|
// _IsOneTime = true需要手动创建连接和关闭
|
||||||
ServerHelper.WriteLine("SQLQuery -> " + Script);
|
ServerHelper.WriteLine("SQLQuery -> " + Script, InvokeMessageType.Api);
|
||||||
_DataSet = MySQLManager.ExecuteDataSet(this, out _Result, out _UpdateRows);
|
_DataSet = MySQLManager.ExecuteDataSet(this, out _Result, out _UpdateRows);
|
||||||
if (_IsOneTime) Close();
|
if (_IsOneTime) Close();
|
||||||
return DataSet;
|
return DataSet;
|
||||||
@ -85,7 +85,7 @@ namespace Milimoe.FunGame.Server.Utility
|
|||||||
public override DataSet ExecuteDataSet(string Script)
|
public override DataSet ExecuteDataSet(string Script)
|
||||||
{
|
{
|
||||||
// _IsOneTime = true需要手动创建连接和关闭
|
// _IsOneTime = true需要手动创建连接和关闭
|
||||||
ServerHelper.WriteLine("SQLQuery -> " + Script);
|
ServerHelper.WriteLine("SQLQuery -> " + Script, InvokeMessageType.Api);
|
||||||
this.Script = Script;
|
this.Script = Script;
|
||||||
_DataSet = MySQLManager.ExecuteDataSet(this, out _Result, out _UpdateRows);
|
_DataSet = MySQLManager.ExecuteDataSet(this, out _Result, out _UpdateRows);
|
||||||
if (_IsOneTime) Close();
|
if (_IsOneTime) Close();
|
||||||
@ -128,7 +128,7 @@ namespace Milimoe.FunGame.Server.Utility
|
|||||||
this.ServerModel = ServerModel;
|
this.ServerModel = ServerModel;
|
||||||
Script = "";
|
Script = "";
|
||||||
CommandType = CommandType.Text;
|
CommandType = CommandType.Text;
|
||||||
Parameters = Array.Empty<MySqlParameter>();
|
Parameters = [];
|
||||||
_Connection = new MySQLConnection(out _ServerInfo);
|
_Connection = new MySQLConnection(out _ServerInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user