Enhance bot and WebUI functionality with new features and environment updates

- Added support for new environment variables in `.env.example` for public site and legal operator information.
- Integrated core commands into the bot's command structure for improved functionality.
- Implemented a new `publishBotStatus` function to update bot status in Redis, enhancing monitoring capabilities.
- Updated the landing page to include features, invite links, and support server access, improving user experience.
- Enhanced localization with new keys for core commands and landing page elements in both English and German.
- Improved error handling and logging for bot presence updates and status publishing.
This commit is contained in:
smueller
2026-07-22 16:47:09 +02:00
parent 0b4ac0da29
commit 4852f16f79
32 changed files with 1579 additions and 83 deletions

41
docs/verification.md Normal file
View File

@@ -0,0 +1,41 @@
# Discord Bot Verification Privileged Intents
This document lists why Nexumi requires privileged Gateway intents for Discord's verification application.
Update it when modules gain or lose intent dependencies.
## Server Members Intent (`GuildMembers`)
Required so the bot can receive and act on member join/leave/update events and resolve member lists beyond the cache.
| Module | Why |
|--------|-----|
| Welcome & Abschied | Join/leave messages, autoroles, member-count placeholders |
| Verification | Assign verified/unverified roles on join and after button/captcha success |
| Logging | Member join/leave, nickname and role changes |
| Auto-Moderation (Anti-Raid) | Join-rate detection and lockdown reactions |
| Leveling | Voice XP and member-bound XP state |
| Temp-Voice | Owner transfer / claim when members move |
| Stats / Invite-Tracking | Member counts and invite attribution on join |
| Birthdays | Resolve birthday role recipients |
| Tickets / Self-Roles | Permission overwrites and role grants for members |
Without this intent, welcome, verification, raid protection, and accurate member logging cannot function.
## Message Content Intent (`MessageContent`)
Required to read message text for filters, XP, custom triggers, and moderation tools.
| Module | Why |
|--------|-----|
| Auto-Moderation | Spam, mentions, caps, invites, links, word/regex filters, duplicates, emoji spam, zalgo, phishing lists |
| Leveling | Text XP from message content (with cooldowns) |
| Tags | Trigger-word custom commands |
| Logging | Edited/deleted message content in log embeds |
| Utility (`/snipe`, `/editsnipe`) | Restore last deleted/edited message content when enabled |
| Moderation (`/purge` filters) | Filter by links/regex against message body |
Slash command **options** do not need this intent; only messages sent by users in guild channels do.
## Intents that are not privileged (for reference)
Nexumi also uses non-privileged intents such as `Guilds`, `GuildMessages`, `GuildMessageReactions`, `GuildModeration`, `GuildVoiceStates`, `GuildEmojisAndStickers`, and `GuildInvites`. Those do not require special verification approval but are listed here for completeness of the gateway configuration in `apps/bot/src/index.ts`.