我想通过我的机器人建立私人渠道,但我有一个错误。这是我的代码:
@client.command(name='create', help="Créer un salon privé")
@commands.has_permissions(manage_channels=True, manage_roles=True)
async def create(ctx, *, nom_de_salon):
guild = ctx.guild
role = nom_de_salon
await guild.create_role(name=role)
member : ctx.author
autorize_role = get(guild.roles, name=role)
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
guild.me: discord.PermissionOverwrite(read_messages=True),
autorize_role: discord.PermissionOverwrite(read_messages=True)
}
await guild.create_text_channel(nom_de_salon, overwrites=overwrites)
await client.add_role(member, role)
这是错误:
Command raised an exception: AttributeError: 'NoneType' object has no attribute 'id'
谢谢
答案 0 :(得分:1)
您的代码中有一些小错误。但是错误的原因在最后一行。角色名称没有ID,此处需要角色对象。 discord.Role 我已经更正了您的代码,因此可以正常工作。
@client.command(name='create', help="Créer un salon privé")
@commands.has_permissions(manage_channels=True, manage_roles=True)
async def create(ctx, *, nom_de_salon):
guild = ctx.guild
role = nom_de_salon
autorize_role = await guild.create_role(name=role)
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
guild.me: discord.PermissionOverwrite(read_messages=True),
autorize_role: discord.PermissionOverwrite(read_messages=True)
}
await guild.create_text_channel(nom_de_salon, overwrites=overwrites)
await ctx.author.add_roles(autorize_role)