这是我有的,但它仍然不起作用
@client.command()
async def addrole(ctx, member : discord.Member, role : discord.Role):
if ctx.guild.id == "777563438469087244":
await member.add_roles("799957984062865448")
else:
return
我想给任何加入成员角色但只在该服务器 ID 中的人
答案 0 :(得分:0)
ctx.guild.id
返回整数类型数据。在您的代码中,您尝试将其与字符串进行比较。你只需要删除引号。然后,您不能使用角色的 id 添加角色。您必须添加角色本身。
@client.command()
async def addrole(ctx, member : discord.Member, role : discord.Role):
if ctx.guild.id == 777563438469087244:
await member.add_roles(role)
答案 1 :(得分:0)
Guild.id
是一个整数,您将它与字符串进行比较Member.add_roles
中,您需要角色对象,而不是字符串if ctx.guild.id == 777563438469087244:
await member.add_roles(role)
这也是一个命令,而不是一个事件,如果你想在有人加入公会时添加角色,你应该使用 on_member_join
事件。您还需要启用 intents.members