Skip to content

Volte V3

Compare
Choose a tag to compare
@GreemDev GreemDev released this 06 Aug 00:13
· 287 commits to v3 since this release

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 into Volte.Core.Models. I.e.: Volte.Data.Models -> Volte.Core.Models
  • Config.cs moved into Volte.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 if withAdmin is false.
  • 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.