我正在尝试从用户那里获得一条消息,然后将其发送到特定的文本通道。消息应嵌入。但是,我不喜欢当您有很多字段时的外观,我希望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))
答案 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
可以做什么的更多信息。