【问题标题】:Ban And unban only working if have no role pls禁止和取消禁止仅在没有角色的情况下工作
【发布时间】:2021-06-03 09:29:41
【问题描述】:

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

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

【问题讨论】:

  • 如果他们有角色,回溯是什么?请包括在内。
  • 可能是角色层次结构问题。确保您的机器人比您要禁止的机器人具有更高的角色。
  • 谢谢Ceres,我确实需要它比我踢的人高

标签: python discord


【解决方案1】:

由于解决方案仅在 cmets 中,这里是基于 Ceres 评论的问题解决方案:

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

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

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

你也可以看看Discord Developer Portal

【讨论】:

  • 谢谢,但它开始工作没有错误。
  • 如果其他平台用户遇到同样的问题,我只是解释一下。
猜你喜欢
  • 2019-09-03
  • 1970-01-01
  • 2019-03-28
  • 1970-01-01
  • 2016-03-15
  • 1970-01-01
  • 1970-01-01
  • 2017-04-12
  • 2019-05-31
相关资源
最近更新 更多