如何让我的 Discord 机器人随机回答我的问题?

时间:2021-02-01 14:02:49

标签: javascript node.js discord.js

我尝试制作一个 Discord 机器人,从一系列回复中随机选择一个回复。如果问题未知或命令后没有参数,我还希望它发送错误消息。

我有以下代码,但它不起作用。它确实得到了一个随机回复,但它无法通过接收到的参数 (args[0]) 找到问题。

module.exports.run = async(client, message, args, bot, sendMessage) => {
  var array1 = ["reply1"];
  var rand = Math.floor(Math.random() * array1.length);

  const pergunta = parseInt(args[0], 10);
  if (!pergunta)
    return message.reply("make your question");

  message.channel.send("" + array1[rand] + "");
}

1 个答案:

答案 0 :(得分:1)

您可以编写一个从数组中随机选取一个元素的命令。

您可以将问题存储在一个对象中。通过这种方式,您可以轻松检查(和访问)用户提交的问题是否有效。您可以为每个问题添加一系列回答,并从中选择一个:

function pickOne(arr) {
  return arr[Math.floor(Math.random() * arr.length)];
}

const questions = {
  question1: {
    text: 'This is question one',
    replies: ['reply 1', 'reply 2', 'reply 3', 'reply 4', 'reply 5'],
  },
  question2: {
    text: 'This is question two',
    replies: ['reply 11', 'reply 12', 'reply 13', 'reply 14', 'reply 15'],
  },
};

module.exports.run = async (client, message, args, bot, sendMessage) => {
  if (args.length === 0) {
    return message.reply('Oops, forgot your question?!');
  }

  const question = questions[args[0]];

  if (!question) {
    return message.reply("It seems that's not a question I can answer ?");
  }

  const reply = pickOne(question.replies);
  return message.reply(reply);
};

结果:

enter image description here