experimental discord bot
- The core idea is to move all Discord commands to a properties file, and utilizing Spring proxying to automate most of the object instantiation. This aims to reduce the boilerplate code in each of the actual classes for commands.
- The
commandpackage has classes for individual commands - The
eventpackage has custom events for parsing "sub-commands" and other arguments - The
listenerpackage contains custom listeners (used for parsing messages that might not start with our prefix) - The
messagepackage has nicely pre-formatted Discord embedded messages - The
utilpackage contains some useful chat and bot utilities
- The main runner is responsible for authenticating the bot with Discord, registering event listeners, etc
- The command handler is a generic class that parses user input into a command and calls the correct command class to receive it
- The listener handler registers individual event listeners
- Mostly used for commands that don't necessarily have the
>prefix
- Mostly used for commands that don't necessarily have the
- An event dispatcher parses any arguments that come after a root command
- (eg,
>dump add x y- thedumpcommand parses the initialdump, which fires off the handler for theaddcommand using a dispatcher)
- (eg,
- The main class for a command is
AbstractCommand, which contains the wireframe to be fllowed for parsing events
In no particular order:
- Improve how command statuses are passed
- Centralize all generic message responses
- Somewhere to store magic strings
- Tokens via command line argument instead
- Easy commands: help, dump, roll (+coin flip), 8 ball, fortune telling, Spongebob meme
- Hard commands: bilge dice, othello, stock market, blackjack, other gambling bots, full rpg?
- Stats
- osu! api integration (?)
- Pull audio commands to common interface for autowired dao? Probably over-engineering at that point...
- Dumping on for x amount of messages
1.0-SNAPSHOT:
- Initial version!
- Added commands "dump", "help", "roll", "play"