【问题标题】:Discord py having trouble with getting roles for mute commandDiscord py 在获取静音命令角色时遇到问题
【发布时间】:2021-10-09 01:54:53
【问题描述】:

所以这个命令的全部工作,但我不断收到一条错误消息:

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

我尝试使用从角色 id 到 discord.guild.get_role 的很多东西,但我一直收到同样的错误。任何帮助表示赞赏!

@bot.command(pass_context = True)
async def mute(ctx, member: discord.Member):
     if ctx.message.author.guild_permissions.administrator:
        role = discord.utils.get(ctx.guild.roles, name="Muted")
        await member.add_roles(member, role)
        embed=discord.Embed(title="User Muted!", description="**{0}** was muted by **{1}**!".format(member, ctx.message.author), color=0xff00f6)
        await bot.say(embed=embed)
     else:
        embed=discord.Embed(title="Permission Denied.", description="You don't have permission to use this command.", color=0xff00f6)
        await bot.say(embed=embed)

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    您的代码部分已过时,出现此错误的原因来自:

    await member.add_roles(member, role)
    

    在 v1.0 之前,您需要在方法的参数中传递 member,但不再需要。所以在这里,您尝试添加一个discord.Role,即discord.Member

    其他过时的部分:

    • pass_context=True 也不再需要了,你可以删除它。
    • bot.say不存在,可以使用ctx.send(embed=embed)

    您可以在此处阅读有关 v1.0 迁移的更多信息:Migrating to v1.0

    【讨论】:

      【解决方案2】:
      await member.add_roles(role)
      

      这就是您正在寻找的,正如 MrSpaar 刚刚告诉您的那样。

      我想提出的另一个建议是执行以下操作。

      改变这个

      async def mute(ctx, member: discord.Member):
      

      到这里:

      async def mute(ctx, member: discord.Member = None, *, reason=None):
          if not member:
              await ctx.send("You must specify a user.")
              return
          if not reason:
              await ctx.send("You must specify a reason.")
              return
      

      如果您还有其他问题,请告诉我。

      【讨论】:

        猜你喜欢
        • 2021-09-04
        • 2020-07-09
        • 1970-01-01
        • 1970-01-01
        • 2021-05-09
        • 2020-02-22
        • 2021-02-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多