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