Как отключить отправку сообщений людям с закрытым DM - PullRequest
0 голосов
/ 17 июня 2020

Так что я не хочу отправлять сообщения людям с закрытыми DM.

Текущий код:

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

1 Ответ

1 голос
/ 17 июня 2020

Хорошо, вы не можете проверить, открыты ли у кого-то личные сообщения, по крайней мере, в данный момент. Что вы можете сделать, так это отправить сообщение и поймать ошибку, если кто-то закрыл 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
});

Надеюсь, это поможет.

...