Discord Bot (Python) 输入问题

时间:2021-04-27 01:21:25

标签: python discord.py

我为学校的事情写了一个机器人,我希望拥有 Discord 的人能够将内容添加到我存储在 JSON 中的常见问题列表中。

目前我是这样的:

@bot.command(aliases = ['faqadd'])
async def addfaq(ctx, question = None, *, answer = None):

然而,问题在于当一个人添加它时:

.faqadd This is a question? This is an answer.

机器人只会对问题使用“This”和“is a question?This is an answer”。将是答案。 有没有一种简单的方法来简单地接收两组字符串,或者我应该用问号把它分开?

2 个答案:

答案 0 :(得分:1)

discord.ext.command 界面设置为您有两个选项。一种是使用位置参数并要求用户在参数周围加上引号。

@bot.command(aliases = ['faqadd'])
async def addfaq(ctx, question = None, answer = None):

然后用户输入

.faqadd "This is a question?" "This is an answer."

正如您已经注意到的,另一种方法是采用单个关键字参数并自己进行解析。

@bot.command(aliases = ['faqadd'])
async def addfaq(ctx, *, arg = None):

答案 1 :(得分:1)

discord.py 从内容中清除命令和前缀并解析参数后,将您的消息内容从空间中分离出来。因此,如果您键入 .faqadd This is a question? This is an answer,则参数将为 Thisis a question? This is an answer。如果你想防止这种情况,你可以使用引号,问题就解决了:.faqadd "This is a question?" "This is an answer."

祝你有美好的一天。