fCraft.BuildingCommands.BanXHandler C# (CSharp) Method

BanXHandler() private static method

private static BanXHandler ( Player player, Command cmd ) : void
player Player
cmd Command
return void
        private static void BanXHandler( Player player, Command cmd )
        {
            string ban = cmd.Next();

            if ( ban == null ) {
                player.Message( "&WError: Enter a player name to BanX" );
                return;
            }

            //parse
            if ( ban == "-" ) {
                if ( player.LastUsedPlayerName != null ) {
                    ban = player.LastUsedPlayerName;
                } else {
                    player.Message( "Cannot repeat player name: you haven't used any names yet." );
                    return;
                }
            }
            PlayerInfo target = PlayerDB.FindPlayerInfoOrPrintMatches( player, ban );
            if ( target == null )
                return;
            if ( !Player.IsValidName( ban ) ) {
                CdBanx.PrintUsage( player );
                return;
            } else {
                string reason = cmd.NextAll();

                if ( reason.Length < 1 || string.IsNullOrEmpty( reason ) )
                    reason = "Reason Undefined: BanX";
                try {
                    target.Ban( player, reason, false, true );
                } catch ( PlayerOpException ex ) {
                    player.Message( ex.MessageColored );
                    return;
                }
                if ( player.World.BlockDB.IsEnabled ) {
                    UndoPlayerHandler2( player, new PlayerInfo[] { target } );
                }
                if ( player.Can( Permission.Demote, target.Rank ) ) {
                    if ( target.Rank != RankManager.LowestRank ) {
                        player.LastUsedPlayerName = target.Name;
                        target.ChangeRank( player, RankManager.LowestRank, reason, false, true, false );
                    }
                    Server.Players.Message( "{0}&S was BanX'd by {1}&S (with auto-demote):&W {2}", target.ClassyName, player.ClassyName, reason );
                    IRC.PlayerSomethingMessage( player, "BanX'd (with auto-demote)", target, reason );
                    return;
                } else {
                    player.Message( "&WAuto demote failed: You didn't have the permissions to demote the target player" );
                    Server.Players.Message( "{0}&S was BanX'd by {1}: &W{2}", target.ClassyName, player.ClassyName, reason );
                    IRC.PlayerSomethingMessage( player, "BanX'd", target, reason );
                }
                player.Message( "&SConfirm the undo with &A/ok" );
            }
        }