我已经尝试过很多次但仍然找不到它。我想创建一个删除服务器中所选角色的命令。这是我想出的(目前不关心权限):
@bot.command(pass_context=True)
async def delrole(ctx, role: discord.Role):
await bot.delete_role(role)
await bot.say("The role {} has been deleted!".format(role.name))
如果你可以提供帮助那就太棒了。我用过角色:discord.Role和delete_role()。谢谢你的阅读。如果您有解决方案,请随时对其进行评论。
您可以执行此类操作,以避免只能删除可提及的角色
@bot.command(pass_context=True)
async def delrole(ctx, *,role_name):
role = discord.utils.get(ctx.message.server.roles, name=role_name)
if role:
try:
await bot.delete_role(ctx.message.server, role)
await bot.say("The role {} has been deleted!".format(role.name))
except discord.Forbidden:
await bot.say("Missing Permissions to delete this role!")
else:
await bot.say("The role doesn't exist!")
你在哪里做!delrole name_of_role
并使用discord.utils.get
从服务器上的角色列表中找到它的名字。
然后,如果发现你可以用bot.delete_role
删除它,server
有2个参数,你要删除角色的服务器和角色本身
所有你缺少的是delete_role
对Role
的论证,(它不应该,因为每个Server
知道它是什么@bot.command(pass_context=True)
async def delrole(ctx, role: discord.Role):
await bot.delete_role(role.server, role)
await bot.say("The role {} has been deleted!".format(role.name))
)
converters
你已经使用qazxswpoi在正确的轨道上了