* Add various property validation in EmbedBuilder
* Embed URI changes
Changes property types for any URLs in Embeds to System.URI.
Adding field name/value null/empty checks.
* including property names in argumentexceptions
* Adds overall embed length check
* Add grouping of preconditions to allow for flexible precondition logic.
* Fix checking Module Preconditions twice (and none of the command's own)
* Fix command preconditions group 0 looping over every other precondition anyway #whoopsies
* Use custom message when a non-zero Precondition Group fails.
* Fix doc comment rendering.
* Refactor loops into local function
* Considering a new result type
* Switch to IReadOnlyCollection<T> and fix compiler errors
* Revert PreconditionResult -> IResult in return types - Change PreconditionResult to a class that PreconditionGroupResult inherits.
* Feedback on property name.
* Change grouping type int -> string
* Explicitly use an ordinal StringComparer
* Full stops on error messages
* Remove some sillyness.
* Remove unneeded using.
Parameter preconditions were always getting the empty service provider,
even when a custom one was provided in ExecuteAsync, which means that
preconditions which use services cannot work properly.
* Made GetOrCreateUser always call AddRef and added check to PRESENCE_UPDATE to avoid readding users who have been removed from guilds
* Removed AddRef as per dev guild discussion
* remove tip in docs about SocketEntity.Discord
* Expose the 'Fields' collection on EmbedBuilder
After some discussion I decided that there was really no reason to keep this private, and it didn't really go along with the rest of the design of the EmbedBuilder.
This is NOT a breaking change.
Exposing this property should not have any negative effects.
* Don't allow EmbedBuilder's Fields to be set to null