我想为我的机器人制作“ Patreon Only”命令,但我不知道如何做到这一点,因此我可以基于1个服务器中的1个角色来限制对命令的访问,我希望该命令在全局范围内起作用,但是我希望支持服务器上具有“ Patreon”角色的人员只能访问该命令。
答案 0 :(得分:1)
您可以使用discord.utils.get
来获得Patreon角色,然后遍历该成员的角色和一个简单的if-else
。
@client.command()
async def test(ctx):
homeGuild = client.get_guild(7300646418576xxxxx) # Home Guild/Support Server; where user has "Patreon" role.
patreonRole = get(homeGuild.roles, id=7570088168301xxxxx) # Patreon role ID that a user must have.
member = []
for pledger in homeGuild.members:
if pledger == ctx.author:
member = pledger
if patreonRole in member.roles:
await ctx.send("You are a Patreon.")
else:
await ctx.send("You are not a Patreon.")
答案 1 :(得分:0)
在您的命令中,使用get_guild获取支持服务器行会,然后使用Guild.get_member获取执行该命令的用户的成员对象(ctx.author.id)。然后,您可以检查您的Patreon
角色是否在该成员的Member.roles中(我会使用utils.get),然后退出该命令。