📋Changelog

.

16/7/2023: RevoltSharp v6.6.4

  • Exposed Conditions class which can now be used by users.

  • Fixed UploadFileType.Emojis to UploadFileType.Emoji.

  • Added RevoltPermissionException which is based on RevoltRestException.

  • Added support for CreateEmojiAsync() with file path or bytes.

16/7/2023: RevoltSharp v6.6.3

  • Added UploadFIleType.Emoji to use when creating emojis which was missing and breaking.

16/7/2023: RevoltSharp v6.6.2

  • Add GetAvatarUrl() for PublicBot.

  • Added a few missing condition checks to some requests.

  • GetOrCreateSavedMessageChannelAsync() was not fetching a cached version if it existed.

  • Fixed Server.GetMembersAsync() not using onlineOnly property.

  • Added global extension for BigInteger.ToInt() which will get the int value or RevoltArgumentException if number is less/more than standard int, this can be used for CreateRoleAsync() and ModifyRoleAsync() where it requires an int.

  • Bunch of code cleanup, formatting and tweaks.

16/7/2023: RevoltSharp v6.6.1

  • Fix create emoji missing not allowed for bots condition.

  • Update query builder to use string.empty and added ToString() override.

  • Fixed debug config LogRestResponseJson throwing exception on startup due to using the wrong json serializer settings.

9/7/2023: RevoltSharp v6.6.0

  • Fixed server default permissions update not being set for cached members.

  • Fixed channel default permissions update not being set due to typo'd name.

  • Added support for Member.GetPermissions(ServerChannel) which will get the permissions true/false if it can access the channel permission types.

8/7/2023: RevoltSharp v6.5.9

  • Renamed User.Privileged to User.IsPrivileged for consistency.

6/7/2023: RevoltSharp v6.5.8

  • Revert back to .net 6 target framework and file scoped namespaces.

5/7/2023: RevoltSharp v6.5.7

  • Fixed Server.TextChannels and Server.VoiceChannels breaking due to cast type or channel collection.

4/7/2023: RevoltSharp v6.5.6

  • Changed target framework to .net 5 for Visual Studio 2019 support.

3/7/2023: RevoltSharp v6.5.4

  • Don't log connection closed premeturely which can cause console spam.

28/6/2023: RevoltSharp v6.5.3

  • Optimized CreatedEntity and Emoji object.

  • Fixed MessageEmbed.Color, EmbedBuilder.Color Embed.Color, MessageMasquerade.Color being marked nullable.

  • Removed Nonce string from Message object.

  • Various other nullable fixes.

27/6/2023: RevoltSharp v6.5.2

  • Added .ToString() override for most core objects such as User.ToString() to get User#0001 or Role.ToString() to get role name.

  • Code cleanup in some places.

  • Made Emoji.CreatedAt nullable for default emojis.

  • Fixed Member.CurrentUser not using display name.

  • Changed User.Name to User.CurrentName for consistency.

27/6/2023: RevoltSharp v6.5.1

  • Fixed Emoji ImageUrl returning invalid url on default emojis.

  • Added try catch to message reactions data for potential issues.

  • Made all downloadable messages fully async that may have previously caused issues.

26/6/2023: RevoltSharp v6.5.0

  • Faster message sending.

  • Users can now use the Const class to get a list of limits that Revolt currently uses.

  • Added a ton of new condition checks and improved a lot more of them.

  • Renamed ServerBanUser back to ServerBan.

  • Added new rest request for GetPublicBotAsync().

  • Added new rest request for GetWebhooksAsync() and extension for TextChannel.

  • Added new rest request for CreateWebhookAsync().

Sending messages with webhooks is still not available yet (Disabled atm) so adding these will be a good start :)

24/6/2023: RevoltSharp v6.4.1

  • Update request logger to add method and fix some methods using the old log code when using LogMode.Warn/Info.

24/6/2023: RevoltSharp v6.4.0

  • Improved support for initial webhook messages.

  • Updated all instances of Url to URL for consistency.

  • Added client mode to Client.Mode.

  • Added Message.Type for User/Bot/Webhook/System.

  • Improved GetMessageAsync() with full author user when using Http mode or if not cached properly.

  • Updated Message Masquerade Avatar to AvatarURL.

  • Updated Logger system to include option for Info/Warn instead of Standard and improved logging functionality.

  • Log messages will now get a proper color including requests if LogRestRequest is true.

  • Added LogMode to config (Default is Warn)

  • Added LogReducedColors to config for accessibility which will show Warn:/Error: in color instead of the entire message.

