我想通过我的机器人做私人频道,但我弄错了。下面是我的代码:
@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'
谢谢
发布于 2020-06-17 21:20:04
您的代码中有一些小错误。但是错误的原因在最后一行。角色名称没有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)
https://stackoverflow.com/questions/62425838
复制相似问题