2222from tux .database .client import db
2323from tux .utils .banner import create_banner
2424from tux .utils .config import Config
25+ from tux .utils .emoji import EmojiManager
2526from tux .utils .env import is_dev_mode
2627from tux .utils .sentry import start_span , start_transaction
2728
@@ -84,6 +85,9 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
8485 # Store for tracking Sentry transactions by command/interaction ID
8586 self .active_sentry_transactions : dict [int , Any ] = {}
8687
88+ # Emoji manager
89+ self .emoji_manager = EmojiManager (self )
90+
8791 # Create console for rich output
8892 self .console = Console (stderr = True , force_terminal = True )
8993
@@ -246,8 +250,9 @@ async def on_ready(self) -> None:
246250 Performs initialization tasks when the bot connects to Discord:
247251 1. Records start time if not set
248252 2. Ensures setup is complete
249- 3. Starts hot reloading for cogs (loaded as separate cog)
250- 4. Logs startup banner
253+ 3. Initializes emoji manager
254+ 4. Starts hot reloading for cogs (loaded as separate cog)
255+ 5. Logs startup banner
251256
252257 Notes
253258 -----
@@ -264,6 +269,17 @@ async def on_ready(self) -> None:
264269 await self ._wait_for_setup ()
265270 transaction .set_tag ("setup_complete" , self .setup_complete )
266271
272+ # Initialize emoji manager after bot is connected to Discord
273+ with start_span ("bot.init_emoji_manager" , "Initializing emoji manager" ) as span :
274+ try :
275+ await self .emoji_manager .init ()
276+ logger .info ("Emoji manager initialized" )
277+ span .set_tag ("emoji_manager.initialized" , True )
278+ except Exception as e :
279+ logger .warning (f"Failed to initialize emoji manager: { e } " )
280+ span .set_tag ("emoji_manager.initialized" , False )
281+ span .set_data ("error" , str (e ))
282+
267283 # Start hot reloading - import at function level to avoid circular imports
268284 with start_span ("bot.load_hot_reload" , "Setting up hot reload" ) as span :
269285 try :
0 commit comments