【发布时间】:2021-04-03 10:11:34
【问题描述】:
我正在使用 NodeJS 开发我的第一个 Discord 机器人,该机器人的目的是每当用户在 Discord 中使用触发词时,使用从 Imgur API 获取的随机图像来响应 Discord 中的消息。我有以下代码:
request(options, function (error, response) {
if (error) throw new Error(error);
const randomNumber = Math.floor(Math.random() * 73) + 1;
arr = JSON.parse(response.body);
var randomImage = arr.data[randomNumber].link;
console.log(randomImage)
bot.on("message", (msg) => {
if (msg.content === trigger){
msg.channel.startTyping();
msg.channel.send(randomImage);
}
});
});
bot.login(TOKEN);
bot.on("ready", () => {
console.info(`Logged in as ${bot.user.tag}!`);
});
从Imgur 获取随机图像有效,并且在 Discord 中使用触发词来获取该图像也有效,但是问题是,例如,当我在 Discord 中向触发词发送垃圾邮件 3 次时,机器人将返回相同的图像 3 次。所需的功能是在每个触发词上发送不同的图像。每当我重新启动服务器时,都会从 Imgur API 获取新图像。
但是问题仍然存在,当我在 Discord 中使用触发词 x 次时,相同的图像将显示 x 次。希望有人可以让我找到正确的方向来解决这个问题。
【问题讨论】:
-
您似乎只生成了这个随机图像一次。何时以及多久调用一次
request函数? -
@MatthewLin 我想每当我启动服务器时,这是唯一一次被调用。这将在控制台中输出一个随机图像,一旦在 Discord 中使用了触发词,就会在 Discord 中发布该图像。
-
在这种情况下,给定的答案似乎是正确的
标签: javascript node.js json request discord.js