【发布时间】:2021-12-29 03:19:42
【问题描述】:
我似乎在向具有特定角色的所有用户发送 DM 时遇到了严重问题。
这是我的机器人代码:
bot.on('message', async message => {
members = message.guild.roles.cache.find(role => role.id === "12345678998765").members.map(m => m.user.id);
members.forEach(member_id => {
sleep(5000).then(() => {
message.users.fetch(member_id, false).then((user) => {
user.send("some message");
});
});
});
});
这段代码给了我错误:
无法读取 null 的属性(读取“角色”)
在这一行:
members = message.guild.roles.cache.find(role => role.id === ....
但这不是问题。当我注释掉 sleep 命令以发送消息并输出成员角色时:
members.forEach(member_id => {
console.log(member_id)
//sleep(5000).then(() => {
// bot.users.fetch(member_id, false).then((user) => {
// user.send("some message");
// });
//});
});
我在控制台中返回了所有用户 ID 的列表。所以它必须返回角色。
如何向具有特定角色 ID 的所有用户发送消息?我希望能够遍历它们并等待以减少 API 请求和垃圾邮件触发。
【问题讨论】:
-
不确定这是否相关,但您在两个
forEach循环中的代码不同。此外,您无法从message获取users(在第一个forEach 中)。 -
你有什么版本的 Discord.js?
标签: javascript discord discord.js bots