#python #python-3.x #discord.py
Вопрос:
Я сделал команду справки, и когда я выполняю команду один раз, она работает, но после этого она перестает работать, что означает, что мне нужно повторно запустить весь код. (кстати, это винтик) Ошибка, которую я получаю, если выполняю команду более одного раза, заключается в Ignoring exception in command None: discord.ext.commands.errors.CommandNotFound: Command "help" is not found
import discord
from discord.ext import commands
class help(commands.Cog):
def __init__(self, client):
self.client = client
@commands.command()
async def help(self, ctx, cmd = "help"):
self.client.remove_command("help")
#help
if cmd == "help":
help_help_embed = discord.Embed(title = "Help Command", color = 0x00fd00)
help_help_embed.add_field(name = "**:scroll: Info**", value = "`//help info`", inline = True)
help_help_embed.add_field(name = "**:shield:Moderation**", value = "`//help moderation`", inline = True)
help_help_embed.add_field(name = "**Channel**", value = "`//help channel`", inline = True)
help_help_embed.add_field(name = "**:laughing: Fun**", value = "`//help fun`", inline = True)
help_help_embed.add_field(name = "**:tools: Utility**", value = "`//help utility`", inline = True)
help_help_embed.set_author(name = ctx.author, icon_url = ctx.author.avatar_url)
await ctx.send(embed = help_help_embed)
#info
if cmd == "info":
info_help_embed = discord.Embed(title = "**:scroll: Info Commands**", description = "//help {command}", color = 0x00fd00)
info_help_embed.add_field(name = "Commands:", value = "`help`, `changelog`, `announcements`, `ping`, `credits`", inline = False)
info_help_embed.set_author(name = ctx.author, icon_url = ctx.author.avatar_url)
await ctx.send(embed = info_help_embed)
def setup(client):
client.add_cog(help(client))
Ответ №1:
Хорошо… может быть, удалить
self.client.remove_command("help")
линия? Похоже, это может быть удаление команды.
РЕДАКТИРОВАТЬ: Основываясь на комментариях, похоже __init__
, что вместо этого он должен принадлежать.
Комментарии:
1. Это удаляет «стандартную» команду справки, чтобы вы могли создать свою собственную.
2. Но он находится внутри
help
обработчика, что означает, что приhelp
вызове он удаляется сам.3. В вашем редактировании это указано идеально, должно быть в
__init__
функции.4. я знаю, что я не хотел говорить вам спасибо, потому что я не предлагаю улучшения, но мне кажется неправильным не говорить так спасибо… Спасибо 🙂