首页 > 解决方案 > 禁止和取消禁止仅在没有角色的情况下工作

问题描述

所以我的不和谐机器人正在工作,但如果他们没有角色,我只能踢/禁止。我真的不想在踢或禁止某人之前删除角色。

my code
@bot.command()
@commands.has_permissions(ban_members=True)
async def ban(ctx, member: discord.Member, *, reason=None):
    await member.ban(reason=reason)
    await ctx.send(f"{member} was banned!")

@bot.command()
@commands.has_permissions(kick_members=True)
async def kick(ctx, member: discord.Member, *, reason=None):
    await member.kick(reason=reason)
    await ctx.send(f"{member} was kicked!")

@bot.command()
@commands.has_permissions(ban_members=True)
async def unban(ctx, *, member):
    bannedUsers = await ctx.guild.bans()
    name, discriminator = member.split("#")

    for ban in bannedUsers:
        user = ban.user

        if(user.name, user.discriminator) == (name, discriminator):
            await ctx.guild.unban(user)
            await ctx.send(f"{user.mention} was unbanned.")
            return

标签: pythondiscord

解决方案


由于解决方案仅在此处的评论中是基于Ceres评论的问题的解决方案:

理想情况下,机器人的角色应该始终高于所有其他角色。这保证了流畅的流动。这样,机器人也能够接管所有角色的操作。您的错误将如下:

Command raised an exception: Forbidden: 403 Forbidden (error code: 50013): Missing Permissions

说:机器人没有足够的权限,因为它处于用户的实际角色之下。结果:无法踢出用户。

您还可以查看Discord 开发者门户


推荐阅读