초기커밋

This commit is contained in:
2025-05-01 07:20:41 +09:00
commit 98bb2e3c5c
2747 changed files with 646947 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
using ControlCenter.NamedPipe;
using ServerControlCenter;
namespace GameServer.Monitor.PacketHandler;
public class StopServerMessageReceiver : NamedPipeReceiver<A2S_REQ_STOP_SERVER>
{
public StopServerMessageReceiver() { }
public override async Task Handle(A2S_REQ_STOP_SERVER message, string message_id)
{
Log.getLogger().debug($"{nameof(StopServerMessageReceiver)}: Receive - message_id[{message_id}] / message[{message}]");
var server_logic = GameServerApp.getServerLogic();
var is_success = await server_logic.onBlockAccountLogin();
if (!is_success)
{
return;
}
await NamedPipeMonitor.ChangeServerStatus(ServerStatus.ReserveToStop);
var timer = new PeriodicTimer(TimeSpan.FromMilliseconds(1_000));
while (true)
{
await timer.WaitForNextTickAsync();
var can_stop = CheckServerStatusForStopAsync();
if (can_stop)
{
break;
}
}
timer.Dispose();
// process 종료
await server_logic.onStopServer();
Environment.Exit(0);
}
private bool CheckServerStatusForStopAsync()
{
var server_logic = GameServerApp.getServerLogic();
var check_count = server_logic.getProudNetListener().getEntityWithSessions().Count;
Log.getLogger().debug($"server_name:[{server_logic.getServerName()}] / check_count: [{check_count}]");
//조건 1. 현재 Client Session 수 체크
return check_count <= 0;
}
}