bots - 如何禁用向已关闭 DM 的人发送消息
问题描述
所以我不想向封闭的 DM 的人发送消息。
当前代码:
message.guild.members.cache.forEach(member => {
if (member.id !== bot.user.id && !member.user.bot);
member.send(message);
});
解决方案
好吧,你不能检查是否有人打开了 DM,至少现在是这样。如果有人关闭了 DM,您可以发送消息并捕获错误。
此外,您在 if 之后放置了一个分号,这基本上使 if 语句的目的无效。删除分号,它不应该发送给任何机器人。
例如:
message.guild.members.cache.forEach(member => {
if (member.id !== bot.user.id && !member.user.bot) // remove the semicolon here
member.send(message).catch(() => {}); // catch an error if the user has their DMs closed
});
希望这可以帮助。
推荐阅读
- multithreading - 如何解除阻塞等待信号量的所有线程?
- javascript - 对象的属性与分配时不同,即使没有进行其他更改(通过 object.watch 的实现进行检查)
- python - JSignature字段未出现在Django中
- android - Firebase 多语言支持:可能吗?
- r - 如何在大型文本语料库中“有效地”用另一个(成对)替换字符串向量
- bash - 从指向临时文件的 FD 3 读取时出现“错误的文件描述符”
- php - 我的控制器出现 404 页面错误
- c - Perlin 噪声平方不匹配
- php - 当记录没有插入(准备好的语句)时,为什么我没有在 PHP 中收到错误?
- swift - 为什么访问具有父关系的子类 NSManagedObject 的 String 参数会崩溃?