【发布时间】:2021-11-01 00:22:37
【问题描述】:
我最近一直在研究一个不和谐的机器人,并遇到了一个问题,我希望只有我和另一个用户能够使用命令,但我就是不知道怎么做,我读了关于例外和列表,但我似乎无法理解如何使用它们,我基本上是在学习的过程中,有些东西比其他东西更容易。
我知道我将不得不添加和删除我只是不知道什么、在哪里以及如何的东西。
好吧,老实说,我试着做个疯子,结果复制了第一个返回并将其粘贴到自身下方。我知道那可能行不通。我还尝试在第一个 id 后面加一个逗号,然后放第二个 id。
def is_me():
def predicate(ctx):
return ctx.message.author.id == 413956481197670401
return commands.check(predicate)
@client.command()
@is_me()
async def Secret(ctx):
await ctx.send(f'{ctx.author.mention} Only you!')
@Secret.error
async def Secret_error(ctx, error):
if isinstance(error, commands.CheckFailure):
await ctx.send('Nothing here buckaroo.')
好吧,我的最终目标是拥有它,这样每当我们中的一个人触发命令时,它就会吐出我设置的内容,而当其他人使用它时,它就会吐出错误。
但是,每当我尝试使用逗号尝试时,它只允许任何人使用该命令。没有错误消息。
我很抱歉这个文字墙。
【问题讨论】:
-
你问
ctx.author.id in (id1, id2)怎么表达? (注意 id 周围的括号) -
@PatrickHaugh 嗯,是的,这很可能就是我想要的,但我已经自学了如何做到这一点,我似乎无法理解它。跨度>
-
我认为this answer 涵盖了您正在尝试做的事情。
-
@PatrickHaugh 是的,我只需要更新其中的一些以匹配当前的 discord.py。非常感谢您的帮助。
标签: python discord discord.py discord.py-rewrite