【发布时间】:2021-06-29 17:16:27
【问题描述】:
我想检查输入了 %unban 之类的命令的用户是否具有执行此操作的权限。我的问题是我不知道该怎么做。 我不想使用 @command.has_role() 方法。我想要一个 if-else-clause 代码检查作者是否有权打印以下内容:“您有权执行此操作”或“您无权执行此操作”。
@bot.command()
async def unban(ctx, *, member):
teamler = ctx.message.author.id
role = get(ctx.guild.roles, name='↬ Team Member')
banned_users = await ctx.guild.bans()
member_name, member_discriminator = member.split('#')
for ban_entry in banned_users:
user = ban_entry.user
if (user.name, user.discriminator) == (member_name, member_discriminator):
await ctx.guild.unban(user)
await ctx.send(f'Das {role.mention} ' + '<@' + f'{teamler}' + '>' + ' hat den Spieler ' + f'{user.mention}' + ' entbannt.')
也许你能够解决我的问题,这样用户就可以收到一条消息,如果他有权限/角色来执行 %ban / %unban 之类的操作。
【问题讨论】:
-
我不处理 discord.py,但我喜欢检查代码:您可以检查
@command.has_role()装饰器的外观,看看他们是如何做到的? ;P -
非常感谢 h4z3。这对我帮助很大。弄清楚它是如何工作的:)
标签: python discord discord.py user-roles