添加BannedList

This commit is contained in:
Mili 2023-03-12 11:54:41 +08:00
parent f7025ed27c
commit 8db0dd9fa1
3 changed files with 20 additions and 2 deletions

View File

@ -84,6 +84,7 @@ void StartServer()
ListeningSocket = ServerSocket.StartListening(); ListeningSocket = ServerSocket.StartListening();
// 开始监听连接 // 开始监听连接
AddBannedList(ListeningSocket);
Config.RoomList = new(ListeningSocket); Config.RoomList = new(ListeningSocket);
ServerHelper.WriteLine("Listen -> " + Config.ServerPort); ServerHelper.WriteLine("Listen -> " + Config.ServerPort);
ServerHelper.WriteLine("服务器启动成功,开始监听 . . ."); ServerHelper.WriteLine("服务器启动成功,开始监听 . . .");
@ -110,7 +111,7 @@ void StartServer()
} }
Config.ConnectingPlayersCount++; Config.ConnectingPlayersCount++;
ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientIPAddress) + " 正在连接服务器 . . ."); ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientIPAddress) + " 正在连接服务器 . . .");
if (Config.BannedList.ContainsKey(ClientIPAddress)) if (ListeningSocket.BannedList.Contains(ClientIPAddress))
{ {
SendRefuseConnect(socket, "服务器已拒绝黑名单用户连接。"); SendRefuseConnect(socket, "服务器已拒绝黑名单用户连接。");
ServerHelper.WriteLine("检测到 " + SocketHelper.MakeClientName(ClientIPAddress) + " 为黑名单用户,已禁止其连接!"); ServerHelper.WriteLine("检测到 " + SocketHelper.MakeClientName(ClientIPAddress) + " 为黑名单用户,已禁止其连接!");
@ -213,3 +214,12 @@ SQLResult TestSQLConnection()
new MySQLHelper(ServerLoginLogs.Insert_ServerLoginLogs(Config.ServerName, Config.ServerKey)).Execute(out SQLResult TestResult); new MySQLHelper(ServerLoginLogs.Insert_ServerLoginLogs(Config.ServerName, Config.ServerKey)).Execute(out SQLResult TestResult);
return TestResult; return TestResult;
} }
void AddBannedList(ServerSocket server)
{
string[] bans = Config.ServerBannedList.Split(',');
foreach (string banned in bans)
{
server.BannedList.Add(banned);
}
}

View File

@ -14,6 +14,7 @@ namespace Milimoe.FunGame.Server.Others
public static string ServerPassword { get; set; } = ""; // 服务器的密码 public static string ServerPassword { get; set; } = ""; // 服务器的密码
public static string ServerDescription { get; set; } = ""; // 服务器的描述 public static string ServerDescription { get; set; } = ""; // 服务器的描述
public static string ServerKey { get; set; } = ""; // 注册社区服务器的Key public static string ServerKey { get; set; } = ""; // 注册社区服务器的Key
public static string ServerBannedList { get; set; } = ""; // 禁止连接的黑名单
public static int MaxPlayers { get; set; } = 20; // 最多接受连接的玩家数量 public static int MaxPlayers { get; set; } = 20; // 最多接受连接的玩家数量
public static int MaxConnectionFaileds { get; set; } = 5; // 最大连接失败次数 public static int MaxConnectionFaileds { get; set; } = 5; // 最大连接失败次数
public static int OnlinePlayersCount { get; set; } = 0; // 已连接的玩家数量 public static int OnlinePlayersCount { get; set; } = 0; // 已连接的玩家数量
@ -21,7 +22,6 @@ namespace Milimoe.FunGame.Server.Others
public static Encoding DefaultEncoding { get; } = General.DefaultEncoding; // 默认传输字符集 public static Encoding DefaultEncoding { get; } = General.DefaultEncoding; // 默认传输字符集
public static FunGameInfo.FunGame FunGameType { get; } = FunGameInfo.FunGame.FunGame_Server; public static FunGameInfo.FunGame FunGameType { get; } = FunGameInfo.FunGame.FunGame_Server;
public static Hashtable OrderList { get; } = new(); public static Hashtable OrderList { get; } = new();
public static Hashtable BannedList { get; } = new();
public static RoomList? RoomList { get; set; } public static RoomList? RoomList { get; set; }
} }

