# 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 - [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