当用户对discord.py rewrite中的消息作出反应时,如何更改嵌入?

时间:2020-06-25 00:26:39

标签: python python-3.x discord discord.py discord.py-rewrite

当用户对list做出反应时,如何更改嵌入说明? 这是我当前正在使用的代码,-

此外,当用户对消息做出反应时,我想清除用户的反应。 此外,我只想向具有权限的用户(管理员)显示第三个embed(Mod Commands)。 感谢您的帮助。

编辑-我知道如何正常地更改嵌入,我只是想不出当作者添加反应时如何更改嵌入...

2 个答案:

答案 0 :(得分:0)

也许对您有帮助。 converting constructor

@bot.event
async def on_reaction_add(reaction, user):
    for role in user.roles:
        # administrator role name = 'test_role'
        if role.name == 'test_role':
            # if user is administrator
            # do something
            break
    else:
        # if user is not administrator
        # and add emoji ▶ or ◀ for any message
        if reaction.emoji == '▶':
            # if user add reaction emoji - ▶
            # do something
            pass
        elif reaction.emoji == '◀':
            # if user add reaction emoji - ◀
            # do something
            pass

答案 1 :(得分:0)

我也在想同样的事情。 我现在可以接受用户的反应但不能清除它们所以他们必须按两次(一次清除然后反应) 而且所有的嵌入都在发送时编辑 这是我的代码供参考:

def check(reaction, user):
        return user == author and str(reaction.emoji) in ["➡","⬅"]

    help_list=[help_embed,server_embed,greet_embed,fun_embed,music_embed,utility_embed]
    count=0
    help_msg=await ctx.send(embed=help_list[count])
    await help_msg.add_reaction("⬅")
    await help_msg.add_reaction("➡")
    
    while True:
        reaction, user = await self.bot.wait_for('reaction_add',check=check)
        print(str(reaction))
        if str(reaction.emoji) == "➡":
            count+=1
            if count>len(help_list)-1:
                count=0
            await help_msg.edit(embed=help_list[count])
            await help_msg.add_reaction("⬅")
            await help_msg.add_reaction("➡")
    
        elif str(reaction.emoji) == "⬅":
            count-=1
            if count<0:
                count=len(help_list)-1
            await help_msg.edit(embed=help_list[count])
            await help_msg.add_reaction("⬅")
            await help_msg.add_reaction("➡")

注意:help_list 只是一个嵌入列表。

谢谢!