private void OnJoinRoomRequest(ProtobufPacket <JoinRoomRequestPacket> packet) { JoinRoomRequestPacket request = packet.ProtobufMessage; JoinRoomAnswerPacket send = new JoinRoomAnswerPacket(); bool result = NetworkLobby.JoinRoom(request.RoomName, request.UserName, out MNetworkRoom room); // Packet Data Set send.Success = result; send.RoomName = request.RoomName; Debug.Log($"S:[{packet.Serial}] Request to join the room. Name: [{request.UserName}] Room: [{request.RoomName}] Result: [{send.Success}]"); if (result == true) { ChattingAnswerPacket joinMessage = new ChattingAnswerPacket(); joinMessage.Text = $"{request.UserName} 님이 방에 참가했습니다."; SendPacket(new ProtobufPacket <ChattingAnswerPacket>(packet.Serial, PacketEnum.ProcessType.Data, (int)MessageType.ChattingAnswer, joinMessage), room.SerialList); } SendPacket(new ProtobufPacket <JoinRoomAnswerPacket>(packet.Serial, PacketEnum.ProcessType.Data, (int)MessageType.JoinRoomAnswer, send)); }
private void OnCreateAndJoinRoomRequest(ProtobufPacket <CreateAndJoinRoomRequestPacket> packet) { CreateAndJoinRoomRequestPacket request = packet.ProtobufMessage; CreateAndJoinRoomAnswerPacket send = new CreateAndJoinRoomAnswerPacket(); // Packet Data Set bool success1 = NetworkLobby.AddRoom(request.RoomName, new MNetworkRoom(request.RoomName)); bool success2 = NetworkLobby.JoinRoom(request.RoomName, request.UserName, out MNetworkRoom room); Debug.Log($"S:[{packet.Serial}] Room creation request. Room: [{request.RoomName}] Result: [{send.Success}]"); Debug.Log($"S:[{packet.Serial}] Request to join the room. Name: [{request.UserName}] Room: [{request.RoomName}] Result: [{send.Success}]"); if (success1 && success2 == true) { ChattingAnswerPacket joinMessage = new ChattingAnswerPacket(); joinMessage.Text = $"{request.UserName} 님이 방에 참가했습니다."; SendPacket(new ProtobufPacket <ChattingAnswerPacket>(packet.Serial, PacketEnum.ProcessType.Data, (int)MessageType.ChattingAnswer, joinMessage), room.SerialList); } send.Success = success1 && success2; send.RoomName = request.RoomName; SendPacket(new ProtobufPacket <CreateAndJoinRoomAnswerPacket>(packet.Serial, PacketEnum.ProcessType.Data, (int)MessageType.CreateAndJoinRoomAnswer, send)); }
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); }
public void OnChattingAnswer(ProtobufPacket <ChattingAnswerPacket> packet) { ChattingAnswerPacket answer = packet.ProtobufMessage; Debug.Log(answer.Text); OnChatting?.Invoke(this, answer.Text); }
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)); }