private void AcceptClient(JoinServerRequest request) { Server.Instance.joinedPlayers.Add(agent); agent.nickname = request.nickname; agent.playerId = Server.Instance.GetNextPlayerId(); agent.connection.Send(JoinServerResponse.MakeAccept(agent.playerId)); }
public void On(JoinServerResponse response) { Assert.IsTrue(isEntered); didReceiveResponse = true; if (response.isReject) { connectPanel.SetStatusbarText("<color=red>Rejected</color>. Reason: " + response.rejectionMessage); // Don't change state here, expect the DisconnectMessage from the server to do it for you. return; } connectPanel.SetStatusbarText(""); agent.playerInfo.id = response.playerId; agent.fsm.ChangeState <ClientStateInLobby>(); }
private bool RejectIfNeeded(JoinServerRequest request) { if (!request.GetIsValid()) { agent.connection.Send(JoinServerResponse.MakeReject("Invalid JoinServerRequest")); agent.Kick(); return(true); } Debug.Log("Valid client handshake received."); if (Server.Instance.joinedPlayers.Any(p => p.nickname == request.nickname)) { agent.connection.Send(JoinServerResponse.MakeReject($"Username {request.nickname} is already taken")); agent.Kick(); return(true); } return(false); }