Som*_*ame 6 python discord discord.py
我正在为我的服务器制作简单的 Discord 机器人,因为一个机器人的一部分不起作用。但是,该机器人需要从一个角色标记人员(假设该角色是“主持人”)。我希望它从主持人角色中标记每个人,就像@Moderator。这是我的代码(我使用的是 Python 3.6):
if message.content.startswith('!startbot'):
msg = '@Moderator, (some message after this)'.format(message)
Run Code Online (Sandbox Code Playgroud)
但是,“@Moderator”实际上并没有从主持人角色中标记任何人。它只是像所有其他消息一样的空白文本。但是,当我作为来自 Discord 服务器类型 @Moderator 的真实人物时,它会带来红色(我设置的)并标记为主持人。
有人可以帮我解决这个问题吗?
小智 22
Discord 中的角色提及是这样触发的:
<@&ROLE_ID>
Run Code Online (Sandbox Code Playgroud)
其中 ROLE_ID 是您要提及的角色的 ID。获取版主角色的 ID,相应地将其添加到字符串中,机器人将像您从 Discord 客户端一样提及该角色。
假设您正在使用当前的稳定版本discord.py
根据文档,角色对象有一个名为 的方法mention。所以你需要做的就是
msg = '{} ...'.format(role.mention)
Run Code Online (Sandbox Code Playgroud)
要获取角色对象,您可能需要迭代服务器的可用角色并找到您正在寻找的角色对象
在嵌入中提及需要特殊格式。最简单的方法是查阅下表:
| 类型 | 结构 | 例子 | |
|---|---|---|---|
| 用户 | <@USER_ID> | <@80351110224678912> | |
| 用户(昵称) | <@!USER_ID> | <@!80351110224678912> | |
| 渠道 | <#CHANNEL_ID> | <#103735883630395392> | |
| 角色 | <@&ROLE_ID> | <@&165511591545143296> | |
| 自定义表情符号 | <:NAME:ID> | <:mmLol:216154654256398347> | |
| 自定义表情符号(动画) | <:a:NAME:ID> | <a:b1nzy:392938283556143104> |
取自Discord 文档。
| 归档时间: |
|
| 查看次数: |
40129 次 |
| 最近记录: |