2021-07-15 09:03:44 +01:00
# To Do
2021-07-24 01:01:48 +01:00
- [ ] Testing
- [ ] Dockerise
- [ ] Infer/Transfer data from old bot
- [ ] Deploy
2021-07-15 09:03:44 +01:00
## Bot Architecture
2021-07-21 23:05:13 +01:00
2021-07-15 23:23:48 +01:00
- [x] Simplify directory tree
2021-07-15 23:26:53 +01:00
- [x] Split event listeners into individual cogs.
2021-07-16 23:53:31 +01:00
- [x] Update with re-organised data and config structure
2021-07-21 23:05:13 +01:00
2021-07-16 23:53:31 +01:00
> - [x] Correct references to data in existing cogs.
2021-07-21 23:05:13 +01:00
2021-07-17 13:56:04 +01:00
- [x] Setup minimally functioning configs of guild on startup
- [x] Synchronise core configuration `/commands` on startup
2021-07-23 00:44:21 +01:00
- [ ] ~~Synchronise secondary `/commands` on complete configuration~~ ``(see below)``
2021-07-15 09:03:44 +01:00
2021-07-17 13:56:04 +01:00
## Bot Functionality and Processes
2021-07-21 23:05:13 +01:00
2021-07-18 23:16:58 +01:00
- [ ] ~~'Delete Commands' Function~~
- [ ] ~~'Register Commands' Function~~
2021-07-17 13:56:04 +01:00
- [x] Infer Permissions from Config
2021-07-16 23:53:31 +01:00
- [x] Dynamic Command Prefixes
2021-07-21 11:49:29 +01:00
- [ ] Infer current games from Server Structure
2021-07-23 00:44:21 +01:00
`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.`
2021-07-15 23:26:53 +01:00
- [ ] Re-enable logging
2021-07-16 23:53:31 +01:00
- [x] Delete Dev/Test Functions
- [x] Error handlers
2021-07-20 00:44:03 +01:00
- [x] Debug Features
2021-07-21 23:05:13 +01:00
2021-07-18 23:16:58 +01:00
> - [ ] ~~Command Installer/Uninstaller~~
2021-07-21 23:05:13 +01:00
2021-07-16 23:53:31 +01:00
- [x] Help Channel Event Listener
2021-07-21 23:05:13 +01:00
2021-07-16 23:53:31 +01:00
> - [x] Add Config key for Help Channel
2021-07-21 23:05:13 +01:00
2021-07-23 00:44:21 +01:00
- [ ] ~~Slash Command Buttons or~~ `This kind of got subsumed into other features.`
- [ ] ~~Reaction listener selectors~~ `So did this.`
2021-07-23 15:55:27 +01:00
- [x] Member Verification
2021-07-21 23:05:13 +01:00
2021-07-16 23:53:31 +01:00
> - [x] Add Config key membership signup channels
> - [x] Add config keys: Membership Category Roles
2021-07-23 15:55:27 +01:00
> - [x] Message Receive listener
> - [x] ~~Message React listener~~ or buttons `Used buttons waiting within the same command thread. Possibly update to global listener if performance is affected.`
2021-07-21 23:05:13 +01:00
2021-07-23 15:55:27 +01:00
- [x] Membership Restriction
2021-07-21 23:05:13 +01:00
2021-07-23 15:55:27 +01:00
> - [x] Message Receive Listener
> - [x] Membership Validation Listener
2021-07-21 23:05:13 +01:00
2021-07-23 15:55:27 +01:00
- [x] Re-synchronise commands after any relevant config changes `(See from above)`
2021-07-21 23:05:13 +01:00
2021-07-23 15:55:27 +01:00
> - [ ] Role Delete (~~member~~, ~~admin~~, ~~game~~) `Admin role missing won't cause any issues as server role will still remain in control`
`Deleting membership roles will also trigger a mess. Event listener will trigger and attempt to execute simultaneously with the command to delete the role, which will cascade into several errors. In order to make this work, it is best to have the commands interact solely with the roles, and then subsequently the listeners to sync with the data.`
> - [ ] ~~Channel delete (notifications, logs, game text channel)~~ `There aren't any critical settings that depend on this just yet, and it is hard to set this up without circularity`
> - [ ] ~~Category delete (games)~~ `Circularity problem: if the category delete event listener is set up, it will react to the bot deleting categories when managing games.`
2021-07-21 23:05:13 +01:00
2021-07-16 23:53:31 +01:00
- [x] Flag for checking completeness of configuration for a guild.
2021-07-21 23:05:13 +01:00
2021-07-16 23:53:31 +01:00
> - [x] Function for checking configs for completeness
2021-07-21 23:05:13 +01:00
2021-07-23 15:55:27 +01:00
- [ ] ~~Synchronise game channel on role updates~~
> - [ ] ~~Exception to event listener to prevent circularity~~ ~~`unsure what this means`~~
2021-07-21 23:05:13 +01:00
2021-07-23 15:55:27 +01:00
`I remember what this is now: if you have a listener for when roles get deleted, and if the bot deletes a role, then it triggers the listener. It might be worth restructuring this such that the Bot command only deletes the role, which then triggers the listener that deletes the categories and synchronises data. That way, the roles can be deleted manually or via the command. Otherwise, it is not possible in the Discord API to have this exception, as the Bot only responds to the 'Guild' deleting the role, not the user or bot or admin that issued the command.`
2021-07-20 00:44:03 +01:00
2021-07-15 09:03:44 +01:00
## Event Listeners
2021-07-16 23:53:31 +01:00
## Review Configs When
2021-07-21 23:05:13 +01:00
2021-07-16 23:53:31 +01:00
- [x] Guild Changing Ownership
- [x] Roles Modified
- [x] Mod Channel Deleted
2021-07-15 09:03:44 +01:00
## Commands
2021-07-21 23:05:13 +01:00
2021-07-18 00:43:44 +01:00
- [x] Configure Bot function and sub commands
2021-07-21 23:05:13 +01:00
2021-07-17 13:56:04 +01:00
> - [x] botrole (role group)
2021-07-18 00:43:44 +01:00
> - [x] committeerole (role group)
2021-07-17 13:56:04 +01:00
> - [x] modchannel (channel group)
> - [x] help channel (channel group)
> - [x] signup channel (channel group)
2021-07-18 00:43:44 +01:00
> - [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)
2021-07-21 23:05:13 +01:00
2021-07-18 23:16:58 +01:00
- [x] Set up timeslots
2021-07-21 11:49:29 +01:00
- [x] Delete timeslots
2021-07-21 23:05:13 +01:00
2021-07-19 02:26:35 +01:00
> - [x] Base command
2021-07-21 11:49:29 +01:00
> - [x] ~~Delete all games with the timeslot~~
2021-07-20 21:43:22 +01:00
Do the opposite: block deleting timeslots with existing games.
2021-07-21 23:05:13 +01:00
2021-07-18 23:16:58 +01:00
- [x] List timeslots
2021-07-21 11:49:29 +01:00
- [x] Set up command permissions
2021-07-21 23:05:13 +01:00
2021-07-21 11:49:29 +01:00
> - [x] Slash Commands
2021-07-23 00:44:21 +01:00
2021-07-17 13:56:04 +01:00
>> - [x] Admin Commands
2021-07-21 11:49:29 +01:00
>> - [x] Game Management Commands
2021-07-21 23:05:13 +01:00
2021-07-17 13:56:04 +01:00
> - [x] Native Bot Commands
2021-07-21 23:05:13 +01:00
2021-07-23 00:44:21 +01:00
- [x] Migrate existing bot commands
2021-07-21 23:05:13 +01:00
2021-07-19 02:26:35 +01:00
> - [x] setupgame
2021-07-17 13:56:04 +01:00
> - [x] ~~definebotrole~~ config
2021-07-19 02:26:35 +01:00
> - [x] deletegame
2021-07-21 11:49:29 +01:00
> - [x] ~~reset~~ purge
2021-07-23 00:44:21 +01:00
> - [ ] ~~migrate~~ `See above`
2021-07-21 11:49:29 +01:00
> - [x] ~~kickplayer~~ `/player remove`
> - [x] ~~addplayer~~ `/player add`
> - [x] ~~leavegame~~ `/player leave`
2021-07-23 00:44:21 +01:00
> - [x] Pitch command and sub-commands
2021-07-21 23:05:13 +01:00
2021-07-23 00:44:21 +01:00
> > - [ ] ~~run~~ `Combined both sub-commands into single command and prompt response.`
> > - [ ] ~~clear~~
2021-07-15 09:03:44 +01:00
## Misc
2021-07-21 23:05:13 +01:00
2021-07-24 01:01:48 +01:00
- [x] Review documentation
2021-07-21 23:05:13 +01:00
2021-07-24 01:01:48 +01:00
> - [x] Finalise README.md
2021-07-23 15:55:27 +01:00
> - [x] CHANGELOG.md
> - [x] COMMANDS.md
> - [x] resources.md
2021-07-21 23:05:13 +01:00
2021-07-23 15:55:27 +01:00
- [x] Make sure to document `not using discord_components and staying with discord-py-slash-commands library alone` .