特定不和谐 ID 上的角色管理

时间:2021-01-16 11:57:20

标签: python discord discord.py

这是我有的,但它仍然不起作用

@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 中的人

2 个答案:

答案 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)

  1. Guild.id 是一个整数,您将它与字符串进行比较
  2. Member.add_roles 中,您需要角色对象,而不是字符串
if ctx.guild.id == 777563438469087244:
    await member.add_roles(role)

这也是一个命令,而不是一个事件,如果你想在有人加入公会时添加角色,你应该使用 on_member_join 事件。您还需要启用 intents.members