我正在尝试使用has_role
,但在DM中却不起作用。
@commands.check_any(commands.has_role(role_id))
@commands.dm_only()
elif isinstance(error, commands.CheckAnyFailure):
await ctx.send("`ERROR: Permission denied`")
在服务器上工作!
在DM中始终返回ERROR: Permission denied
看起来我看不懂这个角色。有什么想法吗?
发布于 2021-10-01 11:24:36
一个用户可以在每个行会中有不同的角色,但在DM中没有。您应该检查用户在特定行会中的角色:
@bot.command()
@commands.dm_only()
async def whatever(ctx):
guild = bot.get_guild(GUILD_ID)
member = guild.get_member(ctx.author.id)
role_id = 123123123
if any(role.id == role_id for role in member.roles):
# has necessary role
else:
await ctx.send("`ERROR: Permission denied`")
https://stackoverflow.com/questions/69404760
复制相似问题