【问题标题】:Calculator wait for user input (Discord.js)计算器等待用户输入 (Discord.js)
【发布时间】:2021-04-29 21:23:22
【问题描述】:

我正在做一个 Discord 机器人,这个想法相当简单。它询问用户 3 个数字,以及应该对它们做什么(添加或删除)。目前,当您将它们全部添加为单行 (!calc add 1 1 1) 然后打印结果 (1 + 1 + 1 = 3) 时,该命令有效。但是我想知道如何设置机器人将输入的数字设置为 3 个不同的问题,而不是一次全部告诉它们。

     module.exports = {
name: 'calc',
description: "calculating",
execute(message, args){
    let method = args[0];
    let firstNumber = Number(args[1]);
    let secondNumber = Number(args[2]);
    let thirdNumber = Number(args[3]);



    const operations = ['add', 'remove'];

    if(!method) return message.reply('please select add or remove');

    if (!args[1]) return message.reply('please state first number');

    if (!args[2]) return message.reply('please state second number');

    if (!args[3]) return message.reply('please state third number');

    if (isNaN(firstNumber)) return message.reply('number 1 missing');

    if (isNaN(secondNumber)) return message.reply('number 2 missing');

    if (isNaN(thirdNumber)) return message.reply('number 3 missing');

    if (method === 'add') {

        let doMath = firstNumber + secondNumber + thirdNumber
        message.channel.send(`${firstNumber} + ${secondNumber} + ${thirdNumber} = ${doMath}`);

        if (method === 'remove') {

            let doMath = firstNumber - secondNumber - thirdNumber
            message.channel.send(`${firstNumber} - ${secondNumber} - ${thirdNumber} = ${doMath}`);
   }
  }
 }
}

显示 Discord 本身当前发生的情况: calculation process add

我自己是编码新手,所以这样的事情给我带来了问题。已经感谢您的回答。

【问题讨论】:

    标签: node.js discord.js


    【解决方案1】:

    尝试用这些改变“if statements”

    if(method == undefined)             return  message.reply('please select add or remove');
    
    if (!args[1] == undefined)           return message.reply('please state first number');
    
    if (!args[2] == undefined)           return message.reply('please state second number');
    
    if (!args[3] == undefined)           return message.reply('please state third number');
    
    if (isNaN(firstNumber) | firstNumber === "")              return message.reply('number 1 missing');
    
    if (isNaN(secondNumber | secondNumber === ""))             return message.reply('number 2 missing');
    
    if (isNaN(thirdNumber) | thirdNumber === "")              return message.reply('number 3 missing');
    

    【讨论】:

    • 感谢您的回答。但是它仍然以相同的解决方案结束,您需要一次输入所有详细信息。我的目标是让机器人先问“给第一个数字”,然后在输入之后机器人会问“给第二个数字”,然后同样处理第三个输入。
    猜你喜欢
    • 2016-10-06
    • 1970-01-01
    • 2014-01-26
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 2016-05-06
    • 1970-01-01
    相关资源
    最近更新 更多