反应分页按钮前进和后退python

反应分页按钮前进和后退python,第1张

反应分页按钮前进和后退python

这是我想出的。

基本上,我们有一个循环,可根据所需反应检查每个反应,然后删除旧消息发送新消息(如果我们看到了所寻找的反应之一)。

from discord.ext import commandsbot = commands.Bot(command_prefix='!')left = '⏪'right = '⏩'messages = ("1", "2", "3")def predicate(message, l, r):    def check(reaction, user):        if reaction.message.id != message.id or user == bot.user: return False        if l and reaction.emoji == left: return True        if r and reaction.emoji == right: return True        return False    return check@bot.command(pass_context=True)async def series(ctx):    index = 0    while True:        msg = await bot.say(messages[index])        l = index != 0        r = index != len(messages) - 1        if l: await bot.add_reaction(msg, left)         if r: await bot.add_reaction(msg, right)        # bot.wait_for_reaction        react, user = await bot.wait_for_reaction(check=predicate(msg, l, r))        if react.emoji == left: index -= 1        elif react.emoji == right: index += 1        await bot.delete_message(msg)bot.run("TOKEN")

有人要求提供一种用于编辑消息的版本,而不是发送新消息,我也将其更新为最新版本:

@bot.command(pass_context=True)async def series(ctx):    index = 0    msg = None    action = ctx.send    while True:        res = await action(content=messages[index])        if res is not None: msg = res        l = index != 0        r = index != len(messages) - 1        if l: await msg.add_reaction(left)         if r: await msg.add_reaction(right)        react, user = await bot.wait_for('reaction_add', check=predicate(msg, l, r))        if react.emoji == left: index -= 1        elif react.emoji == right: index += 1        action = msg.edit


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5653692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存