首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用没有命令的discord.py删除用户的角色

使用没有命令的discord.py删除用户的角色
EN

Stack Overflow用户
提问于 2022-08-11 19:56:41
回答 1查看 74关注 0票数 -2

我希望删除不和谐的服务器用户的角色,而不需要使用命令,只需要调用python函数,当调用它时,它将自动删除角色,如果可能,我如何做呢?

代码语言:javascript
复制
async def removeRoles(ctx, user: discord.Member):
    role = discord.utils.get(ctx.guild, name='Miembro')
    await user.remove_roles(role)

上面的代码是在命令的帮助下删除角色的一个例子,我希望没有它,并像这样使用它:

代码语言:javascript
复制
// calling this function somewhere in other module.py
removeRoles("user_discord_id", "role_to_remove") // removes the role given to the specified user

我怎样才能用discord.py做这件事?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-12 13:05:26

您可以简单地获得公会,然后它的成员,并删除角色的方式。但是,您需要解释是否要在同步或异步函数中这样做。如果您想要执行异步函数,那么它非常简单:

代码语言:javascript
复制
# I'm guessing you have a discord.ext.commands.Bot variable called bot

guild = discord.utils.get(bot.guilds, name="GuildName") 
# Using the guild's ID to get it would be better
# But since you've used name in your example, I'm going to as well

member = discord.utils.get(guild.members, name="MemberName")

role = discord.utils.get(guild.roles, name="RoleName")

await member.remove_roles(role)

但是,如果要删除同步函数中的成员角色,请准备使用不和谐的API和requests库。这个页面在不和谐的API应该是有帮助的:https://discord.com/developers/docs/resources/guild#remove-guild-member-role

像这样的事情应该能起作用:

代码语言:javascript
复制
#  I'm guessing you have a discord.ext.commands.Bot variable called bot

guild = discord.utils.get(bot.guilds, name="GuildName")
# Using the guild's ID to get it would be better
# But since you've used name in your example, I'm going to as well

member = discord.utils.get(guild.members, name="MemberName")

role = discord.utils.get(guild.roles, name="RoleName")

headers = {"authorization": "Bot " + "your_token_goes_here"}

requests.delete(f"https://discord.com/api/guilds/{guild.id}/members/{member.id}/roles/{role.id}", headers=headers)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73326276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档