繁体   English   中英

python 中的 Discord bot,检查命令是否为空

[英]Discord bot in python, check if command is empty

我有一个简单的问题,我想向机器人添加一个命令,如果用户使用该命令回复消息,机器人会获取该消息以及用户回复的消息的作者并将其保存到数据库中,这个很容易完成。 现在我还想在这个 function 中添加一个条件,如果用户使用相同的命令而不回复,而是编写消息并标记另一个用户,它将消息和标记的用户存储在一个变量中以用于数据库。 如果用户在没有任何消息且仅标记用户的情况下使用该命令,则它会告诉用户他们需要添加消息,或者相反,他们需要标记用户。

@bot.command()
async def commandme(ctx,*member=None,message=None):
   if message: 
        if member: 
             #here I execute the command using message and member
   else
     await ctx.send("Please either reply using the command or write a message while tagging a user using teh command")

这是我到目前为止的想法,但它似乎不起作用,因为在测试时查看会发生什么,消息总是不返回,并且成员只返回 object,即使我使用相同的方法为其他命令标记用户。 我在文档中遗漏了什么吗?

你的问题有点不清楚。 但我会在阅读时尝试回答。

我认为该模块不能很好地与您定义 arguments 的方式配合使用。 它应该是commandme(ctx, member=None, *message) 因为您希望将message收集在一个元组中。

commandme的调用者必须像这个ctx, Member, message=Message一样传递 arguments 。 那就是将“消息”参数作为关键字传递,并且只有 1 个 object,而member参数会将所有内容收集在一个元组中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM