Changes

Summary

  1. Imported audio system from Legacy. Includes the TweetNacl lib for (commit: 8a104f3) (details)
  2. Removed AudioManager#moveAudioConnection, moved logic into (commit: 310d574) (details)
  3. Created ConnectionListener system. All connection related statuses are (commit: 8bd97f1) (details)
  4. Added a ratelimit queue to the Main Websocket to protect it from (commit: 5f2bd43) (details)
  5. First pass on audio reconnect. Supports mWS resume and individual aWS (commit: a97afac) (details)
  6. Added support to preserve audio connections and AudioManager settings (commit: 0bc967b) (details)
  7. Separated the audio packet sending logic from the packet encoding and (commit: b6de2f9) (details)
  8. Added handling for AudioWebSocket failing to connect. Fixes #110 (commit: d0e072b) (details)
Commit 8a104f365fbd9b71d5605712bdd6c9e8a3619ee0 by Austin Keener
Imported audio system from Legacy. Includes the TweetNacl lib for
encrypting audio, the Opus wrapper, and the opus natives. Added .ignore
information to ignore the test src folder.
(commit: 8a104f3)
The file was addedsrc/main/resources/natives/linux-x86/libopus.so
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/Decoder.java
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/UserAudio.java
The file was addedsrc/main/java/net/dv8tion/jda/core/managers/impl/AudioManagerImpl.java
The file was addedsrc/main/java/net/dv8tion/jda/core/utils/NativeUtil.java
The file was addedsrc/main/java/com/iwebpp/crypto/TweetNaclFast.java
The file was addedsrc/main/resources/natives/win32-x86-64/libopus.dll
The file was addedsrc/main/resources/natives/linux-arm/libopus.so
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/AudioReceiveHandler.java
The file was modifiedsrc/main/java/net/dv8tion/jda/core/entities/impl/GuildImpl.java (diff)
The file was addedsrc/main/java/net/dv8tion/jda/core/handle/VoiceServerUpdateHandler.java
The file was addedsrc/main/java/net/dv8tion/jda/core/managers/AudioManager.java
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/AudioWebSocket.java
The file was addedsrc/main/java/tomp2p/opuswrapper/Opus.java
The file was modified.gitignore (diff)
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/AudioConnection.java
The file was addedsrc/main/resources/natives/darwin/libopus.dylib
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/CombinedAudio.java
The file was addedsrc/main/resources/natives/win32-x86/libopus.dll
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/AudioPacket.java
The file was modifiedsrc/main/java/net/dv8tion/jda/core/requests/WebSocketClient.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/entities/Guild.java (diff)
The file was addedsrc/main/resources/natives/linux-x86-64/libopus.so
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/AudioSendHandler.java
Commit 310d574d105d48c061ac0e39439ca34d9a7f1dd1 by Austin Keener
Removed AudioManager#moveAudioConnection, moved logic into
#openAudioConnection.
(commit: 310d574)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/managers/AudioManager.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/managers/impl/AudioManagerImpl.java (diff)
Commit 8bd97f10f554337f9cb695683df990fdaec3c7e0 by Austin Keener
Created ConnectionListener system. All connection related statuses are
now represented by ConnectionStatus. Changed the audio keepalive
(Websocket and UDP) to use a single runnable instead of 2 different
threads. Audio KeepAlive now uses a ScheduledThreadPoolExecutor which
should hugely reduce the amount of threads used by audio
(commit: 8bd97f1)
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/hooks/ConnectionStatus.java
The file was modifiedsrc/main/java/net/dv8tion/jda/core/managers/AudioManager.java (diff)
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/hooks/ConnectionListener.java
The file was modifiedsrc/main/java/net/dv8tion/jda/core/handle/VoiceServerUpdateHandler.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/audio/AudioConnection.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/managers/impl/AudioManagerImpl.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/audio/AudioReceiveHandler.java (diff)
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/hooks/ListenerProxy.java
The file was modifiedsrc/main/java/net/dv8tion/jda/core/audio/AudioWebSocket.java (diff)
Commit 5f2bd4308c0c16d4827a4d1a9c59ef225fa8287e by Austin Keener
Added a ratelimit queue to the Main Websocket to protect it from
websocket message send spam.
(commit: 5f2bd43)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/requests/WebSocketClient.java (diff)
Commit a97afac2c0bad4320998caad4f90d5465af62b89 by Austin Keener
First pass on audio reconnect. Supports mWS resume and individual aWS
reconnect. Need to implement mWS reconnect/invalidate support.
(commit: a97afac)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/entities/impl/JDAImpl.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/handle/ChannelDeleteHandler.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/handle/GuildDeleteHandler.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/managers/impl/AudioManagerImpl.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/entities/impl/GuildImpl.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/handle/VoiceServerUpdateHandler.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/audio/hooks/ConnectionStatus.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/handle/VoiceStateUpdateHandler.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/managers/AudioManager.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/requests/WebSocketClient.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/audio/AudioWebSocket.java (diff)
Commit 0bc967bc022c1b31a51f216de7b1c69963f9493f by Austin Keener
Added support to preserve audio connections and AudioManager settings
during full JDA reconnect/invalidate.
(commit: 0bc967b)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/events/ShutdownEvent.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/events/DisconnectEvent.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/requests/WebSocketClient.java (diff)
Commit b6de2f9bda22c016208ab8899897ecf92594340d by Austin Keener
Separated the audio packet sending logic from the packet encoding and
encrypting. Allows for custom senders through IAudioSendFactory and
IAudioSendSystem. Threads are now killed when audio handlers are set to
null. Fixed a CPU leak related to ScheduledThreadPoolExecutor in
AudioWebSocket Added proper naming to many threads.
(commit: b6de2f9)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/JDA.java (diff)
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/factory/DefaultSendFactory.java
The file was modifiedsrc/main/java/net/dv8tion/jda/core/audio/AudioWebSocket.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/requests/WebSocketClient.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/JDABuilder.java (diff)
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/factory/DefaultSendSystem.java
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/factory/IAudioSendFactory.java
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/factory/IPacketProvider.java
The file was modifiedsrc/main/java/net/dv8tion/jda/core/managers/impl/AudioManagerImpl.java (diff)
The file was addedsrc/main/java/net/dv8tion/jda/core/audio/factory/IAudioSendSystem.java
The file was modifiedsrc/main/java/net/dv8tion/jda/core/entities/impl/JDAImpl.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/audio/AudioConnection.java (diff)
Commit d0e072b3db0da67577178aee060af90e65449c70 by Austin Keener
Added handling for AudioWebSocket failing to connect. Fixes #110
(commit: d0e072b)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/handle/VoiceServerUpdateHandler.java (diff)
The file was modifiedsrc/main/java/net/dv8tion/jda/core/audio/AudioWebSocket.java (diff)