# 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~~ `This kind of got subsumed into other features.` - [ ] ~~Reaction listener selectors~~ `So did this.` - [ ] 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 from 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 - [x] 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` > - [x] Pitch command and sub-commands > > - [ ] ~~run~~ `Combined both sub-commands into single command and prompt response.` > > - [ ] ~~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`.