public override void Execute(TriggerBase trigger)
        {
            string     text = trigger.Args.NextWord();
            SubCommand subCommand;

            if (!this.TryGetSubCommand(CommandBase.IgnoreCommandCase ? text.ToLower() : text, out subCommand) || subCommand.RequiredRole > trigger.UserRole)
            {
                HelpCommand.DisplayFullCommandDescription(trigger, this);
            }
            else
            {
                if (trigger.BindToCommand(subCommand))
                {
                    subCommand.Execute(trigger);
                }
            }
        }
        public override void Execute(TriggerBase trigger)
        {
            var str = trigger.Args.NextWord();

            SubCommand command;

            if (!TryGetSubCommand(IgnoreCommandCase ? str.ToLower() : str, out command) || !trigger.CanAccessCommand(command))
            {
                HelpCommand.DisplayFullCommandDescription(trigger, this);
                return;
            }

            if (trigger.BindToCommand(command))
            {
                command.Execute(trigger);
            }
        }