Update dependency net.dv8tion:JDA to v5.0.0-beta.6 #20
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
5.0.0-alpha.12
->5.0.0-beta.6
Release Notes
DV8FromTheWorld/JDA
v5.0.0-beta.6
: | Messages in Stage ChannelsOverview
This release adds support for messages and interactions inside stage channels.
New Features
Changes
Bug Fixes
Full Changelog: discord-jda/JDA@v5.0.0-beta.5...v5.0.0-beta.6
Installation
Gradle
Maven
v5.0.0-beta.5
: | Hotfix voice connection issuesOverview
This is a minor release with some important bug fixes. All bots relying on voice connections should apply this update as soon as possible.
Changes
Bug Fixes
Full Changelog: discord-jda/JDA@v5.0.0-beta.4...v5.0.0-beta.5
Installation
Gradle
Maven
v5.0.0-beta.4
: | Audit Log Events and Silent MessagesOverview
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.
Add GuildAuditLogEntryCreateEvent (#2380)
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 (formerlyGUILD_BANS
).Silent Messages (#2392)
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 usesetSuppressedNotifications(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
Await Shutdown (#2269)
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:
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.
New Features
SUPPRESS_NOTIFICATIONS
flag for message by @Mysterious-Dev in https://github.com/DV8FromTheWorld/JDA/pull/2393Changes
Full Changelog: discord-jda/JDA@v5.0.0-beta.3...v5.0.0-beta.4
Installation
Gradle
Maven
v5.0.0-beta.3
Overview
Small release to fix a few bugs and introduce support for new API features.
GIF Sticker Support
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.
Reverse Audit-Log Iteration
You can now use
PaginationAction#reverse
onGuild#retrieveAuditLogs
. This allows you to iterate from the oldest entry to the newest one.Removing Options/Subcommands from SlashCommands
You can now use conditional remove operations on
SlashCommandData
to remove options and slash commands.Example:
Note: You still have to pass this updated command to discord using
upsertCommand
orupdateCommands
!New Features
Changes
Bug Fixes
Full Changelog: discord-jda/JDA@v5.0.0-beta.2...v5.0.0-beta.3
Installation
Gradle
Maven
v5.0.0-beta.2
Overview
Small release to fix a few bugs and typing issues.
Support for Welcome Screens (#2264 / #1989)
You can now retrieve and manage the welcome screen of a guild. To modify a welcome screen, you can use Guild#modifyWelcomeScreen:
New Features
Changes
Bug Fixes
Full Changelog: discord-jda/JDA@v5.0.0-beta.1...v5.0.0-beta.2
Installation
Gradle
Maven
v5.0.0-beta.1
: | Time to updateOverview
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.
Age-Restricted Commands (#2325)
You can now create NSFW (or age-restricted) commands, which are only usable in age-restricted channels.
Channel Ordering (#2320)
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 updatedcompareTo
implementation for ordering. As such, you can also order a sublist of all channels yourself, by usinglist.sort()
. This even works with thread channels.New Features
Changes
Bug Fixes
Full Changelog: discord-jda/JDA@v5.0.0-alpha.22...v5.0.0-beta.1
Installation
Gradle
Maven
v5.0.0-alpha.22
Overview
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.
Implement new select menus (#2287)
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 theSelectMenu
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
andEntitySelectInteractionEvent
to handle them.Ability to disable/pause invites of a guild (#2222)
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
viasetInvitesDisabled(true)
.Scheduled Events (#2047)
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 inGuild
: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 similarNew Features
Changes
toString
methods by @freya022 in https://github.com/DV8FromTheWorld/JDA/pull/2273Bug Fixes
Full Changelog: discord-jda/JDA@v5.0.0-alpha.21...v5.0.0-alpha.22
Installation
Gradle
Maven
v5.0.0-alpha.21
: | Small Event ChangesOverview
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.Event Changes (#1952)
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: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 likeReadyEvent
.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).
Changes
Bug Fixes
Full Changelog: discord-jda/JDA@v5.0.0-alpha.20...v5.0.0-alpha.21
Installation
Gradle
Maven
v5.0.0-alpha.20
: | Forum channel supportOverview
Discord is currently rolling out forums to all community guilds. This release adds support for these channels in JDA.
Forum support (#2184)
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 usualcreateThreadChannel
, you must usecreateForumPost
: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.AudioChannel improvements (#2252)
As of this release,
AudioChannel
extendsStandardGuildChannel
instead ofGuildChannel
. This allows for a lot more features directly on the abstract interface, rather than having to cast down to voice or stage channels.New Features
Changes
Full Changelog: discord-jda/JDA@v5.0.0-alpha.19...v5.0.0-alpha.20
Installation
Gradle
Maven
v5.0.0-alpha.19
: | Channel Package, OrderAction, and Ban PrecisionOverview
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!
Seconds precision on bans (#2229)
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:
New:
Role Ordering (#2136)
The default ordering of
guild.modifyRolePositions()
has been reversed to align with the order ofguild.getRoles()
(descending position). We also addedmoveBelow
andmoveAbove
to allow moving relative to a pivot element.You can also now set the parent category of a channel using this feature:
Channel Packages (#2180)
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:Usage
To update packages of all
.java
source files in thesrc
directory, you can usefind
and apply the script on each file:New Features
Changes
Bug Fixes
Full Changelog: discord-jda/JDA@v5.0.0-alpha.18...v5.0.0-alpha.19
Installation
Gradle
Maven
v5.0.0-alpha.18
: | Message ReworkOverview
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
andaddActionRow
depending on the specific flavor of endpoint you are using!Message Rework (#2187)
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.
Renames
setActionRows
/addActionRows
->setComponents
/addComponents
MessageAction
->MessageCreateAction
MessageAction#tts
->MessageCreateAction#setTTS
allowedMentions(...)
->setAllowedMentions(...)
addFile
->setFiles
/addFiles
/setAttachments
sendFile
/replyFile
->sendFiles
/replyFiles
override(true)
->setReplace(true)
Code Migration
You will likely only have to adjust code if you used
MessageBuilder
. In this rework, we split this intoMessageCreateBuilder
andMessageEditBuilder
, which produce eitherMessageCreateData
orMessageEditData
. And you will have to provide these data instances instead ofMessage
instances from now on.The old approach of having a
MessageBuilder
which returns aMessage
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:Message
MessageCreateData
MessageEditData
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.
Gateway Resume URL Handling (#2203)
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.
New Features
GuildChannel#getJumpUrl
by @DynxstyGIT in https://github.com/DV8FromTheWorld/JDA/pull/2204Changes
Bug Fixes
Full Changelog: discord-jda/JDA@v5.0.0-alpha.17...v5.0.0-alpha.18
Installation
Gradle
Maven
v5.0.0-alpha.17
: | Hotfix for some file sending issuesFixes some issues regarding the handling of file attachments on messages.
MessageAction
, which would otherwise cause unwanted warningsretainFiles
on interaction message editsInstallation
Gradle
Maven
v5.0.0-alpha.16
: | Hotfix editMessage on componentsThis fixes an issue where
IMessageEditCallback#editMessage
would not properly send the request to edit the message, and instead defer the edit.Installation
Gradle
Maven
v5.0.0-alpha.15
: | Hotfix for cast exception in ChannelUpdateHandlerThis fixes the
ClassCastException
when a voice channel updated.Installation
Gradle
Maven
v5.0.0-alpha.14
: | Text in Voice and Upgrade to API v10Overview
Breaking changes and text messages in voice channels!
Text in Voice (#2072)
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!
Command Localization (#2090)
Using command localization, you can provide customized translations for all your commands. Check the example: LocalizationExample
API v10 (#2165)
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 asmessage.editMessage(...).addFile(...)
), will now remove all current attachments on the message. To retain existing attachments, you are now required to also useretainFiles(...)
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
, andgetMentions().getCustomEmojis()
getActionRows
, andgetButtons
getAttachments
getEmbeds
You will be presented with a warning, if you try using any of those methods without having the required intent enabled.
Channel Unions (#2138)
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 byMessage.getChannel()
. This type provides all the methods a normalMessageChannel
would, but also allows you to convert it to a more concrete type:New Features
Changes
Bug Fixes
Full Changelog: discord-jda/JDA@v5.0.0-alpha.13...v5.0.0-alpha.14
Installation
Gradle
Maven
v5.0.0-alpha.13
Overview
In this release, we have taken some time to rework the handling of Emoji and Stickers! This comes with a lot of breaking changes.
Guild Emote Renamed (#2117)
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!
Stickers (#2104)
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:
ChunkingFilter Breaking Change (#2053)
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 usesetChunkingFilter(ChunkingFilter.ALL).setMemberCachePolicy(MemberCachePolicy.ALL)
.This is a breaking change and affects anyone using ChunkingFilter.
Command Permissions (#2113)
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 usingsetDefaultPermissions(...)
and you can tell discord that a command is guild only withsetGuildOnly(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!
New Features
Changes
Bug Fixes
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.