【问题标题】:How to make bot respond to messages randomly如何让机器人随机响应消息
【发布时间】:2021-07-19 07:00:15
【问题描述】:
所以我想让我的机器人每隔一段时间随机响应某些用户发送的消息,我尝试在线搜索以找到一种方法,但我只能找到如何在运行命令时的数组,但这不是我想要的,因为我对编码相当陌生,我不知道该怎么做。总之,我的问题是:
- 我如何使其能够随机响应某个用户的消息?
- 我必须把这段代码放在哪里,因为它不是命令?
var MessageArray = [
"message 1",
"message 2",
"message 3"
]
var random = Math.floor(Math.random() * MessageArray.length);
try {
//code to randomly reply to messages sent by a certain user.
} catch (err) {
console.log(err);
}
我不知道这段代码是否可以正确用于我想要的机器人。
【问题讨论】:
标签:
javascript
node.js
discord
discord.js
bots
【解决方案1】:
使用random作为MessageArray的随机选择索引
var MessageArray = [
"message 1",
"message 2",
"message 3"
];
var random = Math.floor(Math.random() * MessageArray.length);
try {
message.channel.send(MessageArray[random]);
} catch (err) {
console.log(err);
}
【解决方案2】:
你现在有什么?
a)您的机器人可以发送的所有可能消息的数组
b) 范围为 [0, |MessageArray| 的随机整数- 1]
首先,让我们使用随机数作为索引来获取随机消息
let rndMessage = MessageArray[random];
然后,使用您随机选择的消息,使用任一方式将其发送到频道
message.reply(rndMessage);
或
message.channel.send(rndMessage);
请注意,在 discord.js 中,这些调用是异步的/基于 Promise 的 - 因此,除非您解决 Promise,否则您的 try-catch 语句不会做任何事情。