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
This commit is contained in:
2026-04-24 13:39:39 +03:00
parent 55c3c27f6f
commit 0f39ccd3c4

View File

@@ -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":