0

我想为我的机器人制作 Patreon Only 命令,但我不知道如何制作它,因此我可以根据 1 个服务器中的 1 个角色限制对命令的访问,我希望该命令在全球范围内工作,但我想要我的支持服务器上“Patreon”角色的人只能访问该命令。

4

2 回答 2

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.")
于 2020-09-19T22:46:28.383 回答
0

在您的命令中,使用get_guild获取您的支持服务器公会,然后使用Guild.get_member获取执行命令的任何人的成员对象 (ctx.author.id)。然后,您可以检查您的Patreon角色是否在该成员的Member.roles 中(我会使用utils.get),如果不是则退出命令。

于 2020-09-19T22:26:24.643 回答