geas-bot/TODO.md

3.3 KiB

To Do

Bot Architecture

  • Simplify directory tree
  • Split event listeners into individual cogs.
  • Update with re-organised data and config structure
  • Correct references to data in existing cogs.
  • Setup minimally functioning configs of guild on startup
  • Synchronise core configuration /commands on startup
  • Synchronise secondary /commands on complete configuration (see below)

Bot Functionality and Processes

  • 'Delete Commands' Function
  • 'Register Commands' Function
  • Infer Permissions from Config
  • 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
  • Delete Dev/Test Functions
  • Error handlers
  • Debug Features
  • Command Installer/Uninstaller
  • Help Channel Event Listener
  • Add Config key for Help Channel
  • Slash Command Buttons or
  • Reaction listener selectors
  • Member Verification
  • Add Config key membership signup channels
  • 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)
  • Flag for checking completeness of configuration for a guild.
  • 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

  • Guild Changing Ownership
  • Roles Modified
  • Mod Channel Deleted

Commands

  • Configure Bot function and sub commands
  • botrole (role group)
  • committeerole (role group)
  • modchannel (channel group)
  • help channel (channel group)
  • signup channel (channel group)
  • newcomer role (role group)
  • returning player role (role group)
  • student role (role group)
  • help notifications (notification group)
  • signup notifications (notification group)
  • Set up timeslots
  • Delete timeslots
  • Base command
  • Delete all games with the timeslot Do the opposite: block deleting timeslots with existing games.
  • List timeslots
  • Set up command permissions
  • Slash Commands
  • Admin Commands
  • Game Management Commands
  • Native Bot Commands
  • Migrate existing bot commands
  • setupgame
  • definebotrole config
  • deletegame
  • reset purge
  • migrate See above
  • kickplayer /player remove
  • addplayer /player add
  • 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.