public void HandleCommand(TriggerBase trigger)
        {
            string text = trigger.Args.NextWord();

            if (CommandBase.IgnoreCommandCase)
            {
                text = text.ToLower();
            }
            CommandBase commandBase = this[text];

            if (commandBase != null && trigger.CanAccessCommand(commandBase))
            {
                try
                {
                    if (trigger.BindToCommand(commandBase))
                    {
                        commandBase.Execute(trigger);
                    }
                    return;
                }
                catch (Exception ex)
                {
                    trigger.ReplyError("Raised exception (error-index:{0}) : {1}", new object[]
                    {
                        trigger.RegisterException(ex),
                        ex.Message
                    });
                    if (ex.InnerException != null)
                    {
                        trigger.ReplyError(" => " + ex.InnerException.Message);
                    }
                    return;
                }
            }
            trigger.ReplyError("Incorrect Command \"{0}\". Type commandslist or help for command list.", new object[]
            {
                text
            });
        }