23/6/2023: RevoltSharp v6.3.8

Added initial message support for Webhooks, this will be shown as Message.IsWebhook. The Message.AuthorId and Message.Author will also be changed to the webhook id and a webhook user with the discriminator 0000 with IsBot and IsWebhook true.

23/6/2023: RevoltSharp v6.3.7

  • Updated default event argument name for updated_properties to properties.

  • Added SelfUserUpdatedProperties and UserUpdatedProperties to Update Updated and Self User Updated events.

  • Added Discriminator and DisplayName to the UserUpdatedProperties.

  • Fixed SelfUser profile bio and background not being updated properly in some cases.

23/6/2023: RevoltSharp v6.3.6

  • Fixed DisplayName clear not being updated in user event

23/6/2023: RevoltSharp v6.3.5

  • Fixed GetMessagesAsync() parameters not being applied.

  • Internal tweaks and improvements.

  • Added QueryBuilder class which you can also use for your own http requests!

QueryBuilder allows you to add query parameters to a url easily with a Add(key, value) and a AddIf(condition true, key, value) and then append the url with QueryBuilder.GetQuery() :)

19/6/2023: RevoltSharp v6.3.3

  • Fixed output response of BanUserAsync() causing exceptions.

18/6/2023: RevoltSharp v6.3.2

  • Fix null ref in server member updated event.

18/6/2023: RevoltSharp v6.3.1

  • Added ChannelCount, TextChannels and VoiceChannels to Server class.

17/6/2023: RevoltSharp v6.2.0

Changes by dogsong

  • Tons of internal tweaks and cleanup.

  • Fixed SelfUser GetDMChannel(), BlockUser() and UnBlockUser() not throwing properly.

  • Improved GetAvatarUrl() to implement optional size and also source enum parameter for Server, User or Default.

16/6/2023: RevoltSharp v6.1.3

  • Improved websocket events, cache and added a few checks to prevent null event objects.

  • GetChannelAsync() will now properly populate the cache if it was missing.

  • GetServerAsync() will now properly populate the cache if it was missing.

  • Fixed some events such as Ready and ServerCreate not setting internal mutual servers for current cached users. Changed by dogsong

  • Fixed SendFileAsync() causing issues on null content.

  • Fixed documentation file paths to relative ones.

14/6/2023: RevoltSharp v6.1.2

  • Fixed API returning duplicate role ids causing issues with the lib.

14/6/2023: RevoltSharp v6.1.1

  • Fixed a member cache bug on message send due to invalid check on event.

14/6/2023: RevoltSharp v6.1.0

  • Split up the built-in command handler into its own package now on NuGet as RevoltSharp.Commands!

  • Added a package icon to both RevoltSharp and RevoltSharp.Commands

  • Client.TryGet User/Role/Server/Ect have now been marked as nullable outputs.

  • More code cleanup and improvements. ‎ Changes by dogsong

  • Cleaned up client exceptions and messages.

  • Added support for cloudflare under attack mode using the CFClearance config option (Used for debugging and testing purposes)

  • Updated format of the User-Agent for http requests.

13/6/2023: RevoltSharp v6.0.5

  • Updated API query error messages on StartAsync() with better messages and warnings.

13/6/2023: RevoltSharp v6.0.4

  • Fixed ServerMemberLeft and GroupUserLeft to remove users by ID with outdated cache objects.

  • Made message author nullable if it's a system/webhook message.

  • Added user flag for Spam.

  • Added throwGetRequest option to Rest.SendRequest for debugging and useability.

  • Improved a few error messages such as including status code for RevoltRestException message, user/bot token check and Revolt API is down.

13/6/2023: RevoltSharp v6.0.3

  • Improved cache get/set when adding/removing server members on events.

  • Improved cache get/set on GetMemberAsync() and GetMembersAsync().

  • Fixed ServerMember causing issues due to invalid user object set check.

