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:
17
bot/bot.py
17
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":
|
||||
|
||||
Reference in New Issue
Block a user