Discord.py发送嵌入而不使用添加字段

时间:2020-09-27 16:32:13

标签: discord.py discord.py-rewrite

我正在尝试从用户那里获得一条消息,然后将其发送到特定的文本通道。消息应嵌入。但是,我不喜欢当您有很多字段时的外观,我希望discord.Embed()中的描述保留文本内容。但这给我一个错误 TypeError: Object of type Message is not JSON serializable

这是我的代码:

class Changelog(commands.Cog):

    def __init__(self, client):
        self.client = client

    @commands.Cog.listener()
    async def on_ready(self):
        print('Changelog is loaded')

    @commands.command()
    async def changelog(self, ctx):
        changelog_channel = self.client.get_channel(759547196433104956)
        await ctx.send("`Message: `")
        message = await self.client.wait_for('message', check=lambda message: message.author == ctx.author, timeout=300)
        embed = discord.Embed(title="Changelog", description=message, color=0)
        await changelog_channel.send(embed=embed)


def setup(client):
    client.add_cog(Changelog(client))

1 个答案:

答案 0 :(得分:2)

之所以不会收到此错误,是因为您没有添加字段,而是因为您试图在描述中放入message实例,而您应该将该消息的content放入在那里。该说明只能使用strings作为其值。

embed = discord.Embed(title="Changelog", description=message.content, color=0)

wait_for("message")返回一个discord.Message实例。 Message包含该邮件的内容,id,作者,频道以及更多内容。如果只想获取用户发送的文本,则需要content属性。

API docs中可以找到有关Message可以做什么的更多信息。