在 py 中为不和谐机器人编写时如何区分 message.content.startswith('$del') 和 message.content.startswith('$delall') ?

问题描述 投票:0回答:1

最近我倾向于创建不和谐机器人。但遇到了这个。我之间有何不同

if message.content.startswith('$del'):
    if 'jokes' in db.keys():
      index = int(message.content.split('$del ', 1)[1])
      msg = delete_joke(index)
      if msg == "No jokes to delete":
        await message.channel.send(msg)
      else:
        await message.channel.send('deleted successfully')
    else:
      await message.channel.send('No jokes in the database')

 if message.content.startswith('$delall'):
    await message.channel.send(del_all())

由于 message.startswith("") 仅检查起始字符,因此即使我给出 '$dellall' 作为命令,它也总是调用 '$del'。

我想到的一种方法是在我可能使用的所有“$del”末尾写“

if message.content.startswith('$del'):
”,但它仍然会调用“$del”。随着代码和命令的增加,这不会成为问题吗?如果还有其他更好的方法请告诉我。

python discord discord.py bots
1个回答
0
投票

您可以像在第一个 if 语句中那样首先拆分 message.content 来获取索引,但这次您获得拆分消息的第一项:

msg = message.content.split()
if msg[0] == "$del":
  #rest of the code
elif msg[0] == "$delall":
  #rest of the code
© www.soinside.com 2019 - 2024. All rights reserved.