如何在 discord.py 库中设置多个前缀或使前缀不区分大小写?

Posted

技术标签:

【中文标题】如何在 discord.py 库中设置多个前缀或使前缀不区分大小写?【英文标题】:How to set multiple prefixes or make prefix case insensitive in discord.py library? 【发布时间】:2019-11-30 20:42:49 【问题描述】:

我正在使用 discord.py 库在 python 中创建一个不和谐机器人。 我的问题是我不能不区分前缀大小写。 有什么办法让它不区分大小写或有多个前缀?

我尝试将前缀设置为“”并将前缀添加到命令中 但这将使机器人处理每条消息! 有什么办法吗?

【问题讨论】:

【参考方案1】:

是的,我实际上通过篡改代码找到了一种方法

bot = commands.Bot(command_prefix=["hi ","Hi "])

列出你想使用的前缀

【讨论】:

【参考方案2】:

Patrick Haugh 的答案很可能是您想要的,但我个人会使用一种方法,您可能会使用该方法为多个公会设置自定义前缀。

with open('prefix.json', 'r') as f:
    prefixList = json.load(f)

async def getPrefix(bot, message):
    return prefixList.get(str(message.guild.id), "Enter a default prefix here")

如果您在同一目录中为前缀创建 JSON 数据库并将其与公会 ID 作为每个前缀的键一起存储,则此代码应该可以工作。

然后,您可以在为机器人定义前缀时调用此函数。 编码愉快!

【讨论】:

【参考方案3】:

您可以传递一个可迭代的字符串以具有多个前缀,或者传递一个采用BotMessage 的函数:

bot = Bot(('ab', 'Ab', aB', 'AB'))

def check(bot, message):
    return message.content[:2].lower() == 'ab'

bot = Bot(check)

详情请见the documentation

【讨论】:

以上是关于如何在 discord.py 库中设置多个前缀或使前缀不区分大小写?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 discord.py 中进行更改前缀命令?

discord.py,同时使用斜杠命令和前缀

在 discord.py 中显示设置前缀的命令(重写)

Discord.py - 使用命令更改前缀

discord.py:MySQL '光标未连接'

如何使用 lxml 在属性值中设置命名空间前缀?