How elite-du-bat-k/elitedubatk works
EliteDuBatK is a Discord server bot combining moderation, audit logging, message-history recovery, and StudySuite planning and homework features. The main user workflow is a Discord slash command: the bot dispatches it to a command, which may call StudySuite, format the result, and reply in Discord. Separate event listeners handle moderation and server changes, while services coordinate channel locks and cached-message persistence. The README documents these capabilities; several wiring details are not shown in the sampled source, so uncertain call edges are omitted.
Main entry points: StudyCommand.java Study commands · StudySuiteClient.java StudySuite client · PlanningSubcommand.java Planning command · Bot.java Bot runtime
Components 23
Bot runtime
- Application entry
src/main/java/fr/umontpellier/iut/discordbot/Main.java - Bot runtime
src/main/java/fr/umontpellier/iut/discordbot/Bot.java - Configuration
src/main/java/fr/umontpellier/iut/discordbot/config/ConfigLoader.java
Discord interactions
- Command registry
src/main/java/fr/umontpellier/iut/discordbot/commands/CommandManager.java - Slash dispatch
src/main/java/fr/umontpellier/iut/discordbot/events/SlashCommandEventListener.java - Channel lock command
src/main/java/fr/umontpellier/iut/discordbot/commands/LockCommand.java
Server events
- Event registry
src/main/java/fr/umontpellier/iut/discordbot/events/EventManager.java - Audit listeners
src/main/java/fr/umontpellier/iut/discordbot/events/audit/AbstractAuditLogListener.java - Message listeners
src/main/java/fr/umontpellier/iut/discordbot/events/messages/MessageDeleteListener.java - Honeypot listener
src/main/java/fr/umontpellier/iut/discordbot/events/HoneypotListener.java
StudySuite features
- Study commands
src/main/java/fr/umontpellier/iut/discordbot/commands/study/StudyCommand.java - Planning command
src/main/java/fr/umontpellier/iut/discordbot/commands/study/PlanningSubcommand.java - Homework commands
src/main/java/fr/umontpellier/iut/discordbot/commands/study/HomeworkSubcommand.java - Add homework
src/main/java/fr/umontpellier/iut/discordbot/commands/study/AddHomeworkSubcommand.java - StudySuite client
src/main/java/fr/umontpellier/iut/discordbot/studysuite/StudySuiteClient.java - Planning and homework formatting
src/main/java/fr/umontpellier/iut/discordbot/studysuite/PlanningFormatter.java
State and services
- Channel lock service
src/main/java/fr/umontpellier/iut/discordbot/services/ChannelLockService.java - Message cache service
src/main/java/fr/umontpellier/iut/discordbot/services/MessageCacheService.java - Message repository
src/main/java/fr/umontpellier/iut/discordbot/database/repositories/CachedMessageRepository.java - SQLite database
src/main/java/fr/umontpellier/iut/discordbot/database/DatabaseConnection.java
Other components
- Discord member
- Discord
- StudySuite API
Connections 24
- Application entry → Bot runtime: starts
- Bot runtime → Configuration: loads
- Discord member → Discord: uses
- Discord → Slash dispatch: dispatches
- Slash dispatch → Study commands: dispatches
- Command registry → Discord: registers commands
- Study commands → Planning command: routes
- Study commands → Homework commands: routes
- Study commands → Add homework: routes
- Planning command → StudySuite client: requests events
- Homework commands → StudySuite client: requests assignments
- Add homework → StudySuite client: creates assignment
- StudySuite client → StudySuite API: calls API
- Planning command → Planning and homework formatting: formats schedule
- Study commands → Discord: replies
- Discord → Event registry: dispatches events
- Event registry → Discord: registers listeners
- Discord → Audit listeners: provides audit events
- Discord → Message listeners: provides message events
- Discord → Honeypot listener: provides messages
- Channel lock command → Channel lock service: changes lock
- Channel lock service → Discord: updates permissions
- Message cache service → Message repository: loads and writes
- Message repository → SQLite database: queries