selfbot-legacy/bot/selfbot.py
2025-05-09 21:53:48 +03:00

48 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)
async def on_ready(self):
print(f"Logged in as {self.user}")
async def on_message(self, message):
# Skip notifications for muted channels
if (message.channel.id in self.user_management_commands.muted_channels and
message.author != self.user):
# Still process the message, but don't trigger notifications
pass
# Regular message handling
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()