如何获取@everyone角色ID?

How to get @everyone role ID?

我需要获取@everyone 角色 ID 才能为服务器成员创建私人聊天(我将限制除这 2 个用户之外的其他人阅读和发送消息)。怎么样?

我试着输入

\@Admin

以获取管理员角色ID为例。 但后来我输入了

\@everyone

它会创建一条常规消息,提及服务器上的每个人(就像在聊天中输入 @everyone)。没有身份证。

如何获取@everyone 角色 ID?

everyone角色的ID是公会ID。
如果您尝试 <@&123123>123123 替换为您的公会 ID,它将 几乎 标记每个人


更新:2020 年 4 月 10 日

现在提到大家,你只需要发送字符串@everyone:message.channel.send("@everyone");


要获得 everyone 角色的 ID,您需要拥有 公会,您可以在某些事件中获得该公会,例如:messageguildCreate , 和别的。 从那里:<something>.guild.roles.everyone,然后你应该能够通过 <something>.guild.roles.everyone.id.

获得 ID

如果您无法在活动中访问公会,您可以通过其 ID 获取公会,例如: client.guilds.cache.get('guildID').roles.everyone.id,如果你知道它会在缓存中。如果你想安全一点,你可以这样做:

client.guilds.fetch('guildID').then(guild => { 
    let id = guild.roles.everyone.id;
    // do something with id
}

或等待:

let guild = await client.guilds.fetch('guildID');
let id = guild.roles.everyone.id;

Discord.js

V12

guild class 有一个 roles property, which is a RoleManager.
这位经理有 属性 everyone:

The @everyone role of the guild

你可以通过角色的id 属性得到它的id class:

client.on('message', (msg) => {
  console.log(msg.guild.roles.everyone.id);
});

V11

在 V11 中,guild class 有一个 defaultRole 属性。

所以代码略有不同:

client.on('message', (msg) => {
  console.log(msg.guild.defaultRole.id);
});

不和谐

在 Discord 端,激活开发选项后,您可以右键单击几乎所有内容以获取其 ID。例如进入服务器设置,在角色中右键单击一个角色,你应该有一个 copy ID 选项。

需要获得@everyone 角色?

<guild>.roles.everyone

它将获得一个角色对象。您可以在 Role Class

中查看