fCraft.InfoCommands.CommandsHandler C# (CSharp) Method

CommandsHandler() static private method

static private CommandsHandler ( Player player, Command cmd ) : void
player Player
cmd Command
return void
        internal static void CommandsHandler( Player player, Command cmd )
        {
            string param = cmd.Next();
            CommandDescriptor[] cd;
            CommandCategory category;

            if ( param == null ) {
                player.Message( "&SFor &aBuilding &Scommands, type &a/Commands building" +
                               "\n&SFor &fChat &Scommands, type &a/Commands chat" +
                               "\n&SFor &fInfo &Scommands, type &a/Commands info" +
                               "\n&SFor &3Moderation &scommands, type &a/Commands moderation" +
                               "\n&SFor &9World &Scommands, type &a/Commands world" +
                               "\n&SFor &bZone &Scommands, type &a/Commands zone" +
                               ( CommandManager.GetCommands( CommandCategory.Math, false ).Length > 0
                                    ? "\n&SFor &cFunction drawing &Scommands, type &a/Commands math"
                                    : "" ) +
                               ( CommandManager.GetCommands( CommandCategory.Fun, false ).Length > 0
                                    ? "\n&SFor &dFun &Scommands, type &a/Commands fun"
                                    : "" ) );
                return;
            }

            string prefix;

            if ( param == null ) {
                prefix = "Available commands";
                cd = CommandManager.GetCommands( player.Info.Rank, false );
            } else if ( param.StartsWith( "@" ) ) {
                string rankName = param.Substring( 1 );
                Rank rank = RankManager.FindRank( rankName );
                if ( rank == null ) {
                    player.Message( "Unknown rank: {0}", rankName );
                    return;
                } else {
                    prefix = String.Format( "Commands available to {0}&S", rank.ClassyName );
                    cd = CommandManager.GetCommands( rank, false );
                }
            } else if ( param.Equals( "all", StringComparison.OrdinalIgnoreCase ) ) {
                prefix = "All commands";
                cd = CommandManager.GetCommands();
            } else if ( param.Equals( "hidden", StringComparison.OrdinalIgnoreCase ) ) {
                prefix = "Hidden commands";
                cd = CommandManager.GetCommands( true );
            } else if ( EnumUtil.TryParse( param, out category, true ) ) {
                prefix = String.Format( "{0} commands", category );
                cd = CommandManager.GetCommands( category, false );
            } else {
                CdCommands.PrintUsage( player );
                return;
            }

            player.MessagePrefixed( "&S  ", "{0}: {1}", prefix, cd.JoinToClassyString() );
        }