【问题标题】:How could i get the name of a role in discord.py我如何在 discord.py 中获得角色的名称
【发布时间】:2021-05-27 17:45:21
【问题描述】:

我创建了一个添加角色命令。它工作正常,但我的问题是它只适用于角色的 id。我想知道如何以某种方式将角色的 id 转换为角色的名称。 这是代码。

    @commands.has_permissions(manage_messages=True)
    async def addrole(self, ctx, member: discord.Member,rolename):
        if member is None:
            member=ctx.author
        role = discord.utils.get(ctx.guild.roles, id=rolename)
        await member.add_roles(role)
        await ctx.send(f"{member.mention}was added {rolename}")

任何帮助表示赞赏。编辑

解决方案

我使用了 2 个 cmets 并创建了这个完美运行的命令。

    @commands.command()
    @commands.has_permissions(manage_messages=True)
    async def addrole(self, ctx, role: discord.Role, member: discord.Member=None):
        if member is None:
            member=ctx.author
        await member.add_roles(role)
        await ctx.send(f"{member.mention} was added {role}")```

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    您可以像使用成员转换器一样使用角色转换器。您可以在参数中传递role: discord.Role。然后,您只需提及角色即可。

    此外,您必须将默认值 None 分配给 member 参数以检查它是否为 None。

    @commands.has_permissions(manage_messages=True)
    async def addrole(self, ctx, role: discord.Role, member: discord.Member=None):
        if not member:
            member=ctx.author
        await member.add_roles(role)
        await ctx.send(f"{member.mention}was added {role.name}")
    

    参考文献

    【讨论】:

    • 这会对您产生错误,因为位置参数跟在关键字参数之后。 OP 必须更改参数顺序以使成员可选
    • 它在:角色:discord.Role 上出错。所以新命令现在首先具有discord.role,然后是成员:discord.Member=None,正如您在解决方案中看到的那样。TY帮助。
    【解决方案2】:

    您可以将您的rolename 变量声明为discord.Role 并使用将应用的隐式role converter,就像您的member 对象发生的情况一样。你的函数看起来像这样:

    @commands.has_permissions(manage_messages=True)
    async def addrole(self, ctx, member: discord.Member, role: discord.Role):
        await member.add_roles(role)
        await ctx.send(f"{member.mention} was added {rolename}")
    

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 2020-10-30
      • 2021-03-16
      • 2018-03-18
      • 1970-01-01
      • 2021-11-09
      • 2019-07-11
      • 2015-01-21
      • 1970-01-01
      相关资源
      最近更新 更多