private void OnChattingRequest(ProtobufPacket <ChattingRequestPacket> packet) { ChattingRequestPacket request = packet.ProtobufMessage; ChattingAnswerPacket send = new ChattingAnswerPacket(); // Packet Data Set MNetworkPlayer sender = NetworkLobby.FindPlayer(request.Sender); if (sender == null) { return; } MNetworkRoom room = NetworkLobby.FindRoom(sender.RoomKey); if (room == null) { return; } send.Text = $"[{Time.TimeLogHMS}] [{request.Sender}] : {request.Text}"; Debug.Log($"S:[{packet.Serial}] Chat: <[{sender.RoomKey}]{send.Text}>"); SendPacket(new ProtobufPacket <ChattingAnswerPacket>(packet.Serial, PacketEnum.ProcessType.Data, (int)MessageType.ChattingAnswer, send), room.SerialList); }
private void OnExitRoomRequest(ProtobufPacket <ExitRoomRequestPacket> packet) { ExitRoomRequestPacket request = packet.ProtobufMessage; ExitRoomAnswerPacket send = new ExitRoomAnswerPacket(); // Packet Data Set MNetworkRoom targetRoom = NetworkLobby.FindRoom(request.RoomName); MNetworkPlayer targetPlayer = NetworkLobby.FindPlayer(request.UserName); bool result = NetworkLobby.ExitFromRoom(targetRoom, targetPlayer); send.Success = result; Debug.Log($"S:[{packet.Serial}] Room exit request. Name: [{request.UserName}] Room: [{request.RoomName}] Result: [{send.Success}]"); if (targetRoom.PlayerCount == 0) { if (NetworkLobby.DeleteRoom(request.RoomName) == true) { Debug.Log($"Room deleted. Room: [{request.RoomName}]"); } } else { ChattingAnswerPacket exitMessage = new ChattingAnswerPacket(); exitMessage.Text = $"{targetPlayer.UserName} 님이 방에서 나갔습니다."; SendPacket(new ProtobufPacket <ChattingAnswerPacket>(packet.Serial, PacketEnum.ProcessType.Data, (int)MessageType.ChattingAnswer, exitMessage), targetRoom.SerialList); } SendPacket(new ProtobufPacket <ExitRoomAnswerPacket>(packet.Serial, PacketEnum.ProcessType.Data, (int)MessageType.ExitRoomAnswer, send)); }