public override VNetMessage Clone() { VNetMessageNewClient clone = (VNetMessageNewClient)base.Clone(); clone.clientData = VNetSimpleClientData.ComponentCopy(clientData); clone.sessionUID = sessionUID; clone.role = role; return(clone); }
public void OnNewClient(VNetMessageNewClient newClient) { // make sure this client doesn't already exist if (GetClientByUID(newClient.clientData.uid) != null) { return; } VNetClient client = AddClient(newClient.clientData.uid, new IPEndPoint(newClient.clientData.ip, newClient.clientData.port)); client.SetName(newClient.clientData.name); client.SetRole(newClient.role); }
public void OnClientJoinRequest(VNetMessageJoinSession joinRequest) { // If i'm not the host, ignore this if (LocalIsHost() == false) { return; } // If this is for a separate session, ignore UInt64 sessionUID = VNetSession.Inst.GetSessionUID(); if (joinRequest.sessionUID != sessionUID) { return; } // Could be a dup, ignore if if that's the case if (VNetSession.Inst.GetClientByUID(joinRequest._packet.header.clientUID) != null) { return; } // Add this client VNetMessageNewClient nmc = new VNetMessageNewClient(); nmc.clientData = new VNetSimpleClientData(); nmc.clientData.active = 1; nmc.clientData.ip = joinRequest._packet.IP_Port.Address; nmc.clientData.port = joinRequest._packet.IP_Port.Port; nmc.clientData.uid = joinRequest._packet.header.clientUID; nmc.clientData.name = joinRequest.userName; nmc.clientData.role = joinRequest.role; nmc.sessionUID = sessionUID; VNet.Inst.SendToLobby(nmc, true); // Add the client to the local list VNetClient client = VNetSession.Inst.AddClient(joinRequest._packet.header.clientUID, joinRequest._packet.IP_Port); client.SetName(joinRequest.userName); client.SetRole(joinRequest.role); // Accept this client VNetMessageAcceptClient ac = new VNetMessageAcceptClient(); ac.clientUID = client.GetUID(); ac.sessionUID = sessionUID; ac.role = joinRequest.role; client.SendNetMessage(ac, true); }