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

Posted

技术标签:

【中文标题】在 discord.py 中显示设置前缀的命令(重写)【英文标题】:Command to show set prefix in discord.py (rewrite) 【发布时间】:2021-02-03 18:20:32 【问题描述】:

我正在尝试制作一个帮助命令,该命令将机器人的当前服务器前缀发送到嵌入中。我在试图弄清楚如何编写代码时遇到了一些麻烦,我希望得到一些帮助。我试过这样做:

@bot.command()
async def help(ctx):
    embed = discord.Embed(
        title='Help', description='', colour=discord.Colour.blue())
    embed.set_footer(text='Have fun!')

    prefix = command_prefix

    embed.add_field(
        name='Prefix',
        value=
        f'The current prefix for this server is prefix',
        inline=True)

    await ctx.send(embed=embed)

但是,当我这样做时,我得到了错误:

raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: NameError: name 'command_prefix' is not defined

我不确定我做错了什么,任何帮助将不胜感激。 (:

【问题讨论】:

你需要定义command_prefix来做prefix = command_prefix 这样,async def help(ctx, command_prefix):? 不,这不是您需要的,您需要将这些前缀自动保存并发送到一个文件中。 那我可以用json数据来显示吗? 是的,如果你为多个公会做这个机器人,或者你想打印出前缀,或者你想用命令更改前缀,你需要保存它。 【参考方案1】:

您应该创建一个前缀变量,然后您可以在帮助命令中显示并稍后更改:

prefix="!!"
bot = commands.Bot(command_prefix=prefix)

@bot.command()
async def help(ctx):
    embed = discord.Embed(
        title='Help', description='', colour=discord.Colour.blue())
    embed.set_footer(text='Have fun!')

    embed.add_field(
        name='Prefix',
        value=
        f'The current prefix for this server is prefix',
        inline=True)

    await ctx.send(embed=embed)

【讨论】:

【参考方案2】:

如果有人仍然对这个问题感兴趣,你可以这样做:

client.commmand_prefix #if u use bot, just use bot.command_prefix

在这种情况下是:

@bot.command()
async def help(ctx):
    embed = discord.Embed(
        title='Help', description='', colour=discord.Colour.blue())
    embed.set_footer(text='Have fun!')

    prefix = command_prefix

    embed.add_field(
        name='Prefix',
        value=
        f'The current prefix for this server is bot.command_prefix',
        inline=True)

    await ctx.send(embed=embed)

【讨论】:

以上是关于在 discord.py 中显示设置前缀的命令(重写)的主要内容,如果未能解决你的问题,请参考以下文章

自定义前缀 Discord.py

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

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

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

discord.py前缀命令[关闭]

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