mirror of
https://github.com/nexy7574/LCC-bot.git
synced 2024-09-19 18:16:34 +01:00
64 lines
1.9 KiB
Python
64 lines
1.9 KiB
Python
import discord
|
|
import config
|
|
from asyncio import Lock
|
|
from discord.ext import commands
|
|
from datetime import datetime, timezone
|
|
|
|
|
|
__all__ = ("Bot", 'bot')
|
|
|
|
|
|
# noinspection PyAbstractClass
|
|
class Bot(commands.Bot):
|
|
def __init__(self, intents: discord.Intents, guilds: list[int], extensions: list[str]):
|
|
from .db import JimmyBans, registry
|
|
from .console import console
|
|
super().__init__(
|
|
command_prefix=self.get_prefix,
|
|
debug_guilds=guilds,
|
|
allowed_mentions=discord.AllowedMentions.none(),
|
|
intents=intents,
|
|
)
|
|
self.loop.run_until_complete(registry.create_all())
|
|
self.training_lock = Lock()
|
|
self.started_at = datetime.now(tz=timezone.utc)
|
|
self.bans = JimmyBans()
|
|
self.console = console
|
|
for ext in extensions:
|
|
try:
|
|
self.load_extension(ext)
|
|
except discord.ExtensionFailed as e:
|
|
console.log(f"[red]Failed to load extension {ext}: {e}")
|
|
if getattr(config, "dev", False):
|
|
console.print_exception()
|
|
else:
|
|
console.log(f"Loaded extension [green]{ext}")
|
|
|
|
if getattr(config, "CONNECT_MODE", None) == 2:
|
|
async def connect(self, *, reconnect: bool = True) -> None:
|
|
self.console.log("Exit target 2 reached, shutting down (not connecting to discord).")
|
|
return
|
|
|
|
|
|
try:
|
|
from config import intents as _intents
|
|
except ImportError:
|
|
_intents = discord.Intents.all()
|
|
|
|
try:
|
|
from config import extensions as _extensions
|
|
except ImportError:
|
|
_extensions = [
|
|
"jishaku",
|
|
"cogs.verify",
|
|
"cogs.mod",
|
|
"cogs.events",
|
|
"cogs.assignments",
|
|
"cogs.timetable",
|
|
"cogs.other",
|
|
"cogs.starboard",
|
|
"cogs.uptime",
|
|
]
|
|
|
|
|
|
bot = Bot(_intents, config.guilds, _extensions)
|