python - 禁止和取消禁止仅在没有角色的情况下工作
问题描述
所以我的不和谐机器人正在工作,但如果他们没有角色,我只能踢/禁止。我真的不想在踢或禁止某人之前删除角色。
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评论的问题的解决方案:
理想情况下,机器人的角色应该始终高于所有其他角色。这保证了流畅的流动。这样,机器人也能够接管所有角色的操作。您的错误将如下:
Command raised an exception: Forbidden: 403 Forbidden (error code: 50013): Missing Permissions
说:机器人没有足够的权限,因为它处于用户的实际角色之下。结果:无法踢出用户。
您还可以查看Discord 开发者门户。
推荐阅读
- flutter - 如何布局一列按钮的宽度等于 Flutter 中最宽的按钮的宽度?
- python - 如何从列表中的多个 URL 中抓取和提取相同的特定信息
- javascript - Jquery不允许访问同一类中的构造函数或函数
- reactjs - react i18n - 函数作为 React 子级无效
- flutter - 运行颤振 2.2.3 时缺少 FacebookAuth
- python-3.x - 有没有办法在 Google colab 中观察创建的变量?
- c++ - `vaddhn_high_s16` 实际上做了什么?
- python - 在列表中使用索引时遇到问题
- javascript - 将具有重复值的对象组合在数组中
- android - 不能在 CardView 中设置 RecyclerView?