geas-bot/TODO.md

92 lines
3.0 KiB
Markdown

# To Do
## Bot Architecture
- [x] Simplify directory tree
- [x] Split event listeners into individual cogs.
- [x] Update with re-organised data and config structure
> - [x] Correct references to data in existing cogs.
- [x] Setup minimally functioning configs of guild on startup
- [x] Synchronise core configuration `/commands` on startup
- [ ] ~~Synchronise secondary `/commands` on complete configuration **(see below)**~~
## Bot Functionality and Processes
- [ ] ~~'Delete Commands' Function~~
- [ ] ~~'Register Commands' Function~~
- [x] Infer Permissions from Config
- [x] Dynamic Command Prefixes
- [ ] Infer Games from Server Structure
- [ ] Re-enable logging
- [x] Delete Dev/Test Functions
- [x] Error handlers
- [x] Debug Features
> - [ ] ~~Command Installer/Uninstaller~~
- [x] Help Channel Event Listener
> - [x] Add Config key for Help Channel
- [ ] Slash Command Buttons or
- [ ] Reaction listener selectors
- [ ] Member Verification
> - [x] Add Config key membership signup channels
> - [x] Add config keys: Membership Category Roles
> - [ ] Message Receive listener
> - [ ] Message React listener or buttons
- [ ] Membership Restriction
> - [ ] Message Receive Listener
> - [ ] Membership Validation Listener
- [ ] Re-synchronise commands after any relevant config changes **(see above)**
> - [ ] Role Delete (member, admin)
> - [ ] Channel delete (notifications, logs)
- [x] Flag for checking completeness of configuration for a guild.
> - [x] Function for checking configs for completeness
- [ ] Synchronise roles on game channel updates
> - [ ] Exception to event listener to prevent circularity
## Event Listeners
## Review Configs When
- [x] Guild Changing Ownership
- [x] Roles Modified
- [x] Mod Channel Deleted
## Commands
- [x] Configure Bot function and sub commands
> - [x] botrole (role group)
> - [x] committeerole (role group)
> - [x] modchannel (channel group)
> - [x] help channel (channel group)
> - [x] signup channel (channel group)
> - [x] newcomer role (role group)
> - [x] returning player role (role group)
> - [x] student role (role group)
> - [x] help notifications (notification group)
> - [x] signup notifications (notification group)
- [x] Set up timeslots
- [ ] Delete timeslots
> - [x] Base command
> - [ ] ~~Delete all games with the timeslot~~
Do the opposite: block deleting timeslots with existing games.
- [x] List timeslots
- [ ] Set up command permissions
> - [ ] Slash Commands
>> - [x] Admin Commands
>> - [ ] Game Management Commands
> - [x] Native Bot Commands
- [ ] Migrate existing bot commands
> - [x] setupgame
> - [x] ~~definebotrole~~ config
> - [x] deletegame
> - [ ] reset
> - [ ] migrate
> - [ ] kickplayer
> - [ ] addplayer
> - [ ] leavegame
> - [ ] Pitch command and sub-commands
> > - [ ] run
> > - [ ] clear
## Misc
- [ ] Review documentation
> - [ ] Finalise README.md
> - [ ] CHANGELOG.md
> - [ ] COMMANDS.md
> - [ ] resources.md
- [ ] Make sure to document **not using discord_components and staying with discord-py-slash-commands library alone**.