fCraft.Player.KickNow C# (CSharp) Method

KickNow() private method

Kick (synchronous). Immediately sends the kick packet. Can only be used from IoThread (this is not thread-safe).
private KickNow ( [ message, LeaveReason leaveReason ) : void
message [
leaveReason LeaveReason
return void
        private void KickNow( [NotNull] string message, LeaveReason leaveReason )
        {
            if ( message == null )
                throw new ArgumentNullException( "message" );
            if ( !Enum.IsDefined( typeof( LeaveReason ), leaveReason ) ) {
                throw new ArgumentOutOfRangeException( "leaveReason" );
            }
            if ( Thread.CurrentThread != ioThread ) {
                throw new InvalidOperationException( "KickNow may only be called from player's own thread." );
            }
            State = SessionState.PendingDisconnect;
            LeaveReason = leaveReason;

            canQueue = false;
            canReceive = false;
            canSend = false;
            SendNow( PacketWriter.MakeDisconnect( message ) );
            writer.Flush();
        }