因此,我有一些代码需要为某人提供'BANWATCHLIST‘角色,但唯一的方法是使用成员对象,而我所拥有的只有一个user对象。有没有一种简单的方法可以这样做
dmchannel = await usrobj.create_dm()
await dmchannel.send(f"{user.mention} Be careful, you are now on the ban watch list!")
member = discord.Member(user.id)
await member.add_roles(discord.utils.get(usrobj.guild.roles,name="BANWATCHLIST"))我需要指出的是,我没有使用命令语法
@client.command
async def example(ctx, *args):
# Do stuff所以我没有ctx变量。
发布于 2021-11-29 16:28:45
如果可能,你还需要保存你想要添加角色的行会的id。然后,您可以使用discord.Guild.get_member method获取discord.Member对象
还有一些技巧,不要使用create_dm然后发送到它返回的通道,只使用discord.User.send method即可。
此外,建议您使用discord.Guild.get_role method通过角色的ID获取角色,因为这样更准确,并且可以防止获取其他角色。
https://stackoverflow.com/questions/70150151
复制相似问题