我希望bot获取消息(嵌入)并将其发送到调用命令的通道。以下代码适用于普通文本消息:
@bot.command()
async def fetch(ctx):
channel = bot.get_channel(736984092368830468)
msg = await channel.fetch_message(752779298439430164)
await ctx.send(msg.content)
为了发送嵌入,我尝试了:
@bot.command()
async def fetch(ctx):
channel = bot.get_channel(736984092368830468)
msg = await channel.fetch_message(752779298439430164)
await ctx.send(msg.embeds.copy())
它发送此信息,而不是发送嵌入:
如何使机器人复制并发送嵌入?
您必须像这样选择第一个嵌入,如果要在再次发送之前更改为它,请使用[copy]。(https://discordpy.readthedocs.io/en/latest/api.html?highlight=embed#discord.Embed.copy)
@bot.command()
async def fetch(ctx):
channel = bot.get_channel(736984092368830468)
msg = await channel.fetch_message(752779298439430164)
await ctx.send(embed=msg.embeds[0])
问题是你试图发送一个不和谐的列表。将对象作为字符串嵌入到您的waitctx.send(msg.embeds.copy())
ctx.send()
方法有一个名为embed
的参数,以便在消息中发送嵌入...
await ctx.send(embed=msg.embeds[0])
我们应该做到这一点。这样你就发出了真正的不和谐。嵌入对象,而不是不一致列表。嵌入
你应该不需要. Copp()
方法
await ctx.send(embed=msg.embeds[0].copy())
虽然你可以利用它
使用索引运算符[0]
的唯一缺点是您只能访问消息中包含的一个嵌入。不和谐API不提供在单个消息中发送多个嵌入的方法。(见此问题)。
解决方法可以是迭代msg中的每个嵌入。嵌入
列出并为每个嵌入发送消息。
for embed in msg.embeds:
await ctx.send(embed=embed)
不幸的是,这会导致bot发送多条消息,但您并没有真正注意到。
本文向大家介绍Python中如何复制一个嵌套列表,包括了Python中如何复制一个嵌套列表的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将看到在Python中复制嵌套列表的不同方法。让我们一一看。 首先,我们将使用循环复制嵌套列表。这是最常见的方式。 示例 输出结果 如果运行上面的代码,则将得到以下结果。 让我们看看如何使用列表理解和拆包运算符复制嵌套列表。 示例 输出结果 如果运行上
问题内容: 我想复制一个2D列表,以便如果我修改一个列表,则不修改另一个列表。 对于一维列表,我只是这样做: 现在,如果我修改了b,a就不会修改。 但这不适用于二维列表: 如果我修改了b,a也会被修改。 我该如何解决? 问题答案: 对于不管尺寸多少都可以工作的更通用的解决方案,请使用:
问题内容: 我希望执行一组代码,直到用户明确想要退出该功能为止。例如:当用户运行程序时,他将看到2个选项: 再次运行 出口 这将通过使用开关盒结构来实现。如果用户按下1,则将执行与1相关的一组功能;如果用户按下2,则程序将退出。我应该如何在golang中实现这种情况?在Java中,我相信可以使用do while结构来完成此操作,但是go不支持do while循环。以下是我尝试过的代码,但是它陷入了
问题内容: 我需要制作一个只能由具有特定角色的人执行的命令。我在google和youtube上搜索以找到答案,但一无所获 问题答案: 您可以在命令上添加装饰器,以将其限制为仅具有特定角色或权限的成员。它的文档在这里。它看起来像这样: 请记住,您传递的字符串区分大小写。
机器人必须每隔60秒做一件事。我尝试使用create_task,但它不起作用(bot启动了,但什么也没发生)。如何实现这一点?
问题内容: 我需要制作一个副本,`HashMap<Integer, List List List `原件中。 如果我正确理解,这两种方法只会创建浅拷贝,这不是我想要的: 我对吗? 除了遍历所有键和所有列表项并手动复制之外,还有更好的方法吗? 问题答案: 没错,浅表副本不能满足您的要求。它将具有原始地图中的副本,但这些副本将引用相同的对象,因此对from 的修改将出现在from的对应内容中。 在Ja