v3.7.0 | Better Opus Library Support / New Audio Encryption Modes
The opus libraries used for encoding/decoding are now exported to their own dependency at opus-java. This allows for a smaller artifact if no audio encoding has to be performed by JDA (like just sending with lavaplayer).
You can find out how to exclude the dependency and consecutively decrease your classpath size by looking at the Download Section in the README.
We additionally now host a jar without opus natives on jenkins (suffix noOpus
).
Discord has added new encryption modes to replace old ones, we now implement all currently supported encryption modes for audio. Additionally we reduced the amount of required allocations for sending audio, which should reduce garbage accumulation and CPU usage respectively.
Pull Requests
PR | Description |
---|---|
#651 | Voice Gateway V4 and new encryption modes |
#655 | Added enum to represent the flags set on RichPresence |
#658 | Clear expected member chunks on delete |
#659 | Externalize opus binaries |
#660 | Proper closing of resources in MessageAction |
#664 | Fixed issues with permission management in RoleManager |
#665 | Permission#VOICE_MOVE_OTHERS does not grant access to a voice channel |
#669 | Updated invite pattern to only trigger on alphanumeric with underscore and dash |
#670 | Cleaned up BotRateLimiter for better handling of partial/missing headers |
#671 | Add unicode flag emoji for each Region |
#675 | Allow null user_id and provide partial Webhooks [in audit logs] |
#676 | Added possibility to sync Permissions between channels |
#678 | Additional invite info |
#680 | Ability to add members to guilds |
#681 | Add support for sending multiple files with a webhook |
#684 | Fixing Role#getAsMention() for public Role |
#685 | Add option to exclude deprecated voice regions |
#687 | Improve snowflake checks for rest requests |
#692 | Add proper boundaries to methods |
#694 | Don't call toString() eagerly on arguments to format() |
#703 | Add Guild Features to Invite |
#713 | Complete rest action on internal server errors |
Thank you all for your contributions!
Versions
The latest release build: 3.7.0_382
Changelog
Additions
+++ Webhooks can now send multiple files in one message++ Bots can now add members to guilds (oauth2 access required)
+ Region enum now contains unicode flags
+ We now offer an ability to sync channel permissions for a channel in ChannelManager
+ You can now see webhook information in Audit-Logs
+ Can now specify custom opus library
+ Now giving access to member counts in invites
+ We now expose the flags on RichPresence
Changes
- JDA now uses the voice gateway version 4- Audio transmission now supports lite and suffix encryption
- Audio transmission now uses less allocations for each package to produce less garbage
- Using
getAsMention()
on the public role now properly returns @everyone
Fixes
- RestActions should now complete for continuous 500 responses (internal server errors)- Resources added to MessageAction should now be closed properly on clearing files
- Permission management in RoleManager is now improved
- WebhookManager#setChannel should now properly update the channel
- Improved handling of rate limit headers
- Audit-Logs should now handle null user_ids properly
- RestAction callbacks now use proper generics boundaries such as
? super T
- AFK-Channel setting in GuildManager should work properly now
- Permission checks in openAudioConnection have been corrected, VOICE_MOVE_OTHERS should not grant VOICE_CONNECT
- Invite parsing in Message should now only trigger on alphanumeric with dash
Deprecation
- Removed old updatable managers and associated classes/methods deprecated- Removed several old methods in events to be replaced by new consistent method names
Gradle
repositories {
jcenter()
}
dependencies {
compile 'net.dv8tion:JDA:3.7.0_382'
}
Maven
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>3.7.0_382</version>
</dependency>
<repository>
<id>jcenter</id>
<name>jcenter-bintray</name>
<url>http://jcenter.bintray.com</url>
</repository>