Files
Lacie/utils/constants.py
Lilac-Rose 971ec5c849 feat: mod logging overhaul, bug fixes, minesweeper fix, emote credits pending view
Moderation & logging:
- cleanban now collects all messages before banning and attaches them as a
  .txt audit log file via the member_ban log channel
- purgememberall restricted to server owner only (nuke protection)
- unban, lock, unlock, spam ban-button, and manual infraction deletes all
  now write to the DB infractions table and post to the mod log
- new log types (channel_lock, infraction_modify, cleanban) added and seeded
  to route to the main mod log channel (982644273960873994)

Bug fixes:
- unban: mod log no longer fires on failure (missing return added)
- mute: fixed DB connection leaks and silent unmute failures in
  schedule_unmute and check_mutes (try/finally + proper error logging)
- suggest: fixed AttributeError crash when original_embed is None and
  IndexError risk on set_field_at calls without field count guards
- ban/cleanban: removed isinstance(user, discord.User) guard that silently
  prevented DMs from ever being sent to in-server members
- cleanban: wrapped collect_status.delete() in try/except
- commands/infractions: fixed DB connection leak with try/finally
- events/botban: silent ban failure now logs error instead of swallowing it

Minesweeper:
- track detonated_cell on mine hit; show 💥 on the clicked mine and 💣
  on all others when the board is revealed on loss

Emote credits:
- new /emote_credits_pending command: shows the user their own unreviewed
  submissions; admins can pass all:True to see the full pending queue

Code quality:
- comprehensive docstrings and inline comments added across all cogs,
  events, commands, utils, and supporting modules
2026-06-16 15:01:11 +02:00

35 lines
1.7 KiB
Python

"""
constants.py — Centralised Discord IDs and threshold values for the bot.
All hardcoded IDs (users, guild, channels, roles, emojis) live here so they
can be updated in one place without hunting through individual cog files.
"""
# --- Owner / Admin ---
LILAC_ID = 252130669919076352 # Bot owner; bypasses all permission checks
# --- Guild ---
GUILD_ID = 876772600704020530 # Primary server the bot operates in
# --- Channels ---
WELCOME_CHANNEL_ID = 876772600704020533 # Where welcome messages are posted
FALLBACK_CHANNEL_ID = 876772600704020533 # Fallback channel when a specific channel is unavailable
LOG_CHANNEL_ID = 1440055015711703242 # Default channel for mod/system log messages
ADMIN_CHANNEL_ID = 1470441786810826884 # Staff-only admin channel
APPROVAL_CHANNEL_ID = 1424145004976275617 # Where pending approval embeds (infractions, credits) are sent
BACKUP_CHANNEL_ID = 946421558778417172 # Backup/archive channel
NOTIFICATION_CHANNEL_ID = 1424145004976275617 # General notification channel (same as approval)
COMMIT_CHANNEL_IDS = [876777562599194644, 1437941632849940563, 1470441786810826884] # Git webhook targets
# --- Roles ---
BIRTHDAY_ROLE_ID = 1113751318918602762 # Temporary role assigned on a member's birthday
BOT_TRAP_ROLE_ID = 1439354601672282335 # Role given to suspected bots; blocks welcome message
SERVER_ADMIN_ROLE_ID = 952560403970416722 # General staff/admin role
BOT_DEV_ROLE_ID = 1470439484549234866 # Bot developer role with elevated permissions
# --- Emojis ---
SALT_EMOJI_ID = 1074583707459010560 # Custom :salt: emoji used in reactions
# --- Thresholds ---
NEW_MEMBER_THRESHOLD_DAYS = 7 # Members newer than this many days are considered "new"