#python #command #discord #discord.py #discord.py-rewrite
#python #команда #Discord #discord.py
Вопрос:
Я пытаюсь создать команду справки, которая отправляет текущие серверные префиксы для бота во внедрении. У меня возникли некоторые проблемы, пытаясь понять, как это закодировать, и я хотел бы получить некоторую помощь. Я пытался делать:
@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
Я не уверен, что я делаю не так, любая помощь будет оценена. (:
Комментарии:
1. Вам нужно определить
command_prefix
, что делатьprefix = command_prefix
.2. Как это,
async def help(ctx, command_prefix):
?3. Нет, это не то, что вам нужно, вам нужно автоматически сохранять и отправлять эти префиксы в файл.
4. Итак, я мог бы использовать данные json для их отображения?
5. Да, если вы создаете этого бота для нескольких гильдий, или если вы хотите распечатать префикс, или если вы хотите изменить префикс с помощью команды, вам нужно сохранить его.
Ответ №1:
Если кого-то все еще интересует этот вопрос, вы можете сделать:
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)
Ответ №2:
Вы должны создать префиксную переменную, которую затем можно отобразить в команде справки и изменить позже:
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)