我尝试制作一个 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] + "");
}
答案 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);
};
结果: