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; public class UserConnectionBlockCancelServerMessageReceiver : NamedPipeReceiver { public UserConnectionBlockCancelServerMessageReceiver() { } public override async Task Handle(A2S_REQ_USER_CONNECTION_BLOCK_CANCEL_SERVER message, string message_id) { Log.getLogger().info($"{nameof(UserConnectionBlockCancelServerMessageReceiver)}: Receive - message_id[{message_id}] / message[{message}]"); var server_logic = GameServerApp.getServerLogic(); var msg = new S2A_ACK_USER_CONNECTION_BLOCK_CANCEL_SERVER { Result = new NAMED_PIPE_RESULT() }; var is_success = await server_logic.onCancelAccountLoginBlock(); 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()}"); } } }