【问题标题】:Making a command with multiple arguments in discord.js在 discord.js 中创建具有多个参数的命令
【发布时间】:2020-11-28 11:08:42
【问题描述】:

我在使用 javascript 编码方面还很陌生,我想通过它制作一个不和谐的机器人,但是在涉及具有多个参数的命令时我遇到了困难。

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

    const args = message.content.trim().split(/ + /g);
    const command = args[0].slice(Prefix.length).toLowerCase();

    if (command == 'test') {
        if (!args[1]) return message.reply('no argument');
        if (args[2]) return message.reply('Too many arguments');
        switch(args[1]){
            case 'one':
                message.reply('test one');
                break;
            case 'two':
                message.reply('test two');
                break;
        };
    }
});

如果没有参数,它会拾取,但如果使用命令发送参数,它不会发送消息或错误,所以我不知道我做错了什么。有人可以帮助我更好地理解论点吗?

【问题讨论】:

    标签: discord.js


    【解决方案1】:
    bot.on('message', message => {
        if (!message.content.startsWith(PREFIX)) return;
            let args = message.content.substring(PREFIX.length).split(" ");
    
           switch (args[0]) {
               case 'test':
                    if(!args[1]) return message.reply('no argument');
                     if(args[2]) return message.reply('Too many arguments')
    
                if (args[1] === 'one') {
                    message.channel.send('test one');
                } else  if (args[1] === 'two') {
                    message.channel.send('test two');
                } else 
                    message.channel.send('Invalid arguments')
                }
                break;
    
    }})
    

    可能是这样

    【讨论】:

      【解决方案2】:

      / + / 匹配一个或多个空格,后跟一个空格,这意味着它只拆分为两个空格。在/\s+/ 上拆分一个或多个空格:

      const args = message.content.trim().split(/\s+/g);
      

      【讨论】:

        猜你喜欢
        • 2020-10-09
        • 2020-12-08
        • 2021-01-01
        • 1970-01-01
        • 2012-05-20
        • 1970-01-01
        • 1970-01-01
        • 2021-04-19
        • 2020-10-02
        相关资源
        最近更新 更多