如何为discordbot实现Patreon only命令



所以我看到了另一篇几乎完全相同问题的帖子,但我的不同。

我完全知道有一个Patreon机器人,但据我所知,这只在服务器上有效。

假设有人邀请我的机器人,并尝试一个要求他们成为赞助人的命令。我用python编写的机器人如何检查他们是否已经成为我产品的赞助人?然后为他们设定相应的角色。然后我可以检查是否允许他们访问该命令。

因此,从本质上讲,它应该做Patreon机器人所做的事情,但它会自己工作。例如Dank Memer机器人:它可以被邀请到任何服务器,如果有人成为赞助人,可以使用特定的命令,否则你就不能

我已经研究了这个话题一段时间了,但没有找到任何关于如何检查用户是否已成为赞助人的信息。

非常感谢!

如果你知道补丁。只要给他们一个角色或任何名字!在赋予他们这个角色之后。复制角色id并将其粘贴到patreons_role_id

好的,这个命令的作用是,只检查成员角色中的[patreons]角色!如果[patreons]角色存在!它将执行CCD_ 2,否则它将发送自定义消息!

@client.event()
async def on_message(message):
if message.content == '!test':
is_patreon = False
for user_roles in message.author.roles:
if user_roles.id == patreons_role_id:
is_patreon = True
break
if is_patreon == True:#your code
else: await message.channel.send('THIS COMMAND IS ONLY AVAILABLE FOR PATREON!')

让我们假设您的patreon有一个角色。

@client.command()
@commands.has_roles("PatreonRole")
async def commandname(ctx, args):
#do stuff

有一条出路,但可能不是正确的,所以,如果你知道你的patreon是谁,也知道他们的不和谐ID,你可以在类似于以下的命令中声明If语句-

@client.command()
async def your_command_name():
if member.id == #Your 1st Patreon's Discord ID:
#Your Code 
elif member.id == #Your 2nd Patreon's Discord ID:
#Your code
else:
await ctx.send("You cannot use that command as you are not a patreon!")

但同样,如果你有很多patreon或你不知道他们的Discord ID,这可能不是正确的方法,但无论如何,这是我唯一能想到的方法。我希望这能有所帮助

最新更新