Discord4J is a fast, powerful, unopinionated, reactive library to enable quick and easy development of Discord bots for Java, Kotlin, and other JVM languages using the official Discord Bot API.
Closed issues: Milestone Commits: https://github.com/Discord4J/Discord4J/compare/3.2.5...3.2.6
ClientActivity#custom
to set a bot custom statusClientActivity#withState
to include extra information to other activity typesActivity#getName
will return the custom status if presentThanks to our contributors and collaborators involved in this release: @Azn9 @Doc94
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:
EmbedCreateSpec.Builder
from existing EmbedData
(#1137)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:
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: https://github.com/Discord4J/Discord4J/compare/3.2.4...3.2.5
IntentSet.nonPrivileged()
GatewayDiscordClient client = DiscordClient.create(System.getenv("token"))
.gateway()
.setEnabledIntents(IntentSet.nonPrivileged().or(IntentSet.of(MESSAGE_CONTENT)))
.login()
.block();
discord4j-oauth2
to your dependencies and check out our examples
ScheduledEvent
MappingStoreService
to the new APISelectiveStoreLayout
and StoreFlag
abstractionsGuildCommandRegistrar
and GlobalCommandRegistrar
(Example)
ActionRow#withAddedComponent
and withRemovedComponent
deleteMessageSeconds
in BanQuerySpec
(#1146)rateLimitPerUser
to all supported channelsBanQuerySpec#deleteMessageDays
: check #1146RestGuild#modifyOwnNickname
: switch to modifyCurrentMember
Message#suppressEmbeds
: to be removed (#1138)Permission.MANAGE_EMOJIS_AND_STICKERS
: for MANAGE_GUILD_EXPRESSIONS
(#1141)AutoModActionExecutedEvent
accessors (#1145)Thanks to all contributors and collaborators involved in this release! @indyteo @Doc94 @kashike @Gregory-Widmer @j0rdanit0 @Azn9
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 https://github.com/Discord4J/Discord4J/compare/b058afee1ac9397cf0d0a65009949c5fe91eceb0...62b2abf9ee82c9a314299b4e501408545e04445f (14 commits)
Branch diff up to this point (3.2.x vs 3.3.x): https://github.com/Discord4J/Discord4J/compare/1cbcf4190c05b20e54389307018471e95393f421...62b2abf9ee82c9a314299b4e501408545e04445f (107 commits)
GuildMessageChannel
like getCategoryId
, you might need to migrate types
CategorizableChannel
and others in GuildChannel
, check #960 for detailsGatewayDataUpdater
: onStageInstanceCreate, onStageInstanceUpdate, onStageInstanceDeleteDataAccessor
: getStageInstanceByChannelIdIf 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:
Discord4J v3.2.4 is now available on Maven Central with bugfixes, new features and improvements. This is a recommended upgrade to all v3.2 users.
Voice module users must use this version or newer to properly connect to voice servers.
Stable branch: 3.2.x Closed issues: Milestone Full Changelog: https://github.com/Discord4J/Discord4J/compare/3.2.3...3.2.4
Thanks to all contributors and collaborators involved in this release @Doc94 @dominoxp @j0rdanit0 @NovaFox161 @skykatik @superbob
Discord4J v3.2.3 is now available on Maven Central. We recommend this upgrade to all 3.2.x users as it includes multiple fixes and new features.
Stable branch: 3.2.x Closed issues: Milestone Commits: https://github.com/Discord4J/Discord4J/compare/3.2.2...3.2.3
createInteractionResponse
f344ef2bfc1bfe4926d134a7a2e4b2767a3bd2d2GuildMemberUpdate
#1066Role#getIconUrl
and Role#getUnicodeEmoji
Embed.Type
for article and GIFV #1075UnknownChannel
entity, allowing access to underlying ChannelData
structure 454d9c126167e4b5d7a6c98ce6008de8fd257786
Guild#getChannels
TweelNaclFast
class to common module: fix issues due to duplicate classRouteUtils
under Android platform #1067Member#getEffectiveAvatarUrl
#1065VoiceStates
for moved users under new stores #1070User#getBannerUrl
calling an incorrect method #1069Integration#isEnabled
as Discord now treats this field as optional #1072WebhookService#executeWebhook
response type if wait = falsethen
operator over cast
in Webhook#execute
Mono<Message>
Thanks to all contributors and collaborators involved in this release @skykatik @NovaFox161 @Doc94 @dominoxp
Discord4J 3.2.2 is now available on Maven Central, adding support for modal interactions, multiple new features and some bug fixes.
Stable branch: 3.2.x Closed issues: Milestone Commits: https://github.com/Discord4J/Discord4J/compare/3.2.1...3.2.2
Member#edit
: communicationDisabledUntil
Interaction#getUserLocale
and Interaction#getGuildLocale
getAttachments
in the resolved interaction objectApplicationCommandOption.Type#ATTACHMENT
(type 11)Guild#getRegionId
Thanks to all contributors and collaborators involved in this release @Doc94 @brielmayer @NovaFox161 @AnthonySkoury
Discord4J 3.2.1 is now available on Maven Central, including bug fixes and new features like autocomplete interactions and support for text in voice channels, among others.
InteractionCreateEvent
class to use methods like deferReply
, reply
, etc. You'll need to migrate the type to DeferrableInteractionEvent
due to the implementation of autocomplete interactions in #1033. Check the linked issue for details.Webhook
#1026getResolvedMessage
and getResolvedUser
getAllowedChannelTypes
PermissionOverwrite#getData
#1024Guild#createCategory
8bd22e5117c496b43c105ef3455f07f8a7cce737 #1030AuditLogEntry#getChange
#1037GatewayDataUpdater#onMessageCreate
#1041Thanks to all contributors and collaborators involved in this release @skykatik @Alex1304 @j0rdanit0 @napstr @Doc94 @NovaFox161 @darichey @danthonywalker
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.
resolved
objectsOur entity cache (named Store
in D4J) has been reworked and abstracted to enable more flexible implementations that can go beyond a fixed 9-Store scheme. A new default in-memory Store
is provided and previous implementations are still compatible. Thanks a lot to @Alex1304 for designing and contributing this key feature for future performance improvements.
Deeper org.immutables library usage, improving our deserialization process to reduce memory usage.
Immutable Specs are now available in Discord4J, enabling more ways of working with API requests through Core module: easier templating, builders and Mono so you can organize your bot code to your liking. This is a very new feature so we expect to get feedback from you to make it better. Older Spec API (based on Consumer
) is still available for gradual migration.
Check our docs page for Specs for more details.
A major release let us fix how to work better with audit logs in D4J, requiring some API changes.
We can get the most of Reactor v2020.x changes:
Sinks/EmitResult
API for sending signals programmaticallyRetrySpec
Discord4J v3.3 will soon start development to support threads and improve support on stage channels, features that require additional API changes.
We have a great contribution to support OAuth2 as a module in D4J from @cottoncammy, unfortunately we couldn't add it to v3.2.0 on time without affecting the planned scope. Our goal is to merge it to v3.3.x branch after threads are settled in the D4J API.
Deeper involvement in our Documentation project is planned, providing more how-to guides and sections to quickly implement most common patterns. We'll make use of the Diataxis framework to organize our articles.
We detected places where improvements can be made after a better understanding of Reactor as a runtime, like a more compact gateway implementation that can work better with back-pressure, mainly for standalone use cases. We would like to explore these in the upcoming releases.
As we remove roadblocks like improving the performance of D4J handling an initial storm of payloads in a distributed bot, we want to spend some time building Store/Connect project implementations that can work more efficiently at large scale.
getReply
, editReply
, deleteReply
, createFollowup
, editFollowup
, deleteFollowup
deferReply
and deferEdit
over acknowledge
@TheNumberOne @qwbarch @Shadorc @Alex1304 @j0rdanit0 @napstr @NovaFox161 @skykatik @HunHage @darichey @YelsewB @Krakenied @Masterzach32 @Azn9 @keltrycroft @quanticc and everyone from the 3.1.x series changes that were included in this release:
Discord4J 3.1.8 is now available on Maven Central. We recommend this upgrade to all 3.1.x users, adds support for context menus, includes many bugfixes along with an interactions API change.
Previous | Current |
---|---|
SlashCommandEvent | ChatInputInteractionEvent |
ComponentInteractEvent | ComponentInteractionEvent |
ButtonInteractEvent | ButtonInteractionEvent |
SelectMenuInteractEvent | SelectMenuInteractionEvent |
Thanks to our contributors, collaborators and sponsors who helped in this release! @Lukellmann @Alex1304 @darichey @skykatik @Sophon96 @NovaFox161 @WeeskyBDW