我希望机器人获取嵌入内容并在它们之间滚动。这是我尝试做的事情:
@commands.command()
async def test(self,ctx):
chan = self.bot.get_channel(746339276983238677)
message1 = await chan.fetch_message(761267709438328904)
message2 = await chan.fetch_message(761267744721076265)
message3 = await chan.fetch_message(761267778639495168)
page1= message1.embeds[0]
page2= message2.embeds[0]
page3= message3.embeds[0]
contents = [page1,page2,page3]
pages = 3
cur_page = 1
message = await ctx.send(f"Page {cur_page}/{pages}:\n{contents[cur_page-1]}")
await message.add_reaction("◀️")
await message.add_reaction("▶️")
def check(reaction, user):
return user == ctx.author and str(reaction.emoji) in ["◀️", "▶️"]
while True:
try:
reaction, user = await self.bot.wait_for("reaction_add", timeout=60, check=check)
if str(reaction.emoji) == "▶️" and cur_page != pages:
cur_page += 1
await message.edit(content=f"Page {cur_page}/{pages}:\n{contents[cur_page-1]}")
await message.remove_reaction(reaction, user)
elif str(reaction.emoji) == "◀️" and cur_page > 1:
cur_page -= 1
await message.edit(content=f"Page {cur_page}/{pages}:\n{contents[cur_page-1]}")
await message.remove_reaction(reaction, user)
else:
await message.remove_reaction(reaction, user)
except asyncio.TimeoutError:
await message.delete()
break
它不发送嵌入内容。它发送此:
如何获取嵌入并发送嵌入,然后如何编辑它们?
答案 0 :(得分:0)
要发送嵌入,您应该使用
await ctx.send(embed=embed_variable)
将其附加到邮件中。您正在将实际的嵌入实例发送到需要字符串的位置。因此,您应该使用
await ctx.send(embed=contents[cur_page-1])
然后,您可以使用常规的嵌入方法和属性(add_field
,set_footer
,...)来随意编辑它们。