Discord.py Bot 在点击其反应后编辑消息

时间:2021-07-04 21:50:35

标签: python discord discord.py

我一直在寻找这个代码来开始工作:

    ...
    message = await ctx.send(embed=embed)
    await message.add_reaction(":arrow_left:")
    await message.add_reaction(":arrow_right:")

    async def on_reaction(reaction, user):
        if user.reaction.emoji == ":arrow_left:":
            await message.edit("Page left")
            
        if user.reaction.emoji == ":arrow_right:":
            await message.edit("Page right")

基本上,机器人会对它自己的嵌入消息做出反应。我想让它在点击机器人添加的反应时编辑嵌入。这就是我想使用临时“on_reaction”的地方,以使其仅适用于此嵌入消息。

你的真心

1 个答案:

答案 0 :(得分:1)

您可以使用 DiscordUtils 并使用内置分页器。

这是一个简单的例子:

import DiscordUtils as DiscordUtils

embed1 = discord.Embed(color = ctx.author.color, title="Test") # Add anything you want to
embed2 = [...]
embed3 = [...]

paginator = DiscordUtils.Pagination.CustomEmbedPaginator(ctx, remove_reactions=True)
paginator.add_reaction('⏮️', "first")
paginator.add_reaction('⏪', "back")
paginator.add_reaction('⏩', "next")
paginator.add_reaction('⏭️', "last")
paginator.add_reaction('?', "lock")

embeds = [embed1, embed2, embed3]
await paginator.run(embeds)

有关详细信息,请参阅:DiscordUtils