我希望删除不和谐的服务器用户的角色,而不需要使用命令,只需要调用python函数,当调用它时,它将自动删除角色,如果可能,我如何做呢?
async def removeRoles(ctx, user: discord.Member):
role = discord.utils.get(ctx.guild, name='Miembro')
await user.remove_roles(role)上面的代码是在命令的帮助下删除角色的一个例子,我希望没有它,并像这样使用它:
// 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做这件事?谢谢!
发布于 2022-08-12 13:05:26
您可以简单地获得公会,然后它的成员,并删除角色的方式。但是,您需要解释是否要在同步或异步函数中这样做。如果您想要执行异步函数,那么它非常简单:
# 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。
像这样的事情应该能起作用:
# 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)https://stackoverflow.com/questions/73326276
复制相似问题