50 lines
1.8 KiB
Python
50 lines
1.8 KiB
Python
import discord
|
|
from utils.storage import load_commands, load_tracked_channels
|
|
from bot.handlers.message_handler import MessageHandler
|
|
from bot.handlers.tracking_handler import TrackingHandler
|
|
from bot.handlers.presence_handler import PresenceHandler
|
|
|
|
class Selfbot(discord.Client):
|
|
def __init__(self):
|
|
super().__init__()
|
|
# State variables
|
|
self.default_status = None
|
|
self.loaded_commands = load_commands()
|
|
self.tracked_channels = load_tracked_channels()
|
|
self.last_status = {}
|
|
self.AFK_STATUS = False
|
|
self.AFK_NOTIFIED_USERS = []
|
|
self.horsin = []
|
|
|
|
# Initialize handlers
|
|
self.message_handler = MessageHandler(self)
|
|
self.tracking_handler = TrackingHandler(self)
|
|
self.presence_handler = PresenceHandler(self)
|
|
|
|
# Add to SelfBot.__init__
|
|
from bot.cogs.cog_manager import CogManager
|
|
|
|
# In the __init__ method:
|
|
self.cog_manager = CogManager(self)
|
|
self.cog_manager.load_all_cogs()
|
|
|
|
async def on_ready(self):
|
|
print(f"Logged in as {self.user}")
|
|
|
|
async def on_message(self, message):
|
|
# Don't use muted_channels anymore since we're using Discord's native functionality
|
|
# Instead, just process all messages
|
|
await self.message_handler.handle_message(message)
|
|
|
|
async def on_message_delete(self, message):
|
|
await self.tracking_handler.handle_message_delete(message)
|
|
|
|
async def on_message_edit(self, before, after):
|
|
await self.tracking_handler.handle_message_edit(before, after)
|
|
|
|
async def on_presence_update(self, before, after):
|
|
await self.presence_handler.handle_presence_update(before, after)
|
|
|
|
def reload_commands(self):
|
|
"""Reload user-defined commands"""
|
|
self.loaded_commands = load_commands() |