【问题标题】:How to fetch and edit embeds in discord.py?如何在 discord.py 中获取和编辑嵌入?
【发布时间】:2020-10-02 01:39:34
【问题描述】:

我希望机器人获取嵌入并在它们之间滚动。这是我尝试做的:

    @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

它不发送嵌入。它发送这个:

如何获取嵌入并发送它们,然后如何编辑它们?

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    为了发送嵌入,您应该使用

    await ctx.send(embed=embed_variable)
    

    将其附加到消息中。您正在发送实际的嵌入实例,它需要一个字符串。所以在你的情况下,你应该使用

    await ctx.send(embed=contents[cur_page-1])
    

    之后,您可以使用常用的嵌入方法和属性(add_fieldset_footer、...)随意编辑它们。

    【讨论】:

      猜你喜欢
      • 2020-03-17
      • 2023-01-26
      • 2021-03-21
      • 2021-07-31
      • 2021-04-01
      • 2022-08-06
      • 2019-01-12
      • 2021-02-18
      • 1970-01-01
      相关资源
      最近更新 更多