Discord.py-给某人一个角色,但在PM中并带有服务器ID

时间:2020-07-05 01:20:37

标签: python discord.py

我想做这样的事情: 如果有人在PM的Bot中写入命令!GiveRole,则下一个应该是Server ID,然后是Role,这样的事情是可能的,因为我知道让某人与bot扮演角色并不难,但是可以使用PM和服务器ID来做到这一点吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

尝试一下,但是我不确定它是否可以工作。

@bot.command()
async def giverole(ctx, guild, role):
    if isinstance(ctx.channel, discord.DMChannel) == False: # Checking if this is a DM Channel
        return
    guild = bot.get_guild(int(guild)) # Getting guild
    if guild is None: # Checking if the guild exists
        await ctx.send("Invalid guild ID!")
        return
    role = guild.get_role(int(role)) # Getting role
    if role is None: # Checking if the role exists
       await ctx.send("Invalid role ID!")
       return
    await guild.get_member(ctx.guild.id).add_roles(role) # Give role to member
    await ctx.send(f"You received **{role.name}** role!")