如何使discord.py反应角色代码

时间:2020-09-18 20:45:49

标签: discord.py

我是不和谐机器人制作的新手,我想让机器人对我的信息做出回应,一旦按下该按钮,用户就可以做出反应来担任角色。允许我执行此操作的代码是什么?谢谢。

1 个答案:

答案 0 :(得分:0)

这是一个写得很好并且格式正确的问题!为了使漫游器能够检测到对特定消息的反应,您可以采取多种方法。最简单的方法是通过ID,所以我将使用一个简单的命令来完成此操作。

messageIDs = []

@client.event
async def on_raw_reaction_add(payload):
    global messageIDs

    for messageID in messageIDs:
        if messageID == payload.message_id:
            user = payload.member
            role = "roleName"
            await user.add_roles(discord.utils.get(user.guild.roles, name = role))

@client.command()
async def addMessage(ctx, messageID):
    global messageIDs
    
    emoji = "?"
    channel = ctx.message.channel

    try:
        msg = await channel.fetch_message(messageID)
    except:
        await ctx.send("Invalid Message ID!")
        return
    await msg.add_reaction(emoji)
    messageIDs.append(messageID)