如何将私人消息发送给不在语音通道中的特定角色的成员?

时间:2020-01-14 19:53:22

标签: discord discord.js

这是我用来计算语音通道中具有特定角色的成员的代码。我想向语音通道中角色为 not 的成员发送私人消息。我该怎么办?

.~

1 个答案:

答案 0 :(得分:1)

  1. Collection.filter()中反转谓词功能,以仅获取在语音通道中具有角色且 not 的那些成员。使用!字符或logical NOT运算符。

  2. Iterate over您的收藏集。

  3. 使用GuildMember.send()分别向每个成员发送直接消息。

const membersToMsg = client.guilds.get(sunucuid).roles.get(rolid).members.filter(m => !m.voiceChannel);

for (const [, member] of membersToMsg) {
  member.send('Hello, world!')
    .catch(console.error); // 'Cannot send messages to this user' is most likely due to privacy settings
}

我在此代码中使用的是for...of循环,而不是Map.forEach(),因为后者会简单地发出承诺并继续前进,可能会导致未被捕获的拒绝。