python - Discord.py 机器人可以不区分大小写吗?

标签 python discord.py

我现在正在制作一个不和谐的机器人,如果我使用大写/不使用大写,它不会响应。有没有办法让机器人检测消息,即使它们是大写/小写?还有一种方法可以让机器人对空格做同样的事情(如果我不小心忘记放空格,或者不小心将两个单词合并在一起......)?

或者我是否必须无休止地跟踪 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/

相关文章:

python - Discord 机器人踢命令

python - Discord.py 使用 `with sqlite3.connection` 是一个坏主意吗?

python - 如何通过discord.py获取用户在使用Discord时玩过的所有游戏

python - Matplotlib - 如何为具有对数刻度的线图设置颜色条

python - 列表的产品

python - Discord.py 不允许通过 `` ` 的代码块

python - 从文本文件读取正则表达式时如何防止 Python 转义特殊字符?

python - 如何在 groupby 2 列之后保留 DataFrame 的原始索引?

python - for 循环以提取 pandas 中数据帧的 header