TODO:
-[x] Test command separators
-[x] Test command searching
-[ ] Test command execution
-[ ] Test command builders (properly)
-[ ] Test ModuleClassBuilder (properly)
-[ ] Test all features of CommandServiceConfig
-[ ] Test type readers
-[ ] Test preconditions
-[ ] Test parameter preconditions
-[ ] ????
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
The previous commit prevents any connections, since the initial presence update is sent while the client is still in the 'connecting' state, rather than the 'connected' state.
This resolves the original issue by preventing a nullref, and the more recent issue by only throwing a detailed exception when the CurrentUser is null (the client isn't logged in).
This prevents a later, less detailed nullref, when attempting to set the CurrentUser's presence data.
This also removes a redundant CurrentUser assignment in the SetGameAsync method, since this will be set later on in the SendStatusAsync method.