【问题标题】:Discord.py: How to change role color?Discord.py:如何更改角色颜色?
【发布时间】:2021-06-02 08:39:43
【问题描述】:

所以我为我的不和谐机器人创建了这个角色,我想将他的颜色更改为黄色。 我不知道为什么它不会改变颜色。这是我的代码,有人可以帮我吗?

@bot.command(pass_context=True)
async def add_role(ctx):
    member = ctx.author
    role = discord.utils.get(member.guild.roles, name="Spike")
    await member.add_roles(role)
    await role.edit(colour=discord.colour(0xFFFF00))
    print("done")

编辑:它不打印“完成”

【问题讨论】:

  • 您遇到任何错误?
  • 没有任何错误,但颜色不会改变。它也不会打印“完成”@ŁukaszKwieciński

标签: python discord discord.py bots roles


【解决方案1】:

好吧,我的问题是我的 bot.command 无法正常工作,因为我同时使用了机器人和客户端方法。我不知道他们不能一起工作,所以我决定只使用 bot,现在一切正常。

【讨论】:

    【解决方案2】:

    在下面的 await role.edit(colour=discord.colour(0xFFFF00)) 行中,您似乎错过了 discord 类中 Color 的大写。这应该是正确的,除非 API 已经处理了。

    await role.edit(colour=discord.Colour(0xFFFF00))

    【讨论】:

    • 您可以尝试更改行以包含name="Spike" 像这样await role.edit(name="Spike", colour=discord.Colour(0xFFFF00)) 吗?我一直在研究类似的问题,想知道这是否有帮助
    【解决方案3】:

    你可以试试这个:

    @bot.command(pass_context=True)
    async def add_role(ctx):
        member = ctx.author
        role = discord.utils.get(member.guild.roles, name="Spike")
        await member.add_roles(role)
        await role.edit(colour=0xFFFF00)
        print("done")
    

    【讨论】:

    • 所以您可以尝试在async def 下编写print(1) 以检查该命令是否有效。如果命令有效,请将 print() 函数与每行后面的数字不同并调用。通过这种方法,您可以了解问题出在哪里。
    • 我尝试了 async def 下的 print("1") 并没有打印出来。 @Weylyn
    • 你的机器人没有看到这个命令。当你调用不和谐时,什么也没有发生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 2019-03-16
    • 1970-01-01
    • 2021-07-29
    • 2021-09-30
    • 1970-01-01
    • 2021-07-19
    相关资源
    最近更新 更多