python - python中的Discord bot,检查命令是否为空
问题描述
我有一个简单的问题,我想向机器人添加一个命令,如果用户使用该命令回复消息,机器人会获取该消息以及用户回复的消息的作者并将其保存到数据库中,这个很容易完成。现在我还想向这个函数添加一个条件,如果用户使用相同的命令而不回复,而是编写消息并标记另一个用户,它将消息和标记的用户存储在一个变量中以用于数据库。如果用户在没有任何消息且仅标记用户的情况下使用该命令,则它会告诉用户他们需要添加消息,或者相反,他们需要标记用户。
@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")
这是我到目前为止的想法,但它似乎不起作用,因为在测试时查看会发生什么,即使我使用相同的方法为其他命令标记用户,消息总是返回 none,并且成员只返回对象。我在文档中遗漏了什么吗?
解决方案
你的问题有点不清楚。但我会在阅读时尝试回答。
我认为该模块不能很好地与您定义参数的方式配合使用。应该是commandme(ctx, member=None, *message)
。因为您希望将message
其收集在一个元组中。
的调用者commandme
必须像这样传递参数ctx, Member, message=Message
。那就是将“消息”参数作为关键字传递并且只有 1 个对象,而该member
参数将收集元组中的所有内容。
推荐阅读
- listview - 在具有安全性的新式页面上将 SharePoint Online 列表视图显示为选项卡
- powershell - 每个对象内的每个对象
- flutter - 我应该使用 // 还是 /// 在 Dart 中进行评论?它会使应用程序变慢吗?
- bixby - capsule.properties 应该如何在 prod 和 dev 之间切换?
- pandas - Pandas - 如何为数据文件中未标记的列分配标签
- python - keras中的输入形状错误
- azure - ARM 模板 - 如何获取 API 架构资源的资源 ID?
- xamarin.android - 用相机拍照时出现问题
- javascript - Vue组件上的奇怪事件传播
- python - 字符串中的语法无效?