- added `~choose` to choose from options
- added `~delay` for an asynchronous delay in command sequences
- added `~say` for output in command sequences or just trolling around
- added .template directory to lib/commands as a template for command modules
- changed names of `.yaml` files in command modules to `template.yaml`
- removed location variable from command modules
- added option to set a CommandModule property `_temlplateDir` to define the directory where the `template.yaml` file is saved in
- fixed ExtendedRichEmbed bug for string.substring if the method doesn't exist on the value
- added log module information to webinterface logs
- changed logging meta module info from `m` to `module`
- Added own logger class that includes the module name
- added unit tests for MessageHandler, Command and Answer
- removed unit tests for GuildHandler and lib/cmd
- removed old command templates
- Added Server Utility Commands
- Removed lib/cmd
- Renamed lib/music
- renamed lib/weblib
- removed command parsing function from GuildHandler
- renamed DJ to MusicPlayer
- updated graphql schema and interface to new names
- moved graphql schemas and queries to lib/graphql
- added anilistApiLib that contains functions to access the anilist graphql api
- added graphql queries to lib/graphql to access data on anilist
- added global ~anime command that returns information to an anime
- modified help command so that it shows command categories for global and server commands
- moved global command registration to lib/cmd
- Sequences of commands can be saved with ~savecmd
- When saving the semicolon must be escaped by backslash
- saved commands can be listed with ~savedcmd
- saved commands can be executed with ~execute [name]
- renamed ~save to ~savemedia and ~saved to ~savedmedia
- added a command to delete saved entries
**WARNING:** This login system is not safe because it transfers your password in plain text. Please wait for the next release.
- added https options
- added user password system
- added paused/playing to dashboard
- bugfixes to music playnext function
- Code Reformatting
- changed id to type ID!
- changed id to md5 hash of base64 string of properties
- added discord Id
- added paging to arrays
- implemented guildHandler into Guild query type
- added saved to retrieve saved songs/playlists
- added ready indicator boolean
- added querying logs
- added presences array
- added config as String
- added prefix
- removed previous testfiles
- added test.js where all tests are stored
- added tests for lib/utils
- added standard test config
- added test config to devDependencies in package.json
- reconfigured circleci configuration
- moved the discord token and youtube api key to ` api.botToken` and `api.youTubeApiKey` in the `config.json` file
- added `lib.utils.ConfigChecker` class to check for missing required attributes in the config
- Updated README to new circumstances
- allowing Promises for global command reply returns
- event callback regristration wrapped in main function
- stored reply for not playing music (`~np`) in servercommands.json
- made imports constant for lib/cmd
- moved YouTube url operations to lib/utils
- removed try catch surrounding promises in play and playnext callback and added .catch to promises
- added .catch to promises in music.js
- added license README badge
- Songname is retrieved before playing
- for playlists the first songname is retrieved before playing, the others are retrieved in the background
- ~np now responses with Rich Embeds
- Command functions are allowed to return promises
- resolve and reject both are the answer the bot will send
- Implemented promises for things that couldn't use them before