From 4558110af93539e43a87d63156ae64dca3b5266f Mon Sep 17 00:00:00 2001 From: milimoe Date: Sun, 10 Sep 2023 13:55:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BAServerSocket=E6=B7=BB=E5=8A=A0UserList?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Interface/Base/IServerModel.cs | 2 +- Library/Common/Network/ServerSocket.cs | 41 +++++++++++++++++++++++--- 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/Interface/Base/IServerModel.cs b/Interface/Base/IServerModel.cs index 10b25c3..6b59bb8 100644 --- a/Interface/Base/IServerModel.cs +++ b/Interface/Base/IServerModel.cs @@ -9,7 +9,7 @@ namespace Milimoe.FunGame.Core.Interface.Base public abstract bool Running { get; } public abstract ClientSocket? Socket { get; } public abstract Task? Task { get; } - public abstract User? User { get; } + public abstract User User { get; } public abstract string ClientName { get; } public abstract bool Read(ClientSocket socket); diff --git a/Library/Common/Network/ServerSocket.cs b/Library/Common/Network/ServerSocket.cs index f4e5307..cd7ceb2 100644 --- a/Library/Common/Network/ServerSocket.cs +++ b/Library/Common/Network/ServerSocket.cs @@ -15,20 +15,29 @@ namespace Milimoe.FunGame.Core.Library.Common.Network public string ServerNotice { get; } = ""; public bool Connected => Instance != null && Instance.Connected; public List ClientList => OnlineClients.GetList(); + public List UserList => OnlineUsers.GetList(); public List BannedList { get; } = new(); public int ClientCount => OnlineClients.Count; + public int UserCount => OnlineUsers.Count; public int BannedCount => BannedList.Count; private readonly ModelManager OnlineClients; + private readonly ModelManager OnlineUsers; private ServerSocket(System.Net.Sockets.Socket Instance, int ServerPort, int MaxConnection = 0) { this.Instance = Instance; this.ServerPort = ServerPort; if (MaxConnection <= 0) + { OnlineClients = new(); + OnlineUsers = new(); + } else + { OnlineClients = new(MaxConnection); + OnlineUsers = new(MaxConnection); + } } public static ServerSocket StartListening(int Port = 22222, int MaxConnection = 0) @@ -51,29 +60,53 @@ namespace Milimoe.FunGame.Core.Library.Common.Network throw new SocketGetClientException(); } - public bool Add(string name, IServerModel t) + public bool AddClient(string name, IServerModel t) { name = name.ToLower(); return OnlineClients.Add(name, t); } - public bool Remove(string name) + public bool RemoveClient(string name) { name = name.ToLower(); return OnlineClients.Remove(name); } - public bool Contains(string name) + public bool ContainsClient(string name) { name = name.ToLower(); return OnlineClients.ContainsKey(name); } - public IServerModel Get(string name) + public IServerModel GetClient(string name) { name = name.ToLower(); return OnlineClients[name]; } + + public bool AddUser(string name, IServerModel t) + { + name = name.ToLower(); + return OnlineUsers.Add(name, t); + } + + public bool RemoveUser(string name) + { + name = name.ToLower(); + return OnlineUsers.Remove(name); + } + + public bool ContainsUser(string name) + { + name = name.ToLower(); + return OnlineUsers.ContainsKey(name); + } + + public IServerModel GetUser(string name) + { + name = name.ToLower(); + return OnlineUsers[name]; + } public void Close() {