【问题标题】:Why my args[1] doesn't work in this case in discord为什么我的 args[1] 在这种情况下不起作用
【发布时间】:2020-03-13 21:18:28
【问题描述】:

代码对 args[0] 正常工作,但对 args[1] 不起作用。你们能为我解释一下,或者给我一个可以找出我的错误的来源吗?感谢您的帮助

bot.on('message', message =>{

    let args = message.content.substring(PREFIX.length).split("  ");

    switch(args[0]){
        case 'ping':
            message.reply('Pong!');
            break;
        case 'website':
            message.reply('www.facebook.com')
            break;
        case 'info':
            if(args[1] === 'version'){
                message.reply('Version ' + version);
            }else{
                if(args[1] === 'author'){
                    message.reply('Vikoaz');
               }else{
                   message.reply('Invalid')
               }
            }
        break;
        case 'clear':
            if(!args[1]) return message.reply('Error')
            message.channel.bulkDelete(args[1]);
        break;


    }

当我在 Discord 中编写 !info version 时,机器人不会回复 Version + version。什么都没发生。如果只是 !info,机器人会回复 Invalid。

【问题讨论】:

  • 嗨,欢迎来到 Stack Overflow!请将您的代码复制并粘贴到您的问题中,而不是张贴照片。它使其他人更容易帮助您。
  • 请在实际错误旁边粘贴示例输入 (message.content),是 args[1] undefined 还是?
  • 顺便说一句,你可以像else if (args[1] === 'author') {...} else {...}一样使用else if,而不是else {if (args[1] === 'author') {...} else {...}}。不过这不是问题。
  • 确保你有一个长度为 2 的数组来访问 args[1] ,如果长度为 1 你会得到错误。

标签: discord discord.js


【解决方案1】:

这里有 2 个空格:.split(" ")。留出 1 个空格:

let args = message.content.substring(PREFIX.length).split(" ");

如果有 2 个空格,如果 message.content'!info version' args 将是 ['info version'],这就是它不起作用的原因。

【讨论】:

  • 这对我帮助很大。也感谢您的帮助和建议
  • @DdankDdum 不客气!如果这解决了您的问题,请点击勾选accept my answer。这表明您的问题已解决,并且还为您提供 2 声望。
猜你喜欢
  • 2016-08-27
  • 2017-11-26
  • 2010-12-29
  • 1970-01-01
  • 2021-08-05
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多