Exemple #1
0
        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;
            }
            }
        }
Exemple #2
0
 private void Player_Disconnected(object sender, PlayerDisconnectedEventArgs e)
 {
     PlayerDisconnected?.Invoke(sender, e);
 }