如何通过直接消息discord.py在服务器中为用户分配角色

时间:2018-08-08 01:50:47

标签: python discord discord.py

因此,我正在尝试制作一个机器人,如果用户直接向该机器人发送消息,它将为他们赋予该用户在该服务器中的角色,并且该机器人和该机器人都在其中。我尝试根据角色添加角色ID,但无效。

这是我在想的一个例子,可能有助于更好地解释它。

role = (role ID)

member = message.author
await client.add_roles(member, role)

现在请记住,这将在直接消息中发生,而不是在服务器上发生,这会容易得多。

如果有人知道该怎么做或有任何想法,请告诉我。

谢谢

1 个答案:

答案 0 :(得分:0)

这里,我们记录ID,然后在收到命令时访问适当的对象。

target_server_id = "123..."
target_role_id   = "456..."

@bot.command(pass_context=True)
async def gimmieRole(ctx):
    if not ctx.message.channel.is_private:
        await bot.say("Private command only")
    server = await bot.get_Server(target_server_id)
    role = discord.utils.get(server.roles, id=target_role_id)
    member = server.get_member(ctx.message.author.id)
    if member:
        await bot.add_roles(member, role)
    else:
        await bot.say("You are not a member")