是否有向群组所有成员发送私人消息的命令?

Ren*_* Rk 2 javascript discord discord.js

有什么方法可以让命令使用discord.js向discord组的所有成员发送私人消息吗?

例子: /private TEST

此消息将通过私人聊天而不是频道聊天发送给群组中的每个人。

Fed*_*ndi 6

您可以遍历Guild.members.
当您收到一条以 开头的消息时/private,您可以将其余的消息发送给公会的每个成员,使用Guild.members.forEach().
这是一个快速示例:

client.on('message', msg => {
  if (msg.guild && msg.content.startsWith('/private')) {
    let text = msg.content.slice('/private'.length); // cuts off the /private part
    msg.guild.members.forEach(member => {
      if (member.id != client.user.id && !member.user.bot) member.send(text);
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

这只是一个基本实现,您显然可以将这个概念与您的命令检查一起使用,或者通过添加其他文本等来修改它。

希望这可以为您解决问题,如果您有任何其他问题,请告诉我:)


Jac*_*spy 5

discord.js v12 的更新代码只是向 forEach 添加缓存。

client.on('message', msg => {
  if (msg.guild && msg.content.startsWith('/private')) {
    let text = msg.content.slice('/private'.length); // cuts off the /private part
    msg.guild.members.cache.forEach(member => {
      if (member.id != client.user.id && !member.user.bot) member.send(text);
    });
  }
});

Run Code Online (Sandbox Code Playgroud)