From acf9a545c95d47bb3b8bc656b74890b082b7c2a5 Mon Sep 17 00:00:00 2001 From: Mili Date: Mon, 13 Mar 2023 23:55:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=B0=E5=BD=95=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E6=97=B6=E9=97=B4=EF=BC=8C=E4=BF=AE=E6=94=B9=E8=81=8A?= =?UTF-8?q?=E5=A4=A9=E5=AD=97=E7=AC=A6=E4=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FunGame.Server/Model/ServerModel.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/FunGame.Server/Model/ServerModel.cs b/FunGame.Server/Model/ServerModel.cs index 5522d45..6faa457 100644 --- a/FunGame.Server/Model/ServerModel.cs +++ b/FunGame.Server/Model/ServerModel.cs @@ -42,6 +42,8 @@ namespace Milimoe.FunGame.Server.Model private readonly ServerSocket Server; private readonly MySQLHelper SQLHelper; private readonly MailSender? MailSender; + private long LoginTime; + private long LogoutTime; public ServerModel(ServerSocket server, ClientSocket socket, bool running) { @@ -132,6 +134,7 @@ namespace Milimoe.FunGame.Server.Model AddUser(); GetUsersCount(); // CheckLogin + LoginTime = DateTime.Now.Ticks; SQLHelper.Execute(UserQuery.Update_CheckLogin(UserName, socket.ClientIP.Split(':')[0]), out _); return Send(socket, type, UserName, Password); } @@ -180,7 +183,7 @@ namespace Milimoe.FunGame.Server.Model { if (Client != null && User != null) { - Client.Send(Client.Socket!, SocketMessageType.Chat, User.Username, msg); + Client.Send(Client.Socket!, SocketMessageType.Chat, User.Username, DateTimeUtility.GetNowShortTime() + msg); } } } @@ -401,6 +404,14 @@ namespace Milimoe.FunGame.Server.Model { if (User != null && this != null) { + LogoutTime = DateTime.Now.Ticks; + int TotalMinutes = Convert.ToInt32((new DateTime(LogoutTime) - new DateTime(LoginTime)).TotalMinutes); + SQLHelper.Execute(UserQuery.Update_GameTime(User.Username, TotalMinutes), out SQLResult result); + if (SQLHelper.Result == SQLResult.Success) + { + ServerHelper.WriteLine("OnlinePlayers: 玩家 " + User.Username + " 本次已游玩" + TotalMinutes + "分钟"); + } + else ServerHelper.WriteLine("OnlinePlayers: 无法更新玩家 " + User.Username + " 的游戏时长"); if (Server.RemoveUser(User.Username)) { ServerHelper.WriteLine("OnlinePlayers: 玩家 " + User.Username + " 已移除");