Почему я получаю сообщение об ошибке «Команда уже является существующей командой или псевдонимом», когда этого не должно быть?

#python #discord #discord.py

#python #Discord #discord.py

Вопрос:

Я просто пробую создавать ботов Discord, и я попытался поместить эту команду в категорию, однако эта ошибка появляется независимо от того, как я называю команду. Вот мой код:

 import discord,random
from discord.ext import commands 

bot = commands.Bot(command_prefix=';')

@bot.event
async def on_ready():
    print("bot is ready for stuff")
    await bot.change_presence(activity=discord.Game(name=";help"))

class general_stuff(commands.Cog):
    """Stuff that's not important to the bot per say"""

    @bot.command()
    async def lkibashfjiabfiapbfaipb(self, message):
        await message.send("test received.")

bot.add_cog(general_stuff())
bot.run("TOKEN")
 

и это ошибка, которую я получаю обратно:

 The command lkibashfjiabfiapbfaipb is already an existing command or alias.
 

Независимо от того, сколько я меняю команду, она продолжает выдавать ту же ошибку.

Ответ №1:

Вы на правильном пути. Причина, по которой вы получаете ошибку, заключается в том, что при запуске программы она считывается сверху и работает вниз;

 class general_stuff(commands.Cog):
    """Stuff that's not important to the bot per se"""

    @bot.command() # Command is already registered here
    async def lkibashfjiabfiapbf(self, message):
        await message.send("test received.")

bot.add_cog(general_stuff()) 
# It tries to load the class general_stuff, but gets the error because
# it's trying to load the same command as it loaded before
 

@bot.command добавляет метод к боту и загружает его. Вы работаете с Cogs @commands.command() . Он только преобразует метод в команду, но не загружает его.

Ваш код должен выглядеть так

 ...
class general_stuff(commands.Cog):
    """Stuff that's not important to the bot per se"""

    @commands.command()
    async def lkibashfjiabfiapbf(self, message):
        await message.send("test received.")
...
 

Ссылки: