首页 > 解决方案 > 如何禁用向已关闭 DM 的人发送消息

问题描述

所以我不想向封闭的 DM 的人发送消息。

当前代码:

message.guild.members.cache.forEach(member => {
  if (member.id !== bot.user.id && !member.user.bot);
  member.send(message);
});

标签: botsdiscorddiscord.js

解决方案


好吧,你不能检查是否有人打开了 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
});

希望这可以帮助。


推荐阅读