Ошибка, которую вы видите, связана с тем, что асинхронная функция bot.load_extension не была вызвана с использованием ключевого слова await. Это приводит к тому, что расширение не загружается должным образом, и, следовательно, ког tickets не существует, когда вы пытаетесь к нему обратиться в обработчике события on_ready.
Вот как вы можете исправить эту проблему:
Убедитесь, что вы используете await при вызове bot.load_extension.
Убедитесь, что ваш код выполняется в асинхронной функции.
Вот пример того, как это может выглядеть в вашем load_cogs.py
import os
import discord
from discord.ext import commands
async def load_cogs(bot):
for filename in os.listdir("./cogs"):
if filename.endswith(".py"):
print(f">> {filename}")
await bot.load_extension(f"cogs.{filename[:-3]}")
print("======= Cogs loaded! =======")
# Пример использования в основном файле bot.py
intents = discord.Intents.default()
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print(f"[2024-06-29 15:08:56] [INFO ] discord.client: logging in using static token")
await load_cogs(bot)
# Теперь вы можете безопасно обращаться к когам
if 'tickets' in bot.cogs:
await bot.cogs['tickets'].init_func()
bot.run('YOUR_BOT_TOKEN')
В этом примере функция load_cogs теперь асинхронная и использует await для загрузки расширений. Также я добавил вызов load_cogs в обработчик события on_ready, чтобы убедиться, что коги загружаются после того, как бот полностью готов.
Убедитесь, что ваш файл bot.py выглядит примерно так, чтобы все работало корректно.
Но в консоли это:
======= Loading cogs =======
C:\Users\Empty\OneDrive\Desktop\discord-TicketBot-main\utils\load_cogs.py:13: RuntimeWarning: coroutine 'BotBase.load_extension' was never awaited
bot.load_extension(f"cogs.{filename[:-3]}")
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
>> other.py
>> tickets.py
======= Cogs loaded! =======
[2024-06-29 15:08:56] [INFO ] discord.client: logging in using static token
[2024-06-29 15:08:58] [INFO ] discord.gateway: Shard ID None has connected to Gateway (Session ID: 87cd6245f3de99bec3b68671f0f24bd5).
[2024-06-29 15:09:00] [ERROR ] discord.client: Ignoring exception in on_ready
Traceback (most recent call last):
File "C:\Users\Empty\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\discord\client.py", line 449, in _run_event
await coro(*args, **kwargs)
File "C:\Users\Empty\OneDrive\Desktop\discord-TicketBot-main\bot.py", line 21, in on_ready
await bot.cogs['tickets'].init_func()
~~~~~~~~^^^^^^^^^^^
KeyError: 'tickets'
Я не могу понять в чём проблема. Помогите пожалуйста.