How to check if a user has a specific role in on_message?

不羁岁月 提交于 2019-12-02 13:51:52

问题


Currently I have a bot will give you a role if you do a command. I want to make the bot check if the user that does the command has a specific role. As of now I've only seen people do it with permissions. Basic examples would be also great!

if message.content.lower().startswith('/role'):
    user = message.author
    role = discord.utils.get(user.server.roles, id="437923291047526402")
    await client.add_roles(user, role)

回答1:


To check for roles in on_message, you can access the author's roles attribute.

if message.content.lower().startswith('/role'):
    user = message.author

    if message.channel.is_private or discord.utils.get(user.roles, name="admin") is None:
        return

    role = discord.utils.get(user.server.roles, id="437923291047526402")
    await client.add_roles(user, role)

For commands, see the linked dupe answer.



来源:https://stackoverflow.com/questions/50563138/how-to-check-if-a-user-has-a-specific-role-in-on-message

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!