Bots 如何禁用向已关闭DM的用户发送消息

Bots 如何禁用向已关闭DM的用户发送消息,bots,discord,discord.js,Bots,Discord,Discord.js,所以我不想给有封闭DM的人发信息 当前代码: message.guild.members.cache.forEach(member => { if (member.id !== bot.user.id && !member.user.bot); member.send(message); }); 好的,你不能检查是否有人打开了DMs,至少现在是这样。如果有人关闭了DMs,您可以发送消息并捕获错误 此外,在if后面加一个分号,这基本上使if语句的用途无效。删除分号,

所以我不想给有封闭DM的人发信息

当前代码:

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

好的,你不能检查是否有人打开了DMs,至少现在是这样。如果有人关闭了DMs,您可以发送消息并捕获错误

此外,在if后面加一个分号,这基本上使if语句的用途无效。删除分号,它不应发送到任何机器人程序

例如:

message.guild.members.cache.forEach(member=>{
if(member.id!==bot.user.id&&!member.user.bot)//删除此处的分号
member.send(message.catch(()=>{});//如果用户的DMs已关闭,则捕获错误
});

希望这能有所帮助。

在此之前,已经有一个问题:分号结束了
if
语句,但没有使它保护任何内容,因此它将始终发送。我测试了它,它只发送一次。编写的代码将发送给每个成员,甚至是机器人。您似乎试图编写代码跳过机器人程序,但在
send()
之前,
if
被错误终止,并且什么也不做。它工作正常,没有向机器人程序发送消息,因此,现在我想阻止向关闭了DMS的用户发送消息。您发布的代码无法过滤掉机器人,因为它没有正确地跳过向他们发送消息。我不知道我能用多少种方式说出来。如果它无法发送到bot,那只是因为它们拒绝DMs,而您没有检查是否引发异常,表明您的
如果
不起作用。看,是的,我不知道为什么我一开始就加了分号,但是是的,谢谢你的帮助,至少我可以这样做