如何获取@everyone 角色ID?
Posted
技术标签:
【中文标题】如何获取@everyone 角色ID?【英文标题】:How to get @everyone role ID? 【发布时间】:2019-08-17 09:54:39 【问题描述】:我需要获取@everyone 角色 ID 来为服务器成员创建私人聊天(我将限制除了这 2 个用户之外的其他用户阅读和发送消息)。怎么样?
我试着打字
\@Admin
以获取 Admin 的角色 ID 为例。 但后来我输入了
\@everyone
它会创建一条常规消息,提及服务器上的每个人(例如在聊天中输入@everyone
)。没有身份证。
我如何获得@everyone 角色 ID?
【问题讨论】:
【参考方案1】:everyone
角色的 ID 是公会 ID。
如果您尝试将<@&123123>
替换为您的公会ID,它将几乎标记每个人
更新:2020 年 4 月 10 日
现在提到大家,您只需发送字符串@everyone:message.channel.send("@everyone");
要获得所有人角色的 ID,您需要拥有 guild,您可以在以下活动中获得该 ID:message
、guildCreate
等。
从那里:<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;
【讨论】:
这样创建@@everyone
问题不是“如何提及每个人”。这是“如何获得每个人的角色 ID”。它并没有真正回答(我认为?)
@JackRed 我现在用更多选项更新了我的答案 :)
@André 是的,谢谢。然而它并没有真正的帮助。您提到的“guildID”与每个人的角色 ID 相同(这就是 Discord 的工作方式)。如果您激活开发模式并在服务器图标上右键单击 > 复制 ID,您将拥有与进入角色设置并复制每个人角色 ID 时相同的 ID。这也可以在写的时候检查,这将翻译成提到每个人的角色(并不完全有效,与其他角色相比,可能是因为它是一个特殊角色+@here的存在)跨度>
我的评论的 TL;DR 是,如果你有 GuildID,那么你就有了每个人的角色 ID,因为它是相同的【参考方案2】:
Discord.js
V12
guild
类有一个roles
属性,即RoleManager
。
这位经理拥有everyone
的财产:
公会的@everyone角色
你可以通过角色类的id属性来获取它的id:
client.on('message', (msg) =>
console.log(msg.guild.roles.everyone.id);
);
V11
在 V11 中,guild
类具有 defaultRole
属性。
所以代码略有不同:
client.on('message', (msg) =>
console.log(msg.guild.defaultRole.id);
);
不和谐
在 Discord 方面,激活开发选项后,您几乎可以右键单击所有内容以获取它的 ID。例如进入服务器设置,在角色中并右键单击一个角色,您应该有一个copy ID
选项。
【讨论】:
【参考方案3】:需要获得@everyone 角色吗?
<guild>.roles.everyone
它将获得一个角色对象。您可以在Role Class 中查看
【讨论】:
以上是关于如何获取@everyone 角色ID?的主要内容,如果未能解决你的问题,请参考以下文章