Volte V3
Volte V3 is here! Here's all of the changes, end-user and nerds alike.
Main Changes
- Configuration is now named
volte.json
and now uses more-JSON-esque names. - Commands now use CommandResults, so command processing should be fractionally faster.
- .NET Core 3.0/C#8 is now used, and you NO LONGER need to install .NET Core on your system as Volte is now self-contained as a Linux or Windows 10 executable.
- Volte now properly creates a configuration file on program start if one doesn't exist. It still somehow didn't do that before.
There's probably more that I couldn't think of.
End-User Changes
- Tag management commands, like TagCreate, are now Moderator-restricted as opposed to Admin-restricted.
- Features can now be manually enabled/disabled for self-hosted Volte instances via the new
enabled_features
config section. WelcomeColorCommand
now accepts RGB/HEX values! No longer are you required to provide an RGB if you only know the hex.- Reload command: Reload your Volte config on-the-fly without needing to restart the bot. Note, if you changed the token, you'll still need to restart.
- Permissions command: See permissions for anyone in the server.
- Sharded Client! Public Volte will now automatically fix itself if it ever gets above 2000 guilds.
- Example config file updated to show new config key names/additions.
- Debug logging: You can now have extra info printed to your Volte console for issue diagnosing.
Nerd Changes
- C#8 features like Switch Expressions are now used. You'll need to install the .NET Core 3 SDK to be able to edit this project & run it!
- Anything under
Volte.Data
was moved intoVolte.Core.Models
. I.e.:Volte.Data.Models
->Volte.Core.Models
Config.cs
moved intoVolte.Core
.- Socket types are now enforced all throughout Volte. No more interface types!
- Expression body now used for all methods that are only one line.
IDiscordClient#GetInviteUrl()
extension now generates a URL with default permissions ifwithAdmin
isfalse
.- The current guild's GuildData is now on the Context of every command creation.
- Sync logger. Async logger is bad, and is for the weak-minded.
- Removed Discord.Commands.
- TypeParsers are added automatically, via Reflection.
- ModActionEventArgs now uses a builder pattern.
- All modules made
sealed
. This is purely a compiler optimization.