7 Commits

Author SHA1 Message Date
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
Lilac-Rose
cdaf9430ef emote credits: add /emote_credits_resolve admin command
ping protect: use pronoun roles in disabled-ping replies
chore: remove stray =5.0 file, clean up constants

emote credits:
- Add /emote_credits_resolve — scans credits where artist starts with
  "@", fuzzes against guild members (username, global_name,
  display_name), rewrites matches as <@id> mentions; reports resolved
  vs not-found in chunked ephemeral output

ping protect:
- Add _get_subject_pronoun() — reads pronoun roles (he/him, she/her,
  it/its) to return the correct subject pronoun
- Add _get_verb() — returns "has" or "have" to match
- Reply now reads e.g. "She has pings disabled" instead of always
  "they have pings disabled"

chore:
- Delete =5.0 (stray file from unquoted pip install shell redirect)
- Remove unused ARG channel ID constants from utils/constants.py
2026-03-11 17:01:56 +01:00
Lilac-Rose
323c021f38 added prestige color system and comments in files 2026-03-07 16:54:11 +01:00
Lilac-Rose
0902727d1d ping protect and minesweeper stats 2026-02-25 15:44:07 +01:00
Lilac-Rose
94be9beddb idk why i added those i forgot 2026-02-18 03:13:31 +01:00
Lilac-Rose
2b3f68a142 friend added comments for some reason 2026-02-18 03:09:43 +01:00
Lilac-Rose
461ff385d5 refactor: codebase cleanup across all modules 2026-02-18 02:45:11 +01:00