From 0f39ccd3c4576b08ad696b68015ee0403b10c6a9 Mon Sep 17 00:00:00 2001 From: koko210Serve Date: Fri, 24 Apr 2026 13:39:39 +0300 Subject: [PATCH] feat: set initial Discord presence on startup and on mood detection - In on_ready(), set presence based on current mood (evil or normal) after all state is restored - When LLM-detected mood shift is applied, update presence immediately --- bot/bot.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/bot/bot.py b/bot/bot.py index 341a77e..53f99d4 100644 --- a/bot/bot.py +++ b/bot/bot.py @@ -136,6 +136,16 @@ async def on_ready(): # Save current avatar as fallback await profile_picture_manager.save_current_avatar_as_fallback() + # Set initial Discord presence based on current mood + try: + from utils.activities import update_bot_presence + if globals.EVIL_MODE: + await update_bot_presence(globals.EVIL_DM_MOOD, is_evil=True) + else: + await update_bot_presence(globals.DM_MOOD, is_evil=False) + except Exception as e: + logger.error(f"Failed to set initial presence: {e}") + # Start server-specific schedulers (includes DM mood rotation) server_manager.start_all_schedulers(globals.client) @@ -376,6 +386,13 @@ async def on_message(message): from utils.moods import update_server_nickname globals.client.loop.create_task(update_server_nickname(message.guild.id)) + # Update Discord presence to match new mood + try: + from utils.activities import update_bot_presence + await update_bot_presence(detected, is_evil=False) + except Exception as e: + logger.error(f"Failed to update presence after mood detection: {e}") + logger.info(f"🔄 Server mood auto-updated to: {detected}") if detected == "asleep":