【问题标题】:How to associate role to a channel in a single command ? How to get role id?如何在单个命令中将角色关联到频道?如何获取角色ID?
【发布时间】:2019-11-03 12:40:05
【问题描述】:

我有一个根据用户传递的参数创建频道和角色的命令。我很难以只有创建的角色才能访问创建的频道的方式覆盖权限。

如何从角色名称中获取角色 ID?这可以解决问题。我尝试使用 utils.get 但我不知道如何真正使用此功能...

这是我的代码:

@bot.command() 
@commands.has_permissions(administrator=True)
async def salon_create(ctx, arg):   
    guild = ctx.guild
    role = await guild.create_role(name=arg)
    print(role)
    cat=ctx.channel.category 
    role=discord.utils.get(guild.roles, name=arg)
    print(role)
    roles = {
    guild.default_role: discord.PermissionOverwrite(read_messages=False),
    #guild.get_role(role): discord.PermissionOverwrite(read_messages=True)
}
    await guild.create_text_channel(name=arg, overwrites=roles, category=cat)

【问题讨论】:

    标签: python discord.py


    【解决方案1】:

    create_role 返回它创建的Role 对象,你可以直接使用它:

    @bot.command() 
    @commands.has_permissions(administrator=True)
    async def salon_create(ctx, arg):   
        guild = ctx.guild
        role = await guild.create_role(name=arg)
        cat=ctx.channel.category 
        roles = {
        guild.default_role: discord.PermissionOverwrite(read_messages=False),
        role: discord.PermissionOverwrite(read_messages=True)
        }
        await guild.create_text_channel(name=arg, overwrites=roles, category=cat)
    

    【讨论】:

      猜你喜欢
      • 2019-08-17
      • 2022-01-15
      • 2019-07-11
      • 2021-07-19
      • 2020-08-19
      • 2021-04-25
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多