using Google.Protobuf; using Google.Protobuf.WellKnownTypes; using ServerCore; using ServerBase; using ServerCommon; using ServerCommon.BusinessLogDomain; using MetaAssets; using ServerControlCenter; using ControlCenter.NamedPipe; using ControlCenter.NamedPipe.Extensions; namespace GameServer.Monitor.PacketHandler; public class UserConnectionBlockServerMessageReceiver : NamedPipeReceiver { public UserConnectionBlockServerMessageReceiver() { } public override async Task Handle(A2S_REQ_USER_CONNECTION_BLOCK_SERVER message, string message_id) { Log.getLogger().debug($"{nameof(UserConnectionBlockServerMessageReceiver)}: Receive - message_id[{message_id}] / message[{message}]"); var server_logic = GameServerApp.getServerLogic(); var msg = new S2A_ACK_USER_CONNECTION_BLOCK_SERVER { Result = new NAMED_PIPE_RESULT() }; var is_success = await server_logic.onBlockAccountLogin(); if (false == is_success) { msg.Result.SetFailMessage($"AtomicBool failed to CompareExchange with true !!!"); } NamedPipeMonitor.SetUserConnectionBlockStatus(server_logic.getAccountLoginBlockEnable().Value); var send_success = await NamedPipeMonitor.SendMessageAsync(msg, message_id); if (NamedPipeResultCode.Success != send_success) { Log.getLogger().error($"Failed to send !!! : {msg.toBasicString()}"); } } }