11/6/2023: RevoltSharp v6.0.2

  • Added support for DisplayName and Discriminator.

  • Added Name to get either DisplayName or Username.

  • Added Tag to get Username#Discriminator.

10/6/2023: RevoltSharp v6.0.1

  • Code cleanup and optimization.

10/6/2023: RevoltSharp v6.0.0 (Stable)

This is the latest stable build of RevoltSharp enjoy :)

  • Switched API url from revolt dev to revolt main API due to issues and prevent downtime

  • All function methods are now fully documented when using the lib.

  • Fixed a few issues with some methods and better checks.

  • Updated some methods with condition checks better.

  • Tested various methods for issues to ensure stability.

8/6/2023: RevoltSharp v5.8.1

  • Fixed GetMemberAsync() not working.

8/6/2023: RevoltSharp v5.8.0

  • Added check for current user block/unblock and get dm channel function to throw a revolt exception.

  • Changed User BlockUserAsync() and UnBlockUserAsync() to just BlockAsync() and UnBlockAsync().

  • Added TryGet() methods for server, channel, textchannel, voicechannel, dmchannel, groupchannel, emoji and role.

  • Changed all Client GetUser GetChannel method arguments from id to userId/channelId/ect.

  • Fixed GetOrCreateSavedMessageChannel() not working.

  • Added GetOrCreateSavedMessageChannel() to self/current user.

  • Changed Message DeleteMessageAsync() to DeleteAsync().

8/6/2023: RevoltSharp v5.7.1

  • Fixed major issues with send message being broken.

  • Fixed message edit embeds null breaking.

  • Fixed modifymember being broken.

5/6/2023: RevoltSharp v5.7.0

  • Added client event OnLog to implement your own logging methods.

  • Changed LogSeverity to RevoltLogSeverity so it does not conflict with other libraries.

  • Improved client event code for better management.

  • Added downloadable message object to OnMessageUpdated event.

  • Fixed MessageUpdatedProperties and RoleUpdatedProperties not having an Id.

  • Updated CreatedEntity to always have an Id property which can be better managed.

  • Added CreatedAt date property to FileAttachment and ServerBan.

  • Reverted optional default value false breaking some stuff.

5/6/2023: RevoltSharp v5.6.1

  • Added some missing code for rest optionals request causing some methods to fail due to rewrite last patch.

4/6/2023: RevoltSharp v5.6.0

  • Fixed major lib issue of sending messages not working due to a internal revolt beta api issue.

  • Reworked json request serialize/deserialize to properly handle optional properties.

