我正在为我的服务器制作一个简单的Discord机器人,因为一个机器人的一部分不工作。但是,该机器人需要标记来自一个角色的人(假设该角色是“主持人”)。我想让它标记每个人的版主角色,这将像@版主。以下是我的代码(我使用的是Python 3.6):
if message.content.startswith('!startbot'):
msg = '@Moderator, (some message after this)'.format(message)
但是,“@版主”实际上并没有标记版主角色中的任何人。和其他信息一样,它只是空白文本。但是,当我从Discord服务器输入@版主时,它会显示红色(我设置了红色)并标记版主。
有人能帮我解决这件事吗?
Discord中的角色提及是这样触发的:
<@&ROLE_ID>
其中ROLE_ID是您试图提及的角色的ID。获取审查员角色的ID,并相应地将其添加到字符串中,机器人将像从不和谐客户端中一样提及该角色。
此方法也适用于Webhook。
在embeds中提及需要特殊格式。最简单的方法是查阅下表:
假设您正在使用当前稳定版本的discord.py
每个留档中,角色对象有一个名为say
的方法。所以你需要做的就是
msg = '{} ...'.format(role.mention)
要获取角色对象,您可能需要迭代服务器的可用角色,并找到您要查找的角色对象