Previously, if a user autoloaded commands more than once, commands that were already in the command map would be readded.
If the module list already contains a module with the same type as the module being loaded, it will not load the new instance of this module.
For users importing `Discord.WebSocket.Extensions`, there are now non-async extensions for GetUser.
These methods point to the appropriate method on the respective SocketgChannel.
Instead of implicitly soft-casting IGuild to SocketGuild, I added a method to soft-cast IGuild to SocketGuild, and throw an InvalidOp if it came up null for some reason.
GetUsers was changed from an IEnumerable to an IReadOnlyCollection to allow quick ".Count"-ing on the collection.
For users importing `Discord.WebSocket.Extensions`, there are now non-async extensions for Get(Type)Channel(s) and Get(Current)User(s).
These methods point to the appropriate method or member on SocketGuild.
Resolves#153
This is a breaking change!
With the introduction of Vanity URLs and the shortening of Invite URLs, the API appears to have removed the "xkcdpass" field of the Invite.
Since this functionality was removed from the Discord API and thus obsolete, it has been removed from the Invite models.
This gateway event is raised when a message in a GuildChannel is pinned or unpinned. Unfortunately, this event only contains a timestamp of when the pin was changed, making it effectively useless. As a result, it will be dropped.
Resolves#135