Add switchable bot modes: default, chatty, and roast
Adds a server-wide mode system with /bcs-mode command. - Default: current hall-monitor behavior unchanged - Chatty: friendly chat participant with proactive replies (~10% chance) - Roast: savage roast mode with proactive replies - Chatty/roast use relaxed moderation thresholds - 5-message cooldown between proactive replies per channel - Bot status updates to reflect active mode - /bcs-status shows current mode and effective thresholds Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
9
bot.py
9
bot.py
@@ -78,6 +78,10 @@ class BCSBot(commands.Bot):
|
||||
llm_heavy_model = os.getenv("LLM_ESCALATION_MODEL", llm_model)
|
||||
self.llm_heavy = LLMClient(llm_base_url, llm_heavy_model, llm_api_key, db=self.db)
|
||||
|
||||
# Active mode (server-wide)
|
||||
modes_config = config.get("modes", {})
|
||||
self.current_mode = modes_config.get("default_mode", "default")
|
||||
|
||||
# Drama tracker
|
||||
sentiment = config.get("sentiment", {})
|
||||
timeouts = config.get("timeouts", {})
|
||||
@@ -87,6 +91,11 @@ class BCSBot(commands.Bot):
|
||||
offense_reset_minutes=timeouts.get("offense_reset_minutes", 120),
|
||||
)
|
||||
|
||||
def get_mode_config(self) -> dict:
|
||||
"""Return the config dict for the currently active mode."""
|
||||
modes = self.config.get("modes", {})
|
||||
return modes.get(self.current_mode, modes.get("default", {}))
|
||||
|
||||
async def setup_hook(self):
|
||||
# Initialize database and hydrate DramaTracker
|
||||
db_ok = await self.db.init()
|
||||
|
||||
Reference in New Issue
Block a user