private void OnClientDisconnected(LoginClient client)
{
var update = false;
lock (this.ChannelClients)
{
if (this.ChannelClients.Contains(client))
{
this.ChannelClients.Remove(client);
update = true;
}
}
if (update)
{
var channel = (client.Account != null ? this.ServerList.GetChannel(client.Account.Name) : null);
if (channel == null)
{
Log.Warning("Unregistered channel disconnected.");
return;
}
Log.Status("Channel '{0}' disconnected, switched to Maintenance.", client.Account.Name);
channel.State = ChannelState.Maintenance;
Send.ChannelStatus(this.ServerList.List);
Send.Internal_ChannelStatus(this.ServerList.List);
}
}