使用以下代码行:
@bot.command(pass_context=True)
async def ban_role(ctx, *,role_name):
role = discord.utils.get(ctx.message.server.roles, name=role_name)
if role:
try:
await ctx.delete_role(ctx.message.server, role)
await ctx.send("The role {} has been deleted!".format(role.name))
except discord.Forbidden:
await ctx.send("Missing Permissions to delete this role!")
else:
await ctx.send("The role doesn't exist!")
我得到了错误:
答案 0 :(得分:1)
您使用的Discord.py v0.16版本过时的语法不再受支持。
请参见migration guide for v1,特别是Server is now Guild。
您也可以直接从Context object's guild
attribute获取公会,而不用通过其message
属性。
另外,除非覆盖了Context,否则它将没有delete_role
方法。
您将改为使用Role.delete
方法。
有关降价的帮助,请参见https://stackoverflow.com/editing-help。