Discord.Py 创建专用频道



我想通过我的机器人做私人频道,但我有一个错误。这是我的代码:

@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'

谢谢

代码中有一些小错误。但是错误的原因在最后一行。角色名称没有 ID,此处需要角色对象。不和。角色 我已经更正了您的代码,因此它可以工作。

@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)