async runCommand (command, context, args, language) {
    // Command rules
    if (context.guild && !command.hidden) {
      const deepSubcmd = (c, a) => {
        const [ arg ] = a
        const cmd = c.subcommands
          ? c.subcommands.find(s => s.name.toLowerCase() === arg || (s.aliases && s.aliases.includes(arg)))
          : null
        return cmd ? deepSubcmd(cmd, a.slice(1)) : c
      }
      const verify = await this.modules.commandRules.verifyCommand(deepSubcmd(command, args), context)
      if (!verify) return
    }

    context.setFixedT(this.i18next.getFixedT(language))
    return command._run(context, args).catch(this.logError)
  }
/**
   * Runs a command.
   * @param {Command} command - Command to be runned
   * @param {CommandContext} context - CommandContext containing run information
   * @param {Array<string>} args - Array of command arguments
   * @param {String} language - Code for the language that the command will be executed in
   */
Runs a command.
@param {Command} command - Command to be runned
@param {CommandContext} context - CommandContext containing run information
@param {Array} args - Array of command arguments
@param {String} language - Code for the language that the command will be executed in
Runs a command . @param { Command } command - Command to be runned @param { CommandContext } context - CommandContext containing run information @param { Array } args - Array of command arguments @param { String } language - Code for the language that the command will be executed in
async runCommand (command, context, args, language) {
    if (context.guild && !command.hidden) {
      const deepSubcmd = (c, a) => {
        const [ arg ] = a
        const cmd = c.subcommands
          ? c.subcommands.find(s => s.name.toLowerCase() === arg || (s.aliases && s.aliases.includes(arg)))
          : null
        return cmd ? deepSubcmd(cmd, a.slice(1)) : c
      }
      const verify = await this.modules.commandRules.verifyCommand(deepSubcmd(command, args), context)
      if (!verify) return
    }
    context.setFixedT(this.i18next.getFixedT(language))
    return command._run(context, args).catch(this.logError)
  }
async runCommand ( command , context , args , language ) { if ( context . guild && ! command . hidden ) { const deepSubcmd = ( c , a ) => { const [ arg ] = a const cmd = c . subcommands ? c . subcommands . find ( s => s . name . toLowerCase ( ) === arg || ( s . aliases && s . aliases . includes ( arg ) ) ) : null return cmd ? deepSubcmd ( cmd , a . slice ( 1 ) ) : c } const verify = await this . modules . commandRules . verifyCommand ( deepSubcmd ( command , args ) , context ) if ( ! verify ) return } context . setFixedT ( this . i18next . getFixedT ( language ) ) return command . _run ( context , args ) . catch ( this . logError ) }
Runs a command.
Runs a command .
// Command rules