node.js - 大规模 DM 命令不起作用(discord.js)
问题描述
这是我用来批量 dm 的代码如下:
if (message.content === 'tdm'){
message.guild.members.cache.forEach(member => { // Looping through each member of the guild.
// Trying to send a message to the member.
// This method might fail because of the member's privacy settings, so we're using .catch
member.send("test").catch(e => console.error(`Couldn't DM member ${member.user.tag}`));
});
}
我尝试了这个命令,并询问我的成员是否收到了机器人的消息,他们都说没有。难道我做错了什么?它在 2 周前工作。
解决方案
您需要更改message.guild.members.cache.forEach()
为(await message.guild.members.fetch()).each()
.
.fetch()
用于代替.cache
确保获取所有成员而不是仅获取缓存中的成员。
.each()
使用而不是.forEach
因为message.guild.members.fetch()
返回 Discord 集合 ( Discord.Collection()
),而不是数组。
if (message.content === 'tdm'){
(await message.guild.members.fetch()).each(member => { // Looping through each member of the guild.
// Trying to send a message to the member.
// This method might fail because of the member's privacy settings, so we're using .catch
member.send("test").catch(e => console.error(`Couldn't DM member ${member.user.tag}`));
});
}
推荐阅读
- java - getTitle() 方法使用 Chrome 返回当前页面的标题,但使用 Selenium 通过 Java 使用 Firefox 返回上一页的标题
- javascript - 如何使常规 javascript 在反应应用程序中工作
- laravel - 如何在 Laravel 5.8 中测试自定义验证规则
- python - 我无法在 tkinter 上使用画布和 create_image 打开图像
- automata - 此 DFA 是否接受我对语言的描述?
- r - 人口比例错误的 Prop.test
- python - 构建用于训练 doc2vec 嵌入的学习曲线
- xamarin - 无法在新主页上打开模式
- python - 如何将多个元素分配给单个列表变量
- javascript - es6在一个类中导入一个类