是否可以在 discord.py 中为不同的前缀使用不同的命令?

Posted

技术标签:

【中文标题】是否可以在 discord.py 中为不同的前缀使用不同的命令?【英文标题】:is it possible to have different commands for different prefixes in discord.py? 【发布时间】:2022-01-22 20:44:04 【问题描述】:

每个前缀可以有不同的命令吗?例如,一个命令用于!,另一个命令用于? 例如,某人执行!foo 机器人响应"foo",但另一个人执行?foo 机器人响应"bar"

【问题讨论】:

【参考方案1】:

您可以制作一个带有两个前缀的机器人并创建一个foo 命令。然后检查使用 ctx.prefix 调用命令时使用的前缀。

from discord.ext import commands

bot = commands.Bot(command_prefix=("!", "?"))


@bot.command()
async def foo(ctx):
    await ctx.send("foo" if ctx.prefix == "!" else "bar")

bot.run("TOKEN")

或者您可以使用on_message 事件手动完成:

@bot.event
async def on_message(message):
    if message.content.lower() == "!foo":
        await message.channel.send("foo")
    elif message.content.lower() == "?foo":
        await message.channel.send("bar")
    await bot.process_commands(message)

【讨论】:

以上是关于是否可以在 discord.py 中为不同的前缀使用不同的命令?的主要内容,如果未能解决你的问题,请参考以下文章

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

自定义前缀 Discord.py

(discord.py) 如何使我的 setprefix 命令正常工作?

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

如果消息以前缀 + 使用 discord.js 的命令开头,如何使 if 语句起作用

如何使用 Discord.py Cogs 使 Discord Bot 加入语音频道并在成员加入频道时播放音频文件