diff --git a/replit.md b/replit.md index 2fb536d..fba6fa2 100644 --- a/replit.md +++ b/replit.md @@ -13,6 +13,10 @@ AeThex Unified Bot handles community features, security, AND general server mana - **Moderation**: Full moderation suite (warn, kick, ban, timeout) - **Leveling System**: Unified XP across Discord and AeThex platform - **Cross-Platform**: Integration with AeThex.studio and AeThex.foundation +- **Role Panels**: Button-based self-assignable roles +- **Giveaways**: Automated giveaway system with entries +- **Auto-Moderation**: Link/spam/badwords/invite filtering +- **Scheduled Messages**: Timed announcements ## Tech Stack @@ -31,25 +35,30 @@ aethex-bot/ │ └── dashboard.html # Web dashboard ├── commands/ │ ├── admin.js # /admin status|heat|servers|threats|federation -│ ├── announce.js # /announce - cross-server announcements +│ ├── announce.js # /announce - cross-server announcements (6 templates) │ ├── auditlog.js # /auditlog - admin action history +│ ├── automod.js # /automod - auto-moderation settings │ ├── avatar.js # /avatar - get user avatar │ ├── badges.js # /badges - view earned badges │ ├── ban.js # /ban - ban users │ ├── config.js # /config - server settings │ ├── daily.js # /daily - claim daily XP +│ ├── embed.js # /embed - custom embed builder with modal │ ├── federation.js # /federation link|unlink|list │ ├── foundation.js # /foundation - foundation stats -│ ├── help.js # /help - command list +│ ├── giveaway.js # /giveaway - giveaway system +│ ├── help.js # /help - categorized command list with dropdown │ ├── kick.js # /kick - kick users -│ ├── leaderboard.js # /leaderboard - top contributors +│ ├── leaderboard.js # /leaderboard - top contributors with medals │ ├── modlog.js # /modlog - user mod history │ ├── poll.js # /poll - community polls │ ├── post.js # /post - community feed posts -│ ├── profile.js # /profile - view linked profile +│ ├── profile.js # /profile - card-style profile with XP bar │ ├── rank.js # /rank - view level and XP │ ├── refresh-roles.js # /refresh-roles - sync roles -│ ├── serverinfo.js # /serverinfo - server stats +│ ├── rolepanel.js # /rolepanel - button role panels +│ ├── schedule.js # /schedule - timed announcements +│ ├── serverinfo.js # /serverinfo - rich server stats │ ├── set-realm.js # /set-realm - choose primary realm │ ├── stats.js # /stats - user statistics │ ├── status.js # /status - network overview @@ -64,9 +73,10 @@ aethex-bot/ ├── events/ │ └── messageCreate.js # Message event handler ├── listeners/ +│ ├── automod.js # Auto-moderation listener │ ├── feedSync.js # Community feed sync -│ ├── welcome.js # Welcome messages + auto-role -│ ├── goodbye.js # Goodbye messages +│ ├── welcome.js # Rich welcome messages + auto-role +│ ├── goodbye.js # Rich goodbye messages │ ├── xpTracker.js # XP tracking on messages │ └── sentinel/ │ ├── antiNuke.js # Channel delete monitor @@ -77,21 +87,21 @@ aethex-bot/ └── register-commands.js # Slash command registration ``` -## Commands (29 Total) +## Commands (36 Total) ### Community Commands | Command | Description | |---------|-------------| | `/verify` | Link your Discord account to AeThex | | `/unlink` | Disconnect your Discord from AeThex | -| `/profile` | View your linked AeThex profile | +| `/profile` | View your linked AeThex profile (card-style with XP bar) | | `/set-realm` | Choose your primary realm | | `/verify-role` | Check your assigned Discord roles | | `/refresh-roles` | Sync roles based on AeThex profile | | `/stats` | View your AeThex statistics | -| `/leaderboard` | View top contributors | +| `/leaderboard` | View top contributors (with medal rankings) | | `/post` | Create a community feed post | -| `/help` | View all bot commands | +| `/help` | View categorized commands with dropdown menu | ### Leveling & Engagement | Command | Description | @@ -108,13 +118,15 @@ aethex-bot/ | `/ban @user [reason]` | Ban a user | | `/timeout @user [minutes] [reason]` | Timeout a user | | `/modlog @user` | View moderation history | +| `/automod` | Configure auto-moderation (links, spam, badwords, invites, mentions) | ### Utility | Command | Description | |---------|-------------| | `/userinfo [@user]` | View user information | -| `/serverinfo` | View server statistics | +| `/serverinfo` | View rich server statistics (boost level, features) | | `/avatar [@user]` | Get user's avatar | +| `/embed` | Create custom embeds with modal builder | ### Admin & Config | Command | Description | @@ -126,9 +138,12 @@ aethex-bot/ | `/config levelup #channel` | Set level-up announcement channel | | `/config autorole @role` | Set auto-role for new members | | `/config levelrole @role [level]` | Add level-based role reward | -| `/announce [title] [message]` | Send cross-server announcement | +| `/announce [title] [message]` | Send announcements (6 template types) | | `/poll [question] [options]` | Create community poll | | `/auditlog` | View admin action history | +| `/rolepanel` | Create/manage button role panels | +| `/giveaway` | Create/end/reroll giveaways | +| `/schedule` | Schedule timed messages | ### Cross-Platform | Command | Description | @@ -208,6 +223,63 @@ CREATE TABLE level_roles ( PRIMARY KEY (guild_id, role_id) ); +-- Role panels (NEW) +CREATE TABLE role_panels ( + message_id TEXT PRIMARY KEY, + channel_id TEXT, + guild_id TEXT, + title TEXT, + description TEXT, + color TEXT, + roles JSONB DEFAULT '[]', + created_by TEXT, + created_at TIMESTAMPTZ DEFAULT NOW() +); + +-- Giveaways (NEW) +CREATE TABLE giveaways ( + message_id TEXT PRIMARY KEY, + channel_id TEXT, + guild_id TEXT, + prize TEXT, + winners_count INTEGER DEFAULT 1, + required_role TEXT, + host_id TEXT, + end_time TIMESTAMPTZ, + entries JSONB DEFAULT '[]', + status TEXT DEFAULT 'active', + created_at TIMESTAMPTZ DEFAULT NOW() +); + +-- Scheduled messages (NEW) +CREATE TABLE scheduled_messages ( + id TEXT PRIMARY KEY, + guild_id TEXT, + channel_id TEXT, + type TEXT, + content TEXT, + embed_data JSONB, + send_time TIMESTAMPTZ, + created_by TEXT, + status TEXT DEFAULT 'pending', + created_at TIMESTAMPTZ DEFAULT NOW() +); + +-- Auto-mod config (NEW) +CREATE TABLE automod_config ( + guild_id TEXT PRIMARY KEY, + links_enabled BOOLEAN DEFAULT FALSE, + links_action TEXT DEFAULT 'delete', + spam_enabled BOOLEAN DEFAULT FALSE, + spam_threshold INTEGER DEFAULT 5, + badwords JSONB DEFAULT '[]', + invites_enabled BOOLEAN DEFAULT FALSE, + mentions_enabled BOOLEAN DEFAULT FALSE, + mentions_limit INTEGER DEFAULT 5, + exempt_roles JSONB DEFAULT '[]', + updated_at TIMESTAMPTZ DEFAULT NOW() +); + -- Add to user_profiles (if not exists) ALTER TABLE user_profiles ADD COLUMN IF NOT EXISTS xp INTEGER DEFAULT 0; ALTER TABLE user_profiles ADD COLUMN IF NOT EXISTS daily_streak INTEGER DEFAULT 0; @@ -250,10 +322,14 @@ npm start ## Current Status - Bot running as AeThex#9389 -- 29 commands loaded +- 36 commands loaded - Unified XP system active -- Welcome/goodbye system active +- Welcome/goodbye system active (rich embeds) - Moderation suite active +- Auto-moderation system ready +- Role panels with button interactions +- Giveaway system active +- Scheduled messages active - Cross-platform integration ready ## Workflow