使用机器人 Discord.py 授予和删除角色 [英] Give and remove roles with a bot, Discord.py

查看:22
本文介绍了使用机器人 Discord.py 授予和删除角色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 Discord.py 中创建一个机器人,该机器人将分配 role.json 文件中存在的角色,同时使用相同的命令来删除和添加相同的角色.例如,?role 将添加和删除角色,具体取决于用户是否分配了角色.我对如何实现这一点有点困惑.

How do I make a bot in Discord.py that will assign roles present in a role.json file, while using the same command to both remove and add the same role. For example, ?role <rolename> will both add and remove a role, depending on if the user has the role assigned. I'm a bit confused on how to achieve this.

我当前的机器人使用 ?roleadd <rolename> ?roleremove <rolename>.

My current bot uses ?roleadd <rolename> ?roleremove <rolename>.

推荐答案

我不确定你的 role.json 文件在哪里发挥作用,但我将如何实现这样的命令

I'm not sure where your role.json file comes into play, but here's how I would implement such a command

@bot.command(name="role")
async def _role(ctx, role: discord.Role):
    if role in ctx.author.roles:
        await ctx.author.remove_roles(role)
    else:
        await ctx.author.add_roles(role)

这使用 Role 转换器 自动从 role 对象的名称、id 或提及中解析.

This uses the Role converter to automatically resolve the role object from its name, id, or mention.

这篇关于使用机器人 Discord.py 授予和删除角色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