【问题标题】:NotFound: 404 Not Found (error code: 10011): Unknown RoleNotFound:404 未找到(错误代码:10011):未知角色
【发布时间】:2021-03-08 13:25:00
【问题描述】:

我正在尝试在我的 dicord.py 和 discord.ext.commands 机器人中添加静音命令,并且由于其他不和谐角色不允许“静音”角色正常运行,我必须在分配之前从成员中删除所有角色成员的“静音”角色。一切似乎都很好,但我无法与 member.roles 列表相处,通过 print() 似乎很好并显示每个角色的名称或 ID,但它给了我这个错误:

NotFound: 404 Not Found (error code: 10011): Unknown Role

我尝试更改不同类型的 member.roles 列表,但它们都不起作用

@client.command()
@commands.has_any_role('Admin', 'Mod', 'Owner')
async def mute(ctx, member: discord.Member = None):
    for i in range(100):
        try:
            print(member.roles[i])
            await member.remove_roles(member.roles[i])
        except IndexError:
            print('Something happened, maybe index out of range?')

    role = ctx.guild.get_role(781129235079233586)
    mute_message = ('Muted ' + str(member))
    print(mute_message)
    await member.add_roles(role)
    await ctx.send(mute_message)

我也尝试使用角色的 ID 代替名称

id(member.roles[i])

但我明白了:

Command raised an exception: AttributeError: 'int' object has no attribute 'id'

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    您的循环设置不正确。你应该看看Member.roles

    注意:使用for i in range(100)是不好的做法,可以直接循环。

    for role in member.roles:
        await member.remove_roles(role)
    

    【讨论】:

      【解决方案2】:

      使用

      role = discord.utils.get(message.guild.roles, id=781129235079233586)
      

      而不是

      role = ctx.guild.get_role(781129235079233586)
      

      【讨论】:

        猜你喜欢
        • 2022-01-07
        • 1970-01-01
        • 2015-02-20
        • 2021-09-06
        • 1970-01-01
        • 2021-01-20
        • 2015-10-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多