Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: Discord4J/Discord4J

v3.3.0

19 Oct 18:50
aed6b6b

Choose a tag to compare

A new major release of Discord4J is now available for general usage, built from months of feedback, ideas and contributions from small and large bot owners alike. We'd like to thank all collaborators, contributors, GitHub sponsors and users working with us towards this release.

Major releases allow us to reshape some architectural concepts required to either match Discord evolution as a platform, or new features we want to implement, so they come with migration steps that are detailed in our docs page for Migration Notes and API changes.

What's new in v3.3

Discord features

  • Discord API v10, providing richer error messages and mandatory gateway intents
  • Support for the new Channel Structure
  • Better spec methods to support type hierarchies like working with #1009 Discord4J/discord-json#128
  • Support for new Components to Modals and Messages

Changelog

3.3.0

  • #1317 Support for Modal Label Component
  • #1320 More SelectMenu in Modals and TextDisplay Modal Support
  • #1322 Support File Upload and Resolved Data in Modals
  • #1323 Support self BOT member edit
  • #1325 Support more data for ResolvedChannel
  • #1324 Support expiresAt for Invite
  • #1319 Add Role Colors
  • #1307 Abstract Reaction Events
  • 6298baa Add more Guild.GuildFeature
  • d9f8732 Deprecate Guild#delete not allowed to bots
  • 50445c6 Add PartialMember.Flag.AUTOMOD_QUARANTINED_GUILD_TAG
  • 19e0095 Add ActionType#AUTO_MODERATION_QUARANTINE_USER
  • 244c4cf Support for invite flags
  • c8fd951 Fix Incorrect Guild Member Avatar format
  • #1321 Support new Pinned Messages behaviour
  • #1328 Fix missing public modifier for UnfurledMediaItem.LoadingState

