首页 > 解决方案 > Discord.py 嵌入颜色

问题描述

嘿,我正在使用脚本从一台服务器发布到另一台嵌入,但我需要从代码中更改这部分转发嵌入(输出)的颜色,您还更改页脚等等,所以我假设我必须在那里设置嵌入颜色。我已经尝试了很多方法,例如:

嵌入=不和谐。嵌入(颜色=0xd10a07)

 if message.channel.id in channels_forward_embed:
            dest_channel_id = channels_forward_embed[message.channel.id]
            if message.embeds:
                embed = message.embeds[0]


                embed.set_footer(text="TEST | TEST", icon_url="pictureurl")
            else:
                return

            try:
                await self.cog.send_embed(dest_channel_id, embed)
            except:
                print('Error sending embed')
    ```

标签: pythonpython-3.xdiscorddiscord.py

解决方案


https://discordpy.readthedocs.io/en/latest/api.html?highlight=embed#discord.Embed.colour

嵌入的颜色代码。别名为颜色。这可以在初始化期间设置。

嵌入颜色只能在初始化期间设置。之后您无法更改嵌入颜色。

embed = message.embeds[0]

在这里,您正在从现有嵌入中复制​​嵌入。然后你打电话set_footer。没有类似的等效命令set_color

你要做的是:

embed_dict = message.embeds[0].to_dict()
embed_dict['colour'] = 0xd10a07
embed = discord.Embed.from_dict(**embed_dict)
embed.set_footer(text="TEST | TEST", icon_url="pictureurl")

这将使用完全相同的标题、描述等初始化新嵌入,但颜色经过修改。

注意:我还不能测试它。不能保证我的代码可以正常工作,但它的概念应该可以正常工作。让我知道它是否有效。如果它不工作,print(embed_dict)它应该在color某个地方设置一个你需要用新值覆盖的集合。


推荐阅读