geas-bot/TODO.md

126 lines
3.3 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 current games from Server Structure
**Create a separate cog to do this instead of having a migrate command, install the cog temporarily and remove the cog once migration is done.**
- [ ] 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, game)
> - [ ] Channel delete (notifications, logs, game text channel)
> - [ ] Category delete (games)
- [x] Flag for checking completeness of configuration for a guild.
> - [x] Function for checking configs for completeness
- [ ] Synchronise game channel on role updates
> - [ ] Exception to event listener to prevent circularity `unsure what this means`
## 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
- [x] Delete timeslots
> - [x] Base command
> - [x] ~~Delete all games with the timeslot~~
Do the opposite: block deleting timeslots with existing games.
- [x] List timeslots
- [x] Set up command permissions
> - [x] Slash Commands
>> - [x] Admin Commands
>> - [x] Game Management Commands
> - [x] Native Bot Commands
- [ ] Migrate existing bot commands
> - [x] setupgame
> - [x] ~~definebotrole~~ config
> - [x] deletegame
> - [x] ~~reset~~ purge
> - [ ] ~~migrate~~ **See above**
> - [x] ~~kickplayer~~ `/player remove`
> - [x] ~~addplayer~~ `/player add`
> - [x] ~~leavegame~~ `/player leave`
> - [ ] 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**.