Java wrapper for the popular chat & VOIP service: Discord https://discord.com
APACHE-2.0 License
Bot releases are hidden (Show)
Published by MinnDevelopment over 1 year ago
This release adds support for recent Discord features, such as linked roles and silent messages. We also improved the user experience for shutting down, which should come in handy for anyone building reloadable plugins.
Discord has finally introduced an event for new audit log entries. This can be used for keeping track of all kinds of moderation relevant activity in a guild. However, to receive this event you must have the View Audit Logs permission and enable the GUILD_MODERATION
intent (formerly GUILD_BANS
).
You can now send and receive messages which do not trigger desktop and mobile push notifications. This is done in the client by prefixing a message with @silent
. In JDA you can use setSuppressedNotifications(true)
to achieve the same. Note that @silent
is not the correct way to create these messages with a bot, as it is a client only feature.
You can check the release pull request for more information: discord/discord-api-docs#5910
The shutdown logic has adapted to allow more consistent behavior. We've introduced jda.awaitShutdown()
as a way to allow blocking until all JDA subsystems reach completion. Note that this might take a long time, depending on how long your RestAction queue is at the time.
The recommended way to gracefully shutdown is to define a maximum wait threshold and use it to cancel requests after some time:
// Initating the shutdown, this closes the gateway connection and subsequently closes the requester queue
jda.shutdown();
// Allow at most 10 seconds for remaining requests to finish
if (!jda.awaitShutdown(Duration.ofSeconds(10))) { // returns true if shutdown is graceful, false if timeout exceeded
jda.shutdownNow(); // Cancel all remaining requests, and stop thread-pools
jda.awaitShutdown(); // Wait until shutdown is complete (indefinitely)
}
In order to save CPU time, we make use of conditional variables for all of our wait loops internally. This is much more efficient than using sleep polling, like suggested in the past.
SUPPRESS_NOTIFICATIONS
flag for message by @Mysterious-Dev in https://github.com/DV8FromTheWorld/JDA/pull/2393
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-beta.3...v5.0.0-beta.4
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-beta.4")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-beta.4</version>
</dependency>
Published by MinnDevelopment almost 2 years ago
Small release to fix a few bugs and introduce support for new API features.
Discord is adding support to create stickers with GIFs in the future. This release already covers support for receiving and creating them in advance of the rollout. Note that it will currently not work since the API for GIF stickers has not yet been deployed, in the meantime you will receive an invalid asset error.
You can now use PaginationAction#reverse
on Guild#retrieveAuditLogs
. This allows you to iterate from the oldest entry to the newest one.
You can now use conditional remove operations on SlashCommandData
to remove options and slash commands.
Example:
SlashCommandData command = SlashCommandData.fromData(json); // parsing an existing command from json
command.removeOptions(o -> o.isRequired()); // Removing all required options
Note: You still have to pass this updated command to discord using upsertCommand
or updateCommands
!
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-beta.2...v5.0.0-beta.3
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-beta.3")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-beta.3</version>
</dependency>
Published by MinnDevelopment almost 2 years ago
Small release to fix a few bugs and typing issues.
You can now retrieve and manage the welcome screen of a guild. To modify a welcome screen, you can use Guild#modifyWelcomeScreen:
TextChannel rules = guild.getTextChannelsByName("rules", true).get(0);
ForumChannel help = guild.getForumChannelsByName("help-forum", true).get(0);
guild.modifyWelcomeScreen()
.setDescription("Welcome to our cool guild!")
.setWelcomeChannels(
GuildWelcomeScreen.Channel.of(rules, "Read our rules"),
GuildWelcomeScreen.Channel.of(help, "Ask for help in our forum", Emoji.fromUnicode("U+1F4AC"))
)
.queue();
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-beta.1...v5.0.0-beta.2
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-beta.2")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-beta.2</version>
</dependency>
Published by MinnDevelopment almost 2 years ago
We finally made it 🎉 BETA 🎉 ! This concludes the major rewrites and large breaking changes of JDA version 5. With this release, we feel confident that people can rely on updates no longer requiring major rewrites of their codebases in the foreseeable future (praying to the API gods).
There will likely be some effort made to provide a full migration guide for anyone still stuck on version 4. It is recommended to update to version 5 as soon as possible. Version 4 is officially reaching EOL in the first quarter of 2023, and will stop working soon after due to the gateway version 8 being discontinued.
You can join our discord server, where we have a channel called #jda5-changes with a brief changelog for all the breaking changes.
We've also started accepting donations via Open Collective. Any donation are greatly appreciated.
You can now create NSFW (or age-restricted) commands, which are only usable in age-restricted channels.
Commands.slash("nsfw", "Something nsfw").setNSFW(true)
The implementation for GuildChannel#compareTo
has been adjusted to support comparing channels of different types. This can be used to figure out the order of channels within the channel list. For instance, if you compare a channel to the category it is in, it will be ordered lower than the category.
This also extends to Guild#getChannels
, which now uses the updated compareTo
implementation for ordering. As such, you can also order a sublist of all channels yourself, by using list.sort()
. This even works with thread channels.
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.22...v5.0.0-beta.1
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-beta.1")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-beta.1</version>
</dependency>
Published by MinnDevelopment almost 2 years ago
This is most likely the final alpha release. The current plan is to merge a few more breaking changes, and address some remaining TODOs before finally bumping to beta! Stay tuned.
Discord has introduced new select menu component types, which support selecting mentionable entities like User
/Role
/Channel
. With this release we are introducing a small breaking change to the SelectMenu
type:
StringSelectMenu
is the old select menu, used for custom string choicesEntitySelectMenu
is the new select menu, used for mentionable entitiesAnd you use the StringSelectInteractionEvent
and EntitySelectInteractionEvent
to handle them.
Recently, Discord added a new moderation feature to pause the invites of a guild, including vanity invites. This is usually done using the Pause Invites button in the guild settings.
You can now do this using the GuildManager
via setInvitesDisabled(true)
.
This is rather late, but you can now handle and create scheduled events. To create a scheduled event you can use one of the createScheduledEvent
overloads in Guild
:
createScheduledEvent(name, channel, time)
to create a local event to take place in a specific voice or stage channelcreateScheduledEvent(name, location, startTime, endTime)
to create an external event, such as a concert or similartoString
methods by @freya022 in https://github.com/DV8FromTheWorld/JDA/pull/2273
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.21...v5.0.0-alpha.22
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.22")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.22</version>
</dependency>
Published by MinnDevelopment about 2 years ago
Almost ready for beta. This release changes a few event names and introduces a new interface GenericSessionEvent
. With this, almost every breaking change that we had planned is completed. There will likely only be one more alpha release before bumping to beta.
Events related to the active gateway session / main socket now have a common abstraction called GenericSessionEvent
. We also changed a few event names for better clarity:
Old | New |
---|---|
DisconnectEvent | SessionDisconnectEvent |
ReconnectedEvent | SessionRecreateEvent |
ResumedEvent | SessionResumeEvent |
All the session related events are now in a common package at net.dv8tion.jda.api.events.session
, this also includes some breaking package changes for a few commonly used events like ReadyEvent
.
Additionally, events for voice channels of guild members have been changed slightly. Previously, we provided 3 separate voice channel update events:
Due to the confusing nature of these events, we have decided to instead only provide a single GuildVoiceUpdateEvent. This new event provides the old and new channel, which can each be null to indicate either a leave (null new channel) or join (null old channel).
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.20...v5.0.0-alpha.21
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.21")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.21</version>
</dependency>
Published by MinnDevelopment about 2 years ago
Discord is currently rolling out forums to all community guilds. This release adds support for these channels in JDA.
To use a forum channel, you must create a forum post. Posts are simply public ThreadChannels
with a starter message. To create a post, instead of using the usual createThreadChannel
, you must use createForumPost
:
forum.createForumPost("Post Title Here", new MessageCreateBuilder()
.addContent("# Header\n")
.addContent("This is my first forum post!")
.build()
).queue(post -> {
Message message = post.getMessage();
ThreadChannel thread = post.getThreadChannel();
thread.sendMessage("Followup message").queue();
});
To create such a post, the bot must have Permission.MESSAGE_SEND
in the forum channel. The client refers to this permission as Create Posts.
As of this release, AudioChannel
extends StandardGuildChannel
instead of GuildChannel
. This allows for a lot more features directly on the abstract interface, rather than having to cast down to voice or stage channels.
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.19...v5.0.0-alpha.20
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.20")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.20</version>
</dependency>
Published by MinnDevelopment about 2 years ago
With this release, we are changing a few packages, so you will have to update your imports. There are also a few more breaking changes, some of which are only relevant at runtime!
Discord now supports deleting messages with seconds precision. Allowing you to delete messages which are less than a day old. To update your code, simply add a TimeUnit.DAYS
.
Old:
guild.ban(member, 7, reason).queue();
New:
guild.ban(member, 7, TimeUnit.DAYS).reason(reason).queue();
The default ordering of guild.modifyRolePositions()
has been reversed to align with the order of guild.getRoles()
(descending position). We also added moveBelow
and moveAbove
to allow moving relative to a pivot element.
guild.modifyRolePositions()
.selectPosition(guild.getRoleByBot(guild.getSelfMember())) // select bot role
.moveAbove(modRole) // move it above the mod role
.queue();
You can also now set the parent category of a channel using this feature:
guild.modifyTextChannelPositions()
.selectPosition(channel)
.setCategory(category)
.moveBelow(otherChannel)
.queue();
The new channel package layout is introduced to help reduce clutter of the entities
package. You can find the updated package at net.dv8tion.jda.api.entities.channel. I've written a shell script to help rename packages in your sources:
To update packages of all .java
source files in the src
directory, you can use find
and apply the script on each file:
find src -iname "*.java" -exec ./rename.sh {} \; -print
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.18...v5.0.0-alpha.19
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.19")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.19</version>
</dependency>
Published by MinnDevelopment about 2 years ago
With this release, we are getting very close to the beta release. The big and long awaited message rework introduces a high consistency between all message create and edit endpoints, which means you no longer have to decide between setActionRow
and addActionRow
depending on the specific flavor of endpoint you are using!
The message rework introduces a consistent interface for message requests. We are splitting message edit requests and message create requests into 2 interfaces with different functionality. The new type hierarchy can be seen in this figure:
This results in a few breaking changes.
setActionRows
/addActionRows
-> setComponents
/addComponents
MessageAction
-> MessageCreateAction
MessageAction#tts
-> MessageCreateAction#setTTS
allowedMentions(...)
-> setAllowedMentions(...)
addFile
-> setFiles
/addFiles
/setAttachments
sendFile
/replyFile
-> sendFiles
/replyFiles
override(true)
-> setReplace(true)
You will likely only have to adjust code if you used MessageBuilder
. In this rework, we split this into MessageCreateBuilder
and MessageEditBuilder
, which produce either MessageCreateData
or MessageEditData
. And you will have to provide these data instances instead of Message
instances from now on.
The old approach of having a MessageBuilder
which returns a Message
instance was flawed, in that it would offer a lot of methods which are unusable. Instead, we now separate this by making data classes for each request. Now the types are consistently representing a specific feature set:
Type | Meaning |
---|---|
Message |
Existing messages on discord with an ID |
MessageCreateData |
The data used for a message creation request (HTTP POST) |
MessageEditData |
The data used for a message edit request (HTTP PATCH) |
This allows for a higher level of consistency and clarity. The edit builder by default will only update the fields which are explicitly set. For example, doing new MessageEditBuilder().setContent("hello").build()
will only update the content and leave any embeds or files untouched.
More details are provided in #2187. You can also ask questions in the release discussion.
In an upcoming change to the gateway logic (which is used to receive events), Discord is introducing a new gateway resume url. This new resume URL will be used to move your bot connection to a new zone, allowing for less reconnects and potentially lower ping.
Bots on older version of JDA may run into more reconnects due to the missing handling of this new resume url. Anyone using some kind of proxy gateway, should make sure to also handle this accordingly.
GuildChannel#getJumpUrl
by @DynxstyGIT in https://github.com/DV8FromTheWorld/JDA/pull/2204
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.17...v5.0.0-alpha.18
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.18")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.18</version>
</dependency>
Published by MinnDevelopment about 2 years ago
Fixes some issues regarding the handling of file attachments on messages.
MessageAction
, which would otherwise cause unwanted warningsretainFiles
on interaction message editsrepositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.17")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.17</version>
</dependency>
Published by MinnDevelopment about 2 years ago
This fixes an issue where IMessageEditCallback#editMessage
would not properly send the request to edit the message, and instead defer the edit.
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.16")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.16</version>
</dependency>
Published by MinnDevelopment over 2 years ago
This fixes the ClassCastException
when a voice channel updated.
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.15")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.15</version>
</dependency>
Published by MinnDevelopment over 2 years ago
Breaking changes and text messages in voice channels!
This release introduces the long awaited Text in Voice feature. Now you can use all your message related features in voice channels as well! Automatically works with interactions, messages, reactions, and all other features you could want!
Using command localization, you can provide customized translations for all your commands. Check the example: LocalizationExample
Since the v9 API will be discontinued at the end of 2022, we have upgraded to the newer version 10. This comes with a few breaking changes:
addFile
calls (such as message.editMessage(...).addFile(...)
), will now remove all current attachments on the message. To retain existing attachments, you are now required to also use retainFiles(...)
with the existing attachments on the message.GatewayIntent.MESSAGE_CONTENT
. In order to use certain user-generated content in messages, you will now be required to explicitly enable this privileged intent. This includes:
getContentRaw
, getContentDisplay
, getContentStripped
, and getMentions().getCustomEmojis()
getActionRows
, and getButtons
getAttachments
getEmbeds
You will be presented with a warning, if you try using any of those methods without having the required intent enabled.
Attempting to access message content without GatewayIntent.MESSAGE_CONTENT.
Discord now requires to explicitly enable access to this using the MESSAGE_CONTENT intent.
Useful resources to learn more:
- https://support-dev.discord.com/hc/en-us/articles/4404772028055-Message-Content-Privileged-Intent-FAQ
- https://jda.wiki/using-jda/gateway-intents-and-member-cache-policy/
- https://jda.wiki/using-jda/troubleshooting/#im-getting-closecode4014-disallowed-intents
Or suppress this warning if this is intentional with Message.suppressContentIntentWarning()
We had a lot of repeated concrete type specializations, such as getTextChannel()
, all over library. To address this duplication and to make the interface more consitent, we are introducing the concept of channel unions.
These channel unions, are abstracted types, which provide the same features as their respective name would suggest, while also allowing simple specialization using conversion methods.
An example union would be MessageChannelUnion
, which is used by Message.getChannel()
. This type provides all the methods a normal MessageChannel
would, but also allows you to convert it to a more concrete type:
public void onMessageReceived(MessageReceivedEvent event) {
MessageChannelUnion channel = event.getChannel();
// Use normal message channel features
channel.sendMessage("Hello, I received your message!").queue();
// Specialized handling on concrete types
if (channel.getType() == ChannelType.VOICE) {
VoiceChannel vc = channel.asVoiceChannel(); // easy type conversion, just like casting, but with clear type information
vc.getGuild().getAudioManager().openAudioConnection(vc);
}
}
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.13...v5.0.0-alpha.14
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.14")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.14</version>
</dependency>
Published by MinnDevelopment over 2 years ago
In this release, we have taken some time to rework the handling of Emoji and Stickers! This comes with a lot of breaking changes.
Previously, all custom emoji were called Emote in JDA. This has been changed to be more consistent with the API naming convention of Custom Emoji. In that sense, we renamed Emote to RichCustomEmoji and made various changes all over the API to rename all occurrences of Emote with Emoji.
This also comes with some compatibility improvements! With this change, we now have a uniform representation of all emoji in the library. Every emoji now implements the Emoji interface and can be used interchangeably as such. For instance, the reactions used to have a specific type called ReactionEmote, which is now just replaced with Emoji allowing you to use them in buttons!
public void onMessageReactionAdd(MessageReactionAddEvent event) {
event.getChannel().sendMessage("User reacted")
.setActionRow(Button.primary("buttonid", event.getEmoji())) // <- replacement for getReactionEmote()
.queue();
}
In addition to the changes for emoji, we now have a full support for stickers! Bots can send up to 3 guild stickers in a message (but not in interactions). However, this is limited to only stickers from the same guild, so likely not useful to most bots.
This comes with support for:
Previously, when you did setChunkingFilter(ChunkingFilter.ALL)
, we would always cache every member of the guild for the full runtime. This has been changed now, allowing you to further configure the member cache policy in addition to chunking. Now, to chunk and cache all members of a guild, you can use setChunkingFilter(ChunkingFilter.ALL).setMemberCachePolicy(MemberCachePolicy.ALL)
.
This is a breaking change and affects anyone using ChunkingFilter.
Discord made breaking changes to command permissions (aka Privileges). This means you can no longer configure the privileges of a command on a guild, without using oauth. Consequently, we updated our interface with breaking changes to address this.
Instead of using setDefaultEnabled(..)
on your command and configuring a whitelist/blacklist of roles and users, you now have the ability to configure allowed permissions using setDefaultPermissions(...)
and you can tell discord that a command is guild only with setGuildOnly(true)
.
However, you cannot configure this for individual subcommands, due to the way discord designed them.
Check out the SlashBotExample for some useful examples on how this works!
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.12...v5.0.0-alpha.13
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.13")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.13</version>
</dependency>
Published by MinnDevelopment over 2 years ago
This release contains a few tiny changes to improve the codebase, such as:
Old:
List<TextChannel> channels = message.getMentionedChannels(); // only handles TextChannel mentions
List<User> users = message.getMentionedUsers();
New:
List<GuildChannel> channels = message.getMentions().getChannels(); // handles all channel mentions
List<MessageChannel> messageChannels = message.getMentions().getChannels(MessageChannel.class); // filter by class type
List<User> users = message.getMentions().getUsers();
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.11...v5.0.0-alpha.12
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.12")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.12</version>
</dependency>
Published by DV8FromTheWorld over 2 years ago
This release finally brings out modals! This includes a variety of constructs, but the key ones to be immediately aware of are:
replyModal(modal)
)@Override
public void onSlashCommandInteraction(@Nonnull SlashCommandInteractionEvent event) {
if (event.getName().equals("support")) {
TextInput email = TextInput.create("email", "Email", TextInputStyle.SHORT)
.setPlaceholder("Enter your E-mail")
.setMinLength(10)
.setMaxLength(100) // or setRequiredRange(10, 100)
.build();
TextInput body = TextInput.create("body", "Body", TextInputStyle.PARAGRAPH)
.setPlaceholder("Your concerns go here")
.setMinLength(30)
.setMaxLength(1000)
.build();
Modal modal = Modal.create("support", "Support")
.addActionRows(ActionRow.of(email), ActionRow.of(body))
.build();
event.replyModal(modal).queue();
}
}
@Override
public void onModalInteraction(@Nonnull ModalInteractionEvent event) {
if (event.getModalId().equals("support")) {
String email = event.getValue("email").getAsString();
String body = event.getValue("body").getAsString();
createSupportTicket(email, body);
event.reply("Thanks for your request!").setEphemeral(true).queue();
}
}
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.10...v5.0.0-alpha.11
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.11")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.11</version>
</dependency>
Published by DV8FromTheWorld over 2 years ago
We changed User.fromId
to now return UserSnowflake
instead of User
. This is done to prevent users from attempting code such as User.fromId(123).openPrivateChannel()
which would never work.
With this we also changed some methods to no longer accept raw IDs as long and String. Instead you can now use method(User.fromId(long/String))
, ie. ban(User.fromId(1234))
.
Removed Methods:
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.9...v5.0.0-alpha.10
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.10")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.10</version>
</dependency>
Published by DV8FromTheWorld over 2 years ago
This release is a follow up hotfix release for 5.0.0-alpha.6 that fixes issues caused by a bug in Discord (https://github.com/discord/discord-api-docs/issues/4557). We felt it was faster to put out a baindaid than to wait for the fix from Discord's side.
Check out the patch notes on 5.0.0-alpha.6 for the cool new stuff.
N/A
MESSAGE_CREATE
(Thus MessageReceivedEvent
) is now no longer supported.
MessageReceivedEvent
for an ephemeral message that the bot itself sent.Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.8...v5.0.0-alpha.9
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.9")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.9</version>
</dependency>
Published by DV8FromTheWorld over 2 years ago
This release is a follow up hotfix release for 5.0.0-alpha.6 that wasn't completely mitigated by the 5.0.0-alpha.7 hotfix.
Check out the patch notes on 5.0.0-alpha.6 for the cool new stuff.
N/A
N/A
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.7...v5.0.0-alpha.8
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.8")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.8</version>
</dependency>
Published by DV8FromTheWorld over 2 years ago
This release is a hotfix release for 5.0.0-alpha.6. Check out the patch notes on that version for the cool stuff.
N/A
N/A
Full Changelog: https://github.com/DV8FromTheWorld/JDA/compare/v5.0.0-alpha.6...v5.0.0-alpha.7
repositories {
mavenCentral()
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.7")
}
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-alpha.7</version>
</dependency>