public virtual void ClientDisconnected(RemoteClient client) { var clientAdapter = new NetcodeIORemoteClientAdapter(client, this); var clientsWithIP = MatchAllRemote(clientAdapter); if (clientsWithIP.Any()) { foreach (var existingClient in clientsWithIP) { bool result = Clients.TryRemove(existingClient, out long removed); } } OnClientDisconnected?.Invoke(clientAdapter); }
public virtual void ClientConnected(RemoteClient client) { var clientAdapter = new NetcodeIORemoteClientAdapter(client, this); var clientsWithIP = MatchAllRemote(clientAdapter); if (clientsWithIP.Any()) { foreach (var existingClient in clientsWithIP) { existingClient.Disconnect(); } } Clients.AddOrUpdate(clientAdapter, DateTime.Now.Ticks, (x, y) => { return(DateTime.Now.Ticks); }); OnClientConnected?.Invoke(clientAdapter); }