【问题标题】:Discord Py - How to add multiple roles to all members on guild with text commandDiscord Py - 如何使用文本命令向公会的所有成员添加多个角色
【发布时间】:2021-02-01 22:13:27
【问题描述】:

如何为所有用户添加多个角色?我编码的内容没有产生错误,但它不起作用。我正在尝试遍历 discord 公会的所有成员,然后将指定的角色添加到每个成员。

    member = message.author
    cat1 = discord.utils.get(member.guild.roles, id=767162794125557760)
    cat2 = discord.utils.get(member.guild.roles, id=767159884314574888)
    cat3 = discord.utils.get(member.guild.roles, id=767160508637642793)
    cat4 = discord.utils.get(member.guild.roles, id=767159426565013504)
    cat5 = discord.utils.get(member.guild.roles, id=767159149040500807)

    if message.content.startswith('!addroles'):
        if message.author.id == 80760379319259136:
            for person in message.guild.members:
                await person.add_roles(cat1, cat2, cat3, cat4, cat5)
            print("done.")

【问题讨论】:

    标签: python api discord roles


    【解决方案1】:

    代码对我来说非常好:

    @client.command()
    async def addroles(message):
    
        member = message.author
        cat1 = discord.utils.get(member.guild.roles, id=767658943442583573)
        cat2 = discord.utils.get(member.guild.roles, id=767658997607170069)
    
        for person in message.guild.members:
            await person.remove_roles(cat1, cat2)
            print(person)
        print("done.")
    

    尝试在 for 循环中打印出每个人。也许您的 if 陈述被证明是错误的,例如提供了错误的作者 ID,因此不会执行 for 循环。

    也尝试使用命令而不是检查消息内容:

    client = commands.Bot(command_prefix="!")
    
    @client.command()
    async def addroles(message):
        pass
    

    【讨论】:

      猜你喜欢
      • 2021-09-04
      • 2019-11-24
      • 2021-02-17
      • 2020-12-11
      • 2021-06-27
      • 1970-01-01
      • 2020-02-22
      • 1970-01-01
      • 2021-03-17
      相关资源
      最近更新 更多