【问题标题】:discord.js v12 command argsdiscord.js v12 命令参数
【发布时间】:2021-04-19 10:13:12
【问题描述】:

我正在尝试从消息中获取一些信息并将其显示在嵌入中。但是当我运行这段代码时,我会得到这样的结果:

enter image description here

这是我的代码:

run: async (client, message, args) => {
  async function getinfo() {
    let lol1 = args[1]
    let lol2 = args.slice(2).join(' ')

    const whois = new Discord.MessageEmbed()
      .setTitle("test1:")
      .addField("test2", ` ${lol1} / ${lol2}`)
      .setColor("RANDOM")
      .setTimestamp()

    message.channel.send(whois)
  }
  getinfo();
}

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    参数是如何定义的?

    discord.js 中参数的定义是命令本身之后的任何用户输入。所以,如果我们看一下参数的基本模板:

    [Prefix][Command] [args]
    

    意思是 'args' 已经将前缀和命令分开了,我们使用 args 变量,它基本上是一个提供的参数数组:

    const args = ['first argument', 'second argument', 'third argument', ...];
    

    根据这个逻辑,当您插入“123”和“123”作为参数时,我们会得到以下数组:

    const args = ['123', '123'];
    

    由于我们在获取数组值时总是从0 开始,因此第一个“123”将被称为args[0],而第二个“123”将被称为args[1]

    最终代码

    run: async (client, message, args) => {
    
            async function getinfo() {
            let lol1 = args[0];
            let lol2 = args.slice(1).join(' ');
        
        
            const whothefuq = new Discord.MessageEmbed()
                  .setTitle("test1:")
                  .addField("test2", ` ${lol1} / ${lol2}`)
                  .setColor("RANDOM")
                  .setTimestamp()
              message.channel.send(whothefuq)
            
            }
        
            getinfo();
        }
    

    【讨论】:

      猜你喜欢
      • 2021-01-01
      • 2021-02-18
      • 1970-01-01
      • 2021-01-18
      • 2021-04-14
      • 2021-04-18
      • 2021-04-23
      • 2021-01-30
      • 2021-01-26
      相关资源
      最近更新 更多