Discord.py:我怎样才能获得机器人角色并改变他的颜色?

Posted

技术标签:

【中文标题】Discord.py:我怎样才能获得机器人角色并改变他的颜色?【英文标题】:Discord.py: How can I get the bot role and change his color? 【发布时间】:2021-06-03 08:29:41 【问题描述】:

所以我希望我的机器人扮演自己的角色并对其进行编辑以更改颜色,但我没有找到任何东西。 我试图在on_ready 下使用discord.utils.get 来获取它,但它不起作用。 你们能帮帮我吗?

【问题讨论】:

机器人无法编辑自己的角色,无论你做什么都是不可能的 【参考方案1】:

除非用户是公会(服务器)的所有者,否则他们无法编辑其最高角色。因此,这有点难以实现。您要做的是获取机器人的倒数第二个角色,然后编辑该角色的颜色。

@bot.command()
async def color(ctx):
    bot_member = ctx.guild.get_member(bot.user.id)
    if len(bot_member.roles) < 3:  # bot needs 3 roles, @everyone, the bot integration role, and a role to edit
        return await ctx.send('Give me another role please!')
    else:
        role_to_edit = bot_member.roles[-2]  # the second highest role
        await role_to_edit.edit(color=discord.Color.blue())  # you can choose what you want to change this to, i used blue as an example

为此,机器人必须至少有 2 个角色。顶部角色应设置为默认(不可见)颜色,因此编辑较低角色颜色将编辑机器人显示颜色角色的颜色。

【讨论】:

以上是关于Discord.py:我怎样才能获得机器人角色并改变他的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

discord.py :: 我怎样才能让我的机器人对它自己的消息做出反应?

Discord.py 将角色添加到成员

有没有办法阻止 discord.py 机器人提及角色?

.verify 命令未赋予角色(discord.py 1.7.3)

如何在 discord.py 中给某人一个角色?

Discord.py 反应角色和 DMing 反应堆