Table of Contents

Upgrade from 10.6.4 to 10.6.6

Important

This version introduces breaking changes and numerous enhancements. Please review the details carefully before upgrading.

Important

We dropped support for .NET 7 in favor of newer features and major improvements in speed and stability.

Warning

This release contains important bug fixes and improvements. We recommend you to upgrade to this version as soon as possible.


What changed?


❕ Breaking Changes

  • DiscordRoleTags: We removed the IsPremiumSubscriber and IsLinkedRole fields due to an overhaul of the tag system. You can now determine the actual type of role by referencing DiscordRole.RoleType. It's not officially returned by Discord, but instead calculated by analyzing the role tags combinations.
  • DiscordEmoji.TryFromName: Additional required parameter bool includeApplication was added to match Discord's changes in handling emoji lookups. This was to account for different emoji types (Unicode, Guild, Application).
  • TryGetMemberAsync method signature change: The return type for TryGetMemberAsync was changed from bool to Task<DiscordMember?> to align with asynchronous patterns and allow for better error handling and member retrieval.
  • ImageTool renamed to MediaTool: This was necessary due to the support of additional media types, like MP3 and OGG, for soundboard functionality.
  • ImageFormat renamed to MediaFormat: This was also necessary for the support of additional media types.
  • DiscordMessage.Components type change: IReadOnlyCollection<DiscordActionRowComponent> was changed to IReadOnlyCollection<DiscordComponent> due to Discord allowing new components not necessarily wrapped in action rows, breaking the previous assumption of a static structure.
  • DiscordAttachment flags renamed: The flag values in AttachmentFlags were prefixed with Is to be consistent with other flag names across the codebase.
  • DiscordFollowupMessageBuilder, DiscordInteractionResponseBuilder, DiscordWebhookBuilder method renaming: The AddMention and AddMentions methods were renamed to WithAllowedMention and WithAllowedMentions for better clarity and consistency.

➕ Additions

Added Entities

Added Events

Added Enums

Added Properties

Added Enum Values

Added Methods

🛠️ Fixes

  • Fixed a rare case where embed fields throw an exception if old embeds are received from Discord
  • Fixed an issue with banning members while providing delete_message_days/delete_message_seconds
  • Fixed a possible parser error
  • Fixed a rare case where paginations on interactions could fail with Message not found
  • Fixed component pagination
  • Fixed an NRE within events that broke bots: Ensured Interaction.Guild falls back to partial guild data when null.
  • Fixed an issue where ApplicationRoleConnectionMetadata had only internal constructors
  • Fixed invalid API routes for UpdateCurrentUserApplicationRoleConnectionAsync and GetCurrentUserApplicationRoleConnectionAsync
  • Fixed max poll duration: Increased from 7 days to 32 days (768 hours) to align with new limits.
  • Fixed poll creation on EditOriginalResponseAsync: Enabled creating polls when the original response is deferred.
  • Fixed a critical NRE in interaction create dispatches
  • Fixed a NRE in audit log processing

⚠️ Removals

  • Removed AutoCompleteRequest and ModalSubmit from ApplicationCommandType due to incorrect implementation.
  • Removed DiscordApplication.Owners. Use DiscordApplication.Members instead.
  • Removed the enum ExplicitContentFilterLevel
  • Removed ApplicationCommandRequireDisCatSharpDeveloperAttribute and RequireDisCatSharpDeveloperAttribute

📚 Documentation


Future Roadmap


DisCatSharp.Voice (On Hold)

We're working on DisCatSharp.Voice which is set to replace the existing DisCatSharp.VoiceNext. It's planned to have better performance, stability and maintainability than its predecessor. Particularly, this will bring back the receiving of incoming audio. Please note that any details are subject to change as development progresses.

Audit Log Functionality Enhancement (On Hold)

We want to revamp how we implement the Discord audit log API. This will enhance the functionality and ease-of-use. The enhancements we are planning are still in the developmental phase and might change.

Caching System Overhaul (Planned)

A major overhaul of our caching system is planned. The goal of this proposed rewrite is to increase reliability, performance and to add flexibility in how data is stored and retrieved. We are still in the cenceptual stage for this.

DisCatSharp.CommandNext Revamp (Proposed)

A complete rewrite of DisCatSharp.CommandsNext is proposed. We want to rewrite this for improved maintainability and for potential performance and usability improvements.


Feedback and Community Engagement

Your input makes DisCatSharp better! We warmly invite you to share feedback, suggestions, or report bugs.

Talking to us helps shape the future of DisCatSharp, ensuring it meets everyones needs and expectations.

  • Join the Conversation: Have ideas or questions? Join our Discord community to discuss features, get help, or just chat with fellow developers.
  • Contribute: Interested in contributing? Check out our GitHub repository to see how you can contribute code, documentation, or report issues.
  • Stay Updated: Follow our news channel on Discord to stay up to date on the latest developments.

Your involvement is invaluable to us, and we look forward to growing and improving DisCatSharp together with you and everyone else!


Contributors