selfbot-legacy/bot/selfbot.py

61 lines
2 KiB
Python
Raw Normal View History

2025-05-07 16:44:50 +02:00
import discord
2025-05-09 21:43:55 +02:00
import asyncio
import logging
import os
2025-05-07 16:44:50 +02:00
from bot.handlers.message_handler import MessageHandler
2025-05-09 21:43:55 +02:00
from bot.cogs.cog_manager import CogManager
from config import TOKEN
2025-05-07 16:44:50 +02:00
2025-05-09 21:43:55 +02:00
class SelfBot(discord.Client):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Basic initialization
2025-05-07 16:44:50 +02:00
self.horsin = []
2025-05-09 21:43:55 +02:00
self.tracked_channels = []
self.loaded_commands = {}
2025-05-07 16:44:50 +02:00
# Initialize handlers
self.message_handler = MessageHandler(self)
2025-05-09 21:43:55 +02:00
# Initialize cog manager
self.cog_manager = CogManager(self)
2025-05-07 16:44:50 +02:00
async def on_ready(self):
2025-05-09 21:43:55 +02:00
"""Called when the bot is ready and connected"""
print(f'Logged in as {self.user.name}#{self.user.discriminator}')
# Load all cogs
num_cogs = self.cog_manager.load_all_cogs()
print(f"Loaded {num_cogs} cogs")
# Register event listeners from cogs
self.register_cog_events()
def register_cog_events(self):
"""Register event handlers from cogs"""
for cog_name, cog in self.cog_manager.cogs.items():
for name, method in inspect.getmembers(cog, inspect.ismethod):
if name.startswith('on_'):
self.add_listener(method, name=name)
2025-05-07 16:44:50 +02:00
async def on_message(self, message):
2025-05-09 21:43:55 +02:00
"""Called when a message is sent"""
2025-05-07 16:44:50 +02:00
await self.message_handler.handle_message(message)
async def on_message_delete(self, message):
2025-05-09 21:43:55 +02:00
"""Called when a message is deleted"""
# This will be handled by TrackingCog now
pass
2025-05-07 16:44:50 +02:00
async def on_message_edit(self, before, after):
2025-05-09 21:43:55 +02:00
"""Called when a message is edited"""
# This will be handled by TrackingCog now
pass
2025-05-07 16:44:50 +02:00
def reload_commands(self):
2025-05-09 21:43:55 +02:00
"""Reload user-defined commands and cogs"""
self.loaded_commands = {}
self.cog_manager.unload_all_cogs()
num_cogs = self.cog_manager.load_all_cogs()
print(f"Reloaded {num_cogs} cogs")