我现在正在制作一个不和谐的机器人,如果我使用大写/不使用大写,它不会响应。有没有办法让机器人检测消息,即使它们是大写/小写?还有一种方法可以让机器人对空格做同样的事情(如果我不小心忘记放空格,或者不小心将两个单词合并在一起......)?
或者我是否必须无休止地跟踪 if 语句?
最佳答案
下面是如何实现此目的的示例代码。
from discord.ext import commands
client = commands.Bot(command_prefix='!')
@client.event
async def on_ready():
print('client ready')
@client.command()
async def ping():
await client.say('Pong')
@client.event
async def on_message(message):
message.content = message.content.lower().replace(' ', '')
await client.process_commands(message)
client.run('TOKEN')
请注意 message.content
如何替换为 message.content.lower().replace(' ', '')
。由于ping
命令是小写的,这意味着当用户输入例如!PinG
时,该命令仍然会被执行。
不过,您应该小心删除空格,因为您将来可能创建的某些命令可以将参数作为输入,在这种情况下,在调用命令时需要空格来分隔参数。
关于python - Discord.py 机器人可以不区分大小写吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50359600/