private void Players_PlayerDisconnected(object sender, PlayerDisconnectedEventArgs e) { if (!e.Player.SaidHello) { return; } switch (e.Reason) { case PlayerDisconnectedEventArgs.KickedReason: { Context.Broadcaster.Error(string.Format(L.D.ServerMessage__PlayerKicked, e.Player.Nick, e.Details)); Context.Broadcaster.Leave(e.Player.Id); Context.State.Players.RemoveClient(e.Player); break; } case PlayerDisconnectedEventArgs.ConnectionReplacedReason: { Context.State.Players.RemoveClient(e.Player); return; } case PlayerDisconnectedEventArgs.DisconnectedReason: { Context.Broadcaster.PlayerDisconnect(e.Player.Id); break; } case PlayerDisconnectedEventArgs.ShutdownReason: { Context.Broadcaster.PlayerDisconnect(e.Player.Id); Context.State.Players.RemoveClient(e.Player); break; } case PlayerDisconnectedEventArgs.TimeoutReason: { Context.Broadcaster.PlayerDisconnect(e.Player.Id); break; } case PlayerDisconnectedEventArgs.LeaveReason: { Context.Broadcaster.Leave(e.Player.Id); Context.State.Players.RemoveClient(e.Player); break; } default: { Context.Broadcaster.PlayerDisconnect(e.Player.Id); break; } } }
private void Player_Disconnected(object sender, PlayerDisconnectedEventArgs e) { PlayerDisconnected?.Invoke(sender, e); }