v0.10.0
Update Path
This update includes some breaking changes. Please review the "Changed" section carefully.
Added
- Added static class
KookDebuggerto support outputting debugging information related to Kook.Net's underlying API requests, gateway payloads, rate limiting, and voice logs for interactions with the KOOK server. - Added support for publishing, retrieving, and deleting threads, posts, and replies within thread channels (
IThreadChannel). Also added support for retrieving the default layout (DefaultLayout) and default sort mode (DefaultSortMode) of thread channels. ThreadExtensionsnow includes the extension methodGetJumpUrlto retrieve jump links for thread-related entities.- Added support for retrieving the currently effective gateway intents via
KookSocketClient.GatewayIntents. - Added the error code enum value
KookErrorCode.ThreadContentAuditing. ImageElementandImageElementBuidlernow support theFallbackUrlproperty.- Added support for the
RecordAudiopermission value in server and channel permission enums. - (Experimental Feature) Added support for searching thread topic tags by keyword via
QueryThreadTagsAsync.
Changed
- Changed the enum values of
VoiceQualityto use names that are independent of specific bitrate values. - Moved
Kook.Commands.MessageExtensions.TryExpandCardContenttoKook.MessageExtensions.TryExtractCardContent. IPermissionOverwrite<TTarget>has been changed toIPermissionOverwrite<TTarget, TId>. Now,TTarget Targetrepresents the target entity type for the permission overwrite,TId TargetIdrepresents the type of the target entity's ID, andPermissionOverwriteTarget TargetTypeindicates the type of the target.- For entities or data types returned by the KOOK API or delivered by the gateway, properties of type
DateTimeOffsetwithin interfaces or classes such asIThread,IThreadPost,IThreadReply,IMessage,IGuildUser,IIntimacy,IIntimacyRelation,IInvite,CountModule,Quote, andBoostSubscriptionMetadatanow default to the local machine's time zone.
Fixed
- Fixed issues with methods for adding and removing guild bans failing.
Optimized
- The type for gateway payloads has been changed to
JsonElementto avoid an extra level of boxing. - Gateway payload deserialization now uses asynchronous methods.
- The
Card.Buildmethod now validates that theThemeisInvisibleonly for module types that support borderless cards.
Misc
- Added quick reference documentation for thread-related interfaces.
Full Changelog: v0.9.11...v0.10.0