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