Stylistic changes
Corrected documentation on decoupling to correctly expose both ports of Lavalink. Internal changes to reduce the quirks with this process
Updated docker-compose.yml
to allow updating of the WildBeast source code without decoupling
Added restPort
property to Lavalink node configuration
Upgraded Lavalink to v3 and ArangoDB to 3.3.14
Removed translation submodule, we now include the standard file by default. Translations are able to be downloaded from our crowdin project
CircleCI will now automatically include translations into new Docker images
For Docker images, uws is locked to v10.148.1
Commands that call external APIs will now indicate errors
Music command have been updated to support lavalink v3
Added optional embedded database powered by LokiJS
Added new ffmpeg based voice encoder
++meme
will no longer use imgflip, memegen is used instead
++settings
will error out if an unknown language is being set
Encoders and drivers are loaded on-demand instead of requiring them all
Elasticsearch logging will now log command arguments instead of the full message
Version checking will check for git commits instead of versions only, this falls back to original version check if git is not available
This is a breaking release, nothing is backwards compatible.
Entire internal structure changed.
We no longer officially support RethinkDB as a database, the official database is ArangoDB.
Command indexing changed, each command lives in its own file now.
Changed Discord library from Discordie to Eris (rip)
All event handlers live in separate files instead of all being defined in the main script.
BREAKING CHANGE: All configuration is now declared in the environment, .env
files are supported. env vars are explained below:
Variable | Required | Function |
---|---|---|
BOT_TOKEN |
Mandatory | The token to use |
BOT_PREFIX |
Mandatory | The prefix to use |
WILDBEAST_MASTERS |
Mandatory | String of user IDs separated by pipe characters that should be considered master users |
WILDBEAST_LANGUAGE |
Optional | Set default language to use |
WILDBEAST_SUPPRESS_COMMANDLOG |
Optional | If set, suppresses loglevel CMD |
WILDBEAST_PREFERRED_DATABASE |
Optional | Override the database driver used, defaults to arangodb |
WILDBEAST_PREFERRED_ENDCODER |
Optional | Override default encoder |
WILDBEAST_VOICE_PERSIST |
Optional | Override default behaviour of leaving voice channels when playlists are done |
WILDBEAST_DISABLE_MUSIC |
Optional | If set, prevent any encoder from being loaded |
BEZERK_URI |
Optional | URI of Bezerk server |
BEZERK_PASSWORD |
Optional | Password for Bezerk server |
ELASTICSEARCH_URI |
Optional | If set, configure logging to log to Elasticsearch |
ELASTICSEARCH_INDEX |
Optional | Override default index of wildbeast for Elasticsearch logging |
SENTRY_DSN |
Optional | If set, configure error logging to report to Sentry as well |
ARANGO_URI |
Optional | If set, override the default Arango URI of http://localhost:8529 |
ARANGO_USERNAME |
Required if running default | Set the username used for authenticating with Arango |
ARANGO_PASSWORD |
Required if running default | Set the password used for authenticating with Arango |
ARANGO_DATABASE |
Optional | If set, override the default database used, defaults to wildbeast |
NODE_ENV |
Optional | If set to debug , enable verbose logging |
IMGFLIP_USERNAME |
Optional | Set username to use with Imgflip |
IMGFLIP_PASSWORD |
Optional | Set Imgflip password |
IMGUR_KEY |
Optional | Set Imgur key |
TWITCH_ID |
Optional | Set Twitch client ID |
LAVA_NODES |
Required | JSON string containing Lavalink node information |
RANCHER_AUTOSCALE |
Optional | If set, enable additional features exclusive to Rancher orchestrated environments |
Skipped, this was developed internally but never released or finished.
Improvements to command handler.
Improvement to permissions database controller.
Improvement to customize database controller.
Improvement to join-voice command.
Improvement to songs playing.
Improvements to help handler.
Added aliases to dogfact
and catfact
.
Changed API of catfact
to a working version.
Change urbandictionary format to embed style.
Added Contributor Covenant Code of Conduct as per GitHub's new standards.
Reworked Docker container: Changed the way the database creation works (Migrated from Dockerfile to entrypoint.sh).
Dropped user account support and Mashape integration.
The bot now uses the dev
version of discordie
.
Removed request
and unirest
in favor of superagent
.
Added hackban
, softban
, randomdog
, dogfact
, shorten
commands.
Updated kick
and ban
commands to allow for reason submitting to audit logs.
Lots of other miscellaneous bug fixes, backend changes and under-the-hood improvements.
Improvements to errors and other debug information.
Added 3 new role related commands: addrole
, takerole
and colorrole
. Refer to http://docs.thesharks.xyz/commands for more information.
Added dogfact command.
Handle attempts to delete messages older than 2 weeks due to changes to the message delete API endpoint.
And as per usual, miscellaneous bug fixes and issue resolves.
Reworked sestatus command, particular improvements:
- Allow for more status options to be passed. (Online, idle, DND, invisible)
- Allow status to be cleared if no suffix is passed.
- Misc improvements and added PEBKAC repellant.
More verbose logging for the request command to improve capability to debug voice errors.
Other miscellaneous fixes.
Added Elasticsearch as an option to store logs to, file based logging is semi-deprecated because of this.
Added Bezerk support.
Added Imgur key, required for the new randommeme
command.
Added global ignoring.
Added the ability to customize initial volume when joining voice.
Playlist can be cleared with ++playlist clear
Specific songs can be removed from the playlist with ++playlist remove <number>
Tags from users can be listed with ++tag list @User
Random tags can be showed with ++tag random
Botapi variable for node-cleverbot has been set.
Added Dockerfiles = Docker support. Documentation for Docker installation added.
Added a npm script to create database tables, npm run-script dbcreate
. Removes --createdatabase
being required at intial run.
Informational commands like info
use Discord embeds now.
Added xkcd comic search command back.
Songs can now be deleted from the playlist. (++playlist delete <position>
)
Bugsnag is added as a dependency for reporting errors, bugsnag is not required to run WildBeast.
Added rankup command which allows increase of user level by one.
Database now tracks guild owner changes so level 4 permissions are transferred automatically.
Remove obsolete features (CSE, chat logger etc.) that are remnants from pre-2.0 or similar.
This update is a breaking change, back up your configs before updating!
Retired nedb for datastorage, now using RethinkDB. Setup process now requires setup of local RDB server, documentation updated to reflect.
Tags now use TagScript which allows for a more flexible tag system.
YouTubeDL now tries to get only audio to lower your bandwidth usage.
Waiting music now shuffles between two songs.
Tons of miscellaneous bug fixes.
When updating to this version, make sure you have read the updated documentation to get it running again.
Internal tweaks.
Retired XL formatting in help for INI formatting.
WildBeast now alerts the user with a more descriptive error message if the config file is invalid or missing.
The special word %user
now resolves to a mention instead of the username.
INVALID
doesn't get dumped to the playlist anymore if YouTube videos from a YT playlist fail to fetch, they'll get silently dropped instead.
leave
is renamed to leave-server
to avoid confusion.
Fixed welcome message not sending properly when set to private.
Welcome messages can now be send via private messages.
Masters are now at Infinity
instead of 9.
Voice channel join messages now use a customized prefix if available.
Introduced shuffle
and voteskip
as music commands.
Introduced master
as a new access level.
Several small tweaks and improvements.
Several improvements.
Added the ability to set roles to access levels.
Improved performance from YouTube playlist fetching.
Added shardmode
Fixed initial setup misbehaving if user was sure about using a normal Discord account.
Enabled versionchecker.
Fixed voice
not working properly if user was not connected to any voice channel.
Fixed some internal quirks.
Introduced tags.
Enabled command alias system.
Changed giphy endpoint for more randomness.
Added a noDM
key.
Initial release, featuring all-new code.
Added timeouts.
Changed request
to only accept full links from now on.
Made preparations for a future update.
Changed callbacks to promises.
Removed playliststart
, playlists start automatically after the first video has been entered.
Extended timeout for initial join.
Several small tweaks.
Revamped database system.
Added token login support for the upcoming official Discord API.
Added expansive server-specific customization options.
Added user tracking for namechanges.
Added an upgrade script for users to upgrade from gamma.7 to 2.0.0
Removed server defaulting system.
Removed unneeded and unfinished files in runtime
.
Removed unnecessary fluff from config.json
.
Removed welcoming-whitellist.json
, this is now handled by customize
.
Removed birds
, ìdle
and online
, idle
and online
are replaced with setstatus
.
Temporary removed server blacklisting system, this will be reintroduced later.
(Gamma is a real thing in software development by the way, it's a synonym for RC (Release Candidate))
Changed welcoming system to adhere to a whitelist instead of being global.
Added server blacklisting for join-server
.
IMPORTANT Changed join-server
to use mentions instead of usernames, the new invocation is join-server @WildBeast <instant-invite>
, change WildBeast
with your bots username.
Added YouTube playlist support.
Removed play
and yt-play
.
Added playlisting for YouTube video's.
Revamped music streaming permissions due to the way the normal permissions handle.
Added some extra commands.
Hopefully improved the reliability of stop
for music streaming.
Made preparations for a future update.
This is a relative small update.
Added YouTube streaming.
Added some extra commands.
Revamped debug mode and verbose logging.
Changed setowner
to set server owner to level 4 instead of level 3.
Changed commands that where at level 4 to level 5.
Added a timeout feature.
GET HYPED FOR MUSIC STREAMING!
Changed versionchecker.js
ability to check for beta versions to gamma version checking.
Moved to LevelDB instead of Redis for handling permission storage and handling timeouts.
Fixes several problems caused by 2.0.0-beta.4
Added an incomplete server defaulting system.
Added setstatus
.
Changed the fixed length of cmd_prefix
to a dynamic length.
Changed the fixed character prefix to switch to mention activation if desired.
Fixed myapifilms_token
not existing.
Fixed problems with ++setowner
.
Added debug_mode
and verbose_logging
. (Note, only enable these on request of the devs!)
Added a config value that'll change the way ++help
functions.
Updated the layout of config.json
, meaning that users need to remake their config files.
Fixed giphy.js
not having requires.
Fixed suffix
not behaving accordingly.
Added ++fortunecow
, ++randomcat
, ++rule34
and ++leetspeak
.
Added mashape_key
to config.json
.
Removed NSFW flags from commands that did not need them, as this will cause problems with ++help
.
Removed deletion.js
, as this is needlessly split.
Updated versionchecker.js
to check for beta updates.
Moved to double prefix activation instead of single prefix activation as requested by Discord API, we recommend using ++
.
Bot is also compliant with the Discord bot best practises, also requested by Discord API.
Initial release of DougBot 2.0, featuring new permission system and stability improvements.
Nothing too interesting lol.