v3.3.0-RC3

  • Support for Components V2
  • Fix missing Guild Forum Channel to Legacy Store Layout (#1309)
  • Fix OnboardingPromptOption fails when discord send an invalid Emoji (#1312)
  • Fix AllowedMentions when starting a thread in Spec (#1315)
  • Fix Store member update not update all the available fields (#1318)

v3.3.0-RC2

  • ReactionEmoji was removed, please refer to the RC release to see the replacement

v3.3.0-M2

  • Implement forum channels (#1126)
  • Stage channels and instances (#1021)
  • Allow populating EmbedCreateSpec.Builder from existing EmbedData (#1137)
  • Migrate to reactor.util.retry.Retry to be compatible with future Reactor versions (#1128)

v3.3.0-M1

  • A new channel hierarchy #960 is required to support threads #958
  • Better spec methods to support type hierarchies like working with #1009 Discord4J/discord-json#128
  • Text methods in voice channels
  • Behaviour changes for the channel structure, please check the M1 release for more info

💜 Contributors

Many thanks to
@Alex1304 @Azn9 @Doc94 @dominoxp @EasternGamer @gmisiurny @Gregory-Widmer @HappyHacker123 @jasonmokk @kashike @mennafabio @quanticc @rfresh2 @skykatik @sss-ryun and everyone in the Discord Server for all the help in this release.

v3.3.0-RC3

26 Aug 13:54
ee08357

Choose a tag to compare

v3.3.0-RC3 Pre-release
Pre-release

Discord4J v3.3.0-RC3 is the 3nd release-candidate version supporting most if not all latest Discord features. It is available on Maven Central. The RC2 was expected to be the last before v3.3.0 but the current changes in discord about components and modals require make a few RC before can full release v3.3.0.

Includes all changes from v3.2.9:

  • Components V2
  • Minor Fixes

🐞 Bug fixes

  • Fix missing Guild Forum Channel to Legacy Store Layout (#1309)
  • Fix OnboardingPromptOption fails when discord send an invalid Emoji (#1312)
  • Fix AllowedMentions when starting a thread in Spec (#1315)
  • Fix Store member update not update all the available fields (#1318)

If you've been using 3.2.x branch, feel free to try it as migration should be quite simple.

But if you hit any problem or discover something that could be added here, please create a GitHub issue, discussion or join our support server and let us know:

Support Server Invite

💜 Contributors

Thanks to all contributors and collaborators involved in this release.
@Azn9 @Doc94 @dominoxp @Gregory-Widmer

v3.2.9

26 Aug 13:37
2755699

Choose a tag to compare

Discord4J v3.2.9

Discord4J v3.2.9 is now available on Maven Central with bugfixes, new features and improvements. This is a recommended upgrade to all v3.2 users.

Commits: 3.2.8...3.2.9

Important

This release only contains fixs and minor improvements for 3.2.x, please refert to 3.3.x versions instead for new features.

⭐️ New features

  • Add support for make Create/Edit Message Spec include the CV2 flag if can (#1305)

🐞 Bug fixes

  • Fix bad bounded type parameters in Container and Section (#1303)
  • Fix in Webhook edit not working with Components V2 (#1304)
  • Fix RestChannel#createMessage using a deprecated builder method and failing

⚠️ Deprecations

  • TextInput#label deprecated by discord (#1316)

💜 Contributors

Thanks to all contributors and collaborators involved in this release.
@Azn9 @Doc94

v3.3.0-RC2

29 Apr 16:50
eba0dcd

Choose a tag to compare

v3.3.0-RC2 Pre-release
Pre-release

Discord4J v3.3.0-M2 is the 2nd release-candidate version supporting most if not all latest Discord features. It is available on Maven Central. We also expect this to be the last one before v3.3.0.

Includes all changes from v3.2.8:

  • Components V2
  • Application Emoji
  • Application Subscriptions
  • SoundboardSound
  • Monetization and SKU
  • Onboarding

⚠️ Update considerations

  • ReactionEmoji was removed
    • Emoji was created in replace of the ReactionEmoji
    • All the static methods from ReactionEmoji was ported in Emoji
    • All inner classes in ReactionEmoji like ReactionEmoji.Unicode are a separate class
      • CustomEmoji for all custom emoji and the base for ApplicationEmoji and GuildEmoji
      • UnicodeEmoji for all the unicode emoji
      • All this classes has a of method for get an intance of that based in the static methods provided in Emoji

If you've been using 3.2.x branch, feel free to try it as migration should be quite simple.

But if you hit any problem or discover something that could be added here, please create a GitHub issue, discussion or join our support server and let us know:

Support Server Invite

v3.2.8

27 Apr 01:10
ea328bd

Choose a tag to compare

Discord4J v3.2.8

Discord4J v3.2.8 is now available on Maven Central with bugfixes, new features and improvements. This is a recommended upgrade to all v3.2 users.

Commits: 3.2.7...3.2.8

Important

This release is intended to be the last one with features for 3.2.x, please refert to 3.3.x versions instead.

⚠️ Update considerations

  • Access to the conent of message without MESSAGE_CONTENT intent
    • This change aligns with Discord's current requirements regarding message content access and aims to avoid confusion caused by an empty content return.
    • For avoid an UnsupportedOperationException please make sure you have the MESSAGE_CONTENT intent
  • ApplicationInfo#getOwnerId now returns an Optional
  • ResolvedChannel#getName and ResolvedChannel#getEffectivePermissions are now Optional
  • RestGuild#modifyChannelPositions now return Void and not RoleData
  • GuildService#modifyGuildChannelPositions now return Void and not RoleData

⭐️ New features

  • Add SuperReactions (Burst) (#1161)
    • Reaction now include methods to identify burst reactions
    • Added ReactionCountDetails for the count details in reactions
    • Add burst/type fields for MessageReaction events (#1214)
  • Add TeamMemberRole for Teams (#1167)
  • Improvements Guild Features from raw String to EnumSet (#1207)
  • Add support for user-installed applications (#1183)
  • Add support for Avatar Decoration for User and Member (#1234)
  • Add support for Bulk Ban to Guild (#1212)
  • Add support for Components V2 (#1294)
  • Add support for Polls (#1222)
    • Add support for add poll in InteractionReplyEditSpec (#1284)
  • Add support for the Guild Resource Navigation (#1197)
  • Add support for default values in SelectMenus (#1163)
  • Add OptionKey for AutoMod and Integrations (#1166)
  • Add support for Edit Current Application (#1164)
  • Add OptionKey for Application Id (#1208)
  • Add ActionType for Threads/Application/Monetization AuditLog Events (#1209)
  • Add ActionType for Onboarding and Guide (#1213)
  • Add getUser method to Interaction events (#1217)
  • Add news Message.Type for INCIDENT/PURCHASE (#1224)
    • Add isDeletable method to Message.Type for allow users know if that type can be deleted
  • Add isEditable to PartialMember.Flag for allow user know if that flag can be added/removed (#1276)
  • Add Member Profile Actions for AutoMod (#1221)
  • Add shortcut methods for ChatInputInteractionEvent to get option values (#1226)
  • Add new Permissions
    • Permission#USE_EXTERNAL_APPS (#1233)
    • Permission#CREATE_GUILD_EXPRESSIONS and Permission#CREATE_EVENTS (#1177)
  • Add missing fields in ApplicationInfo (#1236)
  • Add support for "thread_name" and "thread_id" in webhook execution and message actions (#1232)
  • Add support for the enforce_nonce parameter on message creation (#1235)
  • Add support for monetization endpoints, SKU and entitlements (#1184)
  • Add method for get Avatar in ResolvedMember (#1251)
  • Add Onboarding Support (#1231)
  • Add support for the new premium button style (#1240)
  • Add support for reason in Role/Channel change position (#1247)
  • Add support for Application Role Connection Metadata (#1238)
  • Add support for Application Emoji (#1252)
  • Add support for get Voice State using REST endpoints (#1257)
  • Add support for get StickerPack by ID (#1259)
  • Add support for get role from Guild using REST (#1265)
  • Add support for Guild Member Banner (#1290)
  • Add PartialMember.Flag for id 4,5,6,7,9 (#1286)
  • Add support for Recurrence Rule in ScheduledEvent (#1266)
  • Add support for linked role mention (#1285)
  • Add support for stickers and flags in Message/Webhook create request (#1272)
  • Add support for Message Forward (#1283)
  • Add support for Subscriptions (#1288)
  • Add support for SoundboardSound (#1289)
  • Update retrieve limits for guilds and guild members (#1275)

🐞 Bug fixes

  • Fix unsigned long printing in requests (#1129)
  • Fix code example for Modals (#1170)
  • Fix scope of dependency com.discord4j:stores-api (#1201)
  • Fix inconsistence in Role/Channel position modification request (#1237)
  • Fix ReactionEmoji.Custom name can be null (#1244)
  • Fix ConcurrentModification for WrappedGuildData#unwrap in store (#1271)
  • Fix nullable messageAuthorId for Reaction Add Event (#1274)
  • Fix NullPointerException in Entitlement#getEndsAt (b16d69a)

⚠️ Deprecations

  • Guild#getFeatures in favor of Guild#getGuildFeatures (#1207)
  • Routes#NITRO_STICKER_PACKS_GET in favor of Routes#STICKER_PACKS_GET (#1219)
  • ApplicationInfo#requireCodeGrant in favor of ApplicationInfo#botRequiresCodeGrant (#1236)
  • ApplicationInfo#isPublic in favor of ApplicationInfo#isBotPublic (#1236)
  • IntegrationApplication#getSummary in favor of IntegrationApplication#getDescription (#1277)

🔨 Dependency upgrades

💜 Contributors

Thanks to all contributors and collaborators involved in this release.
@Alex1304 @Azn9 @Doc94 @dominoxp @EasternGamer @gmisiurny @Gregory-Widmer @HappyHacker123 @jasonmokk @mennafabio @rfresh2 @sss-ryun

3.2.7

16 Nov 12:13
501ec30

Choose a tag to compare

Discord4J v3.2.7

Commits: 3.2.6...3.2.7

Important

This release only includes a change related to voice encryption, as Discord's requirements will change on November 18th.
You NEED to update to this release if you're currently using 3.2.6 and use the voice connection, or else it will stop working!

If you don't need voice, or are using either 3.2.7-SNAPSHOT or 3.3.0-SNAPSHOT, then you only need to refresh your dependencies, the snapshot versions already contain this change.

⭐️ New features

v3.2.6

09 Sep 14:16

Choose a tag to compare

Discord4J v3.2.6

Closed issues: Milestone
Commits: 3.2.5...3.2.6

⭐️ New features

  • Add support for setting custom activities 7613e3a
    • ClientActivity#custom to set a bot custom status
    • ClientActivity#withState to include extra information to other activity types
    • Activity#getName will return the custom status if present
  • Add getDurationSeconds, getWaveform and getFlags to Attachment #1156
  • Add ReactionAddEvent#getMessageAuthorId method #1157
  • Implement Flags in Role #1160

🐞 Bug fixes

  • Fix voice moves causing invalid session if done in quick succession 884a981
  • Fix unmapped integration create/update/delete events #1158
  • Fix member getDisplayName returning incorrect value 1a8e6ae
  • Fix #1155 and support missing Scheduled event features fa81c5b
  • Fix LocalStoreLayout using wrong type on message nonce field b8b955f

💜 Contributors

Thanks to our contributors and collaborators involved in this release: @Azn9 @Doc94

v3.3.0-M2

16 Jun 03:23

Choose a tag to compare

v3.3.0-M2 Pre-release
Pre-release

Discord4J v3.3.0-M2 is the 2nd pre-release version supporting most if not all latest Discord features. It is available on Maven Central. We also expect this to be the last one before v3.3.0.

Milestone: 3.3.0-M2

Includes all changes from v3.2.5:

  • OAuth2 module
  • New username system
  • Scheduled events
  • Combined or partial store backends
  • and more bug fixes and improvements

🚀⭐️ New features in this branch

  • Implement forum channels (#1126)
  • Stage channels and instances (#1021)
  • Allow populating EmbedCreateSpec.Builder from existing EmbedData (#1137)

⚠️ API or behavior changes

  • Migrate to reactor.util.retry.Retry to be compatible with future Reactor versions (#1128)
    • If you used ResponseFunction.retryWhen(retryFactory), switch to ResponseFunction.retryWhen(Retry.withThrowable(retryFactory))

If you've been using 3.2.x branch, feel free to try it as migration should be quite simple.

But if you hit any problem or discover something that could be added here, please create a GitHub issue, discussion or join our support server and let us know:

Support Server Invite

v3.2.5

16 Jun 03:08

Choose a tag to compare

Discord4J v3.2.5 is now available on Maven Central. Includes many bugfixes, improvements, new API and Discord features supported as well as one behavior change.

Stable branch: 3.2.x
Closed issues: Milestone
Full Changelog: 3.2.4...3.2.5

⚠️ Behavior change

  • Exclude message content intent from IntentSet.nonPrivileged()
    • Relevant for verified bots only, if your bot is unverified and under 100 guilds this change doesn't affect you
    • Since this is our default setting, if you didn't previously set intents, make sure to switch to the following set and keep previous behavior:
GatewayDiscordClient client = DiscordClient.create(System.getenv("token"))
        .gateway()
        .setEnabledIntents(IntentSet.nonPrivileged().or(IntentSet.of(MESSAGE_CONTENT)))
        .login()
        .block();

⭐️ New features

  • Add support for the new username system (#1147)
  • Add OAuth2 module (#1083)
    • Allowing you to support new command permissions system
    • Fetching user connections
    • Advanced bot authorization and webhooks
    • Use it by adding discord4j-oauth2 to your dependencies and check out our examples
  • Implement guild scheduled events (#1134)
    • New event payloads, ScheduledEvent
  • Support partial or multiple store backends (#1152)
    • Filling the role of our legacy MappingStoreService to the new API
    • SelectiveStoreLayout and StoreFlag abstractions
    • Can disable parts of the caching system or combine backends
  • Add GuildCommandRegistrar and GlobalCommandRegistrar (Example)
  • Add ActionRow#withAddedComponent and withRemovedComponent
  • Support deleteMessageSeconds in BanQuerySpec (#1146)
  • Implement fields for raid mention and safety alerts (#1148)
  • Add rateLimitPerUser to all supported channels
  • Implement Application Flags (#1131)

⚠️ Deprecations

  • BanQuerySpec#deleteMessageDays: check #1146
  • RestGuild#modifyOwnNickname: switch to modifyCurrentMember
  • Message#suppressEmbeds: to be removed (#1138)
  • Permission.MANAGE_EMOJIS_AND_STICKERS: for MANAGE_GUILD_EXPRESSIONS (#1141)

🚀 Enhancements

  • Update available permissions (#1141) (#1151)
  • Update message flags and types (#1142)
  • Update system channel flags
  • Ignore event type GUILD_JOIN_REQUEST_UPDATE and stop spamming log.warn on future unsupported events

🐞 Bug fixes

  • Propagate request cancellation to HttpClient (#1153)
    • Fix potential leaks due to unprocessed responses after a cancellation
  • Return proper values in AutoModActionExecutedEvent accessors (#1145)
  • Throw proper exception from AuditLogEntry.getResponsibleUser if it originated from a gateway event (#1136)
  • Fix wrong variable name in GetAutoModRuleByIdAction (#1127)

🔨 Dependency upgrades

💜 Contributors

Thanks to all contributors and collaborators involved in this release!
@indyteo @Doc94 @kashike @Gregory-Widmer @j0rdanit0 @Azn9

v3.3.0-M1

17 Apr 05:37

Choose a tag to compare

v3.3.0-M1 Pre-release
Pre-release

Discord4J v3.3.0-M1 is a pre-release version that aims to support the latest Discord features. It is available on Maven Central and if you've been using 3.3 snapshots until now, it means a point of stability within the branch, before all remaining features are added.

Milestone: 3.3.0-M1

Includes forward-merged changes from: v3.2.1 v3.2.2 v3.2.3 v3.2.4

As well as changes between b058afe...62b2abf (14 commits)

Branch diff up to this point (3.2.x vs 3.3.x): 1cbcf41...62b2abf (107 commits)

🚀⭐️ Notable features

⚠️ API or behavior changes

  • If you used some methods in GuildMessageChannel like getCategoryId, you might need to migrate types
    • Some methods are now in CategorizableChannel and others in GuildChannel, check #960 for details
  • After #1021 if you use custom Stores, you need to implement these when migrating to 3.3.0
    • Added to GatewayDataUpdater: onStageInstanceCreate, onStageInstanceUpdate, onStageInstanceDelete
    • Added to DataAccessor: getStageInstanceByChannelId
  • Replace TextChannel with MessageChannel in MessageBulkDeleteEvent #1089

If you've been using 3.2.x branch, feel free to try it as migration should be quite simple.

and if you hit any problem or discover something that could be added here, please create a GitHub issue, discussion or join our support server and let us know:

Support Server Invite