View File

@ -40,6 +40,7 @@ namespace Milimoe.FunGame.Server.Utility
settings.Add("Notice", INIHelper.ReadINI("Server", "Notice")); settings.Add("Notice", INIHelper.ReadINI("Server", "Notice"));
settings.Add("Key", INIHelper.ReadINI("Server", "Key")); settings.Add("Key", INIHelper.ReadINI("Server", "Key"));
settings.Add("Status", Convert.ToInt32(INIHelper.ReadINI("Server", "Status"))); settings.Add("Status", Convert.ToInt32(INIHelper.ReadINI("Server", "Status")));
settings.Add("BannedList", INIHelper.ReadINI("Server", "BannedList"));
settings.Add("OfficialMail", INIHelper.ReadINI("ServerMail", "OfficialMail")); settings.Add("OfficialMail", INIHelper.ReadINI("ServerMail", "OfficialMail"));
settings.Add("SupportMail", INIHelper.ReadINI("ServerMail", "SupportMail")); settings.Add("SupportMail", INIHelper.ReadINI("ServerMail", "SupportMail"));
settings.Add("Port", Convert.ToInt32(INIHelper.ReadINI("Socket", "Port"))); settings.Add("Port", Convert.ToInt32(INIHelper.ReadINI("Socket", "Port")));
@ -61,19 +62,26 @@ namespace Milimoe.FunGame.Server.Utility
string? Describe = (string?)settings["Describe"]; string? Describe = (string?)settings["Describe"];
string? Notice = (string?)settings["Notice"]; string? Notice = (string?)settings["Notice"];
string? Key = (string?)settings["Key"]; string? Key = (string?)settings["Key"];
string? BannedList = (string?)settings["BannedList"];
if (Name != null) Config.ServerName = Name; if (Name != null) Config.ServerName = Name;
if (Password != null) Config.ServerPassword = Password; if (Password != null) Config.ServerPassword = Password;
if (Describe != null) Config.ServerDescription = Describe; if (Describe != null) Config.ServerDescription = Describe;
if (Notice != null) Config.ServerNotice = Notice; if (Notice != null) Config.ServerNotice = Notice;
if (Key != null) Config.ServerKey = Key; if (Key != null) Config.ServerKey = Key;
if (BannedList != null) Config.ServerBannedList = BannedList;
string? OfficialMail = (string?)settings["OfficialMail"]; string? OfficialMail = (string?)settings["OfficialMail"];
string? SupportMail = (string?)settings["SupportMail"]; string? SupportMail = (string?)settings["SupportMail"];
if (OfficialMail != null) OfficialEmail.Email = OfficialMail; if (OfficialMail != null) OfficialEmail.Email = OfficialMail;
if (SupportMail != null) OfficialEmail.SupportEmail = SupportMail; if (SupportMail != null) OfficialEmail.SupportEmail = SupportMail;
int? Status = (int?)settings["Status"]; int? Status = (int?)settings["Status"];
int? Port = (int?)settings["Port"]; int? Port = (int?)settings["Port"];
int? MaxPlayer = (int?)settings["MaxPlayer"]; int? MaxPlayer = (int?)settings["MaxPlayer"];
int? MaxConnectFailed = (int?)settings["MaxConnectFailed"]; int? MaxConnectFailed = (int?)settings["MaxConnectFailed"];
if (Status != null) Config.ServerStatus = (int)Status; if (Status != null) Config.ServerStatus = (int)Status;
if (Port != null) Config.ServerPort = (int)Port; if (Port != null) Config.ServerPort = (int)Port;
if (MaxPlayer != null) Config.MaxPlayers = (int)MaxPlayer; if (MaxPlayer != null) Config.MaxPlayers = (int)MaxPlayer;