26/5/2023: RevoltSharp v5.5.0

  • Added a bunch of xml comments to most base classes and properties.

  • Removed debug option CheckRestRequest.

  • Fixed bad naming of RevoltVerion :(

  • Added Channels and Emojis list to client to get websocket cache.

  • Fixed a few internal functions and classes being marked as public.

  • Decluttered parts of the lib including the optionals extension.

  • Added support for http function get or create saved message channel for the user/bot account.

  • Changed RevoltRequest interface name to IRevoltRequest.

  • Fixed UploadFileType enum being inside the RevoltRestClient class.

23/5/2023: RevoltSharp v5.4.1

  • Updated MessageUpdatedProperties to make it fit with the Message object by changing Edited to EditedAt and fixing embeds to use proper optionals.

  • Updated RoleUpdatedProperties with fixed permissions value, added role id and createdat date and changes color from string to RevoltColor.

23/5/2023: RevoltSharp v5.4.0

  • Added support for UserPlatformWipe event which can be used by developers to get rid of user data for banned users and also clear the WebSocket cache.

  • Added SavedMessageChannel support for the lib, WebSocket can get the current SaveMessageChannel for the bot if it was created.

  • Updated DMChannel UserId to always use recipents and not fetch from a list all the time.

  • Updated all system channel properties with better names from UserJoinedId -> UserJoinedChannelId.

  • Updated MessageUpdatedProperties with missing message id and created date.

  • Added MutualDMs cache to User object with list of DM channels and fixed HasMutuals too.

  • Updated ModifyChannelAsync() to return the correct channel type casted instead of just Channel.

  • Changed a bunch of rest methods from arrays to readonly collections for better performance and consistancy.

  • Removed nullable annotations and null returns for a bunch of rest methods that should return lists insteads (see above too).

  • Added support for bulk events.

20/5/2023: RevoltSharp v5.3.0

  • Added nullable annotations to a lot of methods and properties for consistency.

  • Fixed permissions in group channels not being updated.

  • Fixed ServerPermissions and ChannelPermissions all value not being set.

  • Fixed server owner not having all permissions by default properly due to above issue.

  • ChannelPermissions will now check the base server permissions to check if it has a permission.

  • Made ServerPermissions.Has(Permission) available to use in the lib.

  • Add pre request checks for empty role list and not allowed for bots.

  • Fixed ModifySelfAsync() not parsing user data response properly causing exception.

  • Fixed ModifyChannelAsync() not parsing channel data response properly causing exception.

  • Fixed some get requests not returning null properly on error.

  • Added rank number option on CreateRoleAsync().

For user accounts

  • Added CreateGroupChannelAsync(), AddUserToGroupChannelAsync() and RemoveUserFromGroupChannelAsync().

15/5/2023: RevoltSharp v5.2.2

  • Added event support for OnMessagesBulkDeleted with channel and list of message ids deleted.

  • Added event support for OnReactionBulkRemoved with emoji channel and downloadable message.

  • Improved emoji events stability and useability.

  • Added Client.RevoltVersion to get the version of revolt used after you run StartAsync().

  • Changed config api url to use the new version that will get the latest updates.

15/5/2023: RevoltSharp v5.2.1

  • Added a bunch more revolt error types for SocketError and RestError.

  • Updated SocketError and RestError with Type for error and for rest requests that are not GET it will also include a permission name with RevoltRestException that you can catch.

  • Added IsMissingPermission bool to RevoltRestException for easy check.

  • Updated CreateTextChannelAsync() and CreateVoiceChannelAsync() to make description optional.

  • Added message text length and user account embeds to SendFileAsync().

15/5/2023: RevoltSharp v5.2.0

  • Added server owner check to AddRoleAsync(), RemoveRole() and ModifyMemberAsync()

  • Added support for AddRolesAsync() and RemoveRolesAsync()

  • Made all options for modify requests not required, ModifyMemberAsync(), ModifyChannelAsync(), content in ModifyMessageAsync() and ModifyRoleAsync()

  • Fixed ModifyMemberAsync(), ModifySelfAsync(), ModifyChannelAsync() and ModifyRoleAsync() not being able to clear some values

  • Added extension method for Invite.DeleteAsync(), this was only used on rest client and server before.

  • Updated invite delete to use inviteCode instead of inviteId.

  • Added rest function GetInviteAsync( inviteCode ) and extension method for server, there was only GetInvitesAsync() before.

10/5/2023: RevoltSharp v5.1.1

  • Added more user references to member object such as mutuals and isblocked.

  • Removed HasBadge() from User object since it's already in the Badges object.

  • Document a bunch more properties and objects.

  • Added GetServerAvatarOrUserAvatarOrDefaultUrl() for Member object.

  • Fixed BotData owner not being named ownerid.

  • Added string GetAvatarUrl() to User object.

  • Renamed UserBadgeTypes and UserFlagTypes to sinular names.

  • Added extra check for Member.GetRole() to make sure the member has the role internally.

8/5/2023: RevoltSharp v5.1.0

  • Added proper UserFlags to User object with Suspended, Deleted and Banned.

  • Added a HasFlag() and HasBadge() to User object.

  • Added badge types for Founder, PlatformModeration, ActiveSupporter, Paw, ReservedRelevantJokeBadge1 and ReservedRelevantJokeBadge2.

  • User updated will now update username, badges and flags.

  • Added Created datetime utc to a bunch of objects like User, Server, Role, ect.

  • Added more config safety checks.

  • Added GetDefaultAvatarUrl() and GetAvatarOrDefaultUrl() for User object.

  • Added GetUrl() to Attachment object which can be used for emoji images, user avatar/banner, server images and various other stuff.

  • Added proper UserStatus with enum values instead of string and its own object.

  • Fixed and improved user status type and IsOnline.

  • Added GetDMChannelAsync() for User

  • Added Deleted and Reported property to Attachment object.

  • Added IsBlocked to User object.

  • Fixed user relationship not being updated.

  • Updated user relationship to use enum type instead of string for None, User, Friend, Outgoing, Incoming, Blocked, BlockedOther.

  • Added BlockUserAsync() and UnBlockUserAsync() to User object.

  • Added extension method for ServerMember IsTimedOut.

  • Added GetDefaultAvatarUrl(), GetServerAvatarUrl() and GetServerAvatarOrDefaultUrl().

  • Added MemberId and Joined date to ServerMember object.

  • Added CurrentName to ServerMember which will get the nickname if not null or the username.

  • Fixed minor issues with http mode for ServerMember and property issues.

  • Added GetIconUrl() and GetBannerUrl() to Server object.

8/5/2023: RevoltSharp v5.0.3

  • Fixed channel constructor being exposed and useable when it shouldn't be.

  • Added a bunch more comments to objects and properties for lib users.

  • Added User object to DMChannel for the current user if using WebSocket.

  • Fixed Downloadable constructor being exposed and changed download function to GetOrDownloadAsync() with nullable return.

  • Added Owner object to GroupChannel aside from OwnerId.

  • Added extra null checks for Client.GetUser() .GetRole() .GetServer() ect just in case.

  • Added Creator User object to Emoji object.

  • Updated MessageInteractions and MessageReply with constructor and made properties readonly.

  • Added Channel property to Invite object and added Channel and Creator (User) to InviteCreated object.

  • Changed ServerSystemMessages to use UserJoinedId instead of UserJoined and added UserJoinedChannel that gets from TextChannel from websocket or null.

7/5/2023: RevoltSharp v5.0.2

  • Update package properties and include docs link on RevoltClient class description and package url.

7/5/2023: RevoltSharp v5.0.0

  • Fixed groupchannel internal recipents being exposed/public.

  • Added nullable attributes to various properties so developers know if a property may be null.

  • Added Server object to Role/ServerMember/Emoji object.

  • Added Owner user object to SelfUser for bots.

  • Fixed Role permissions not being null checked which may cause issues.

  • Added GetOwnerAsync() to Server object which will fetch from cache or rest request.

  • Fixed some cases of RevoltColor being null.

  • Added serverid and server to Message object.

  • Fixed Member.HasMutuals() returning false in some cases.

  • Fixed DMChannel not being exposed/public and could not be casted.

  • Changed DMChannel to use UserId instead of a Recipents list.

  • Removed outdated description for Client.StartAsync() which can now be used in http mode.

  • Fixed issue with StartAsync() for user token.

  • Fixed login/token checks not being used for bot token on StartAsync().

  • Added Client.CurrentUser which can be used after you run StartAsync() to get the current user/bot data.

  • Added Client.OnStarted event with the CurrentUser for a successful login and can be used in http mode.

  • Improved performance for Client.Servers and Client.Users with IReadOnlyCollection instead of ToArray() every time.

  • Added extension methods to RevoltClient for GetDmChannel() GetGroupChannel() GetTextChannel() GetVoiceChannel() and GetRole(), it only had GetChannel()

  • Fixed ReactionAdded and ReactionRemoved events not working for DM and Group channels.

  • Fixed OnEmojiCreated not working.

  • Fixed Client.GetEmoji() returning an empty emoji object if not in cache instead of null.

  • Updated LogWebSocketFull debug option to not use events for UserUpdate, ChannelStartTyping and ChannelStopTyping.

  • Improved updating of permissions in the cache and removed channel role permissions if the role has been deleted.

  • Updated MessageUpdated event with better handling and properties including Server object.

  • Updated ChannelUpdated, RoleUpdated and ServerUpdated with properties changed.

  • Changed ChannelCreated event to be used for only server channels and changed it to use ServerChannel object.

  • Added new event for DMChannelOpened which will trigger when a user first opens up the DM (or manually removes and reopens not) not every time opened.

  • Fixed GroupChannelJoined event not working.

  • Fixed DMChannel last message id not working.

  • Added new ChannelUpdated property for Active (used for DMs)

  • Fixed ServerJoined event not working at all and will cause issues for servers.

All previous versions before 5.0.0 are now defunct.

Last updated