discord-jda / JDA

Java wrapper for the popular chat & VOIP service: Discord https://discord.com
Apache License 2.0
4.28k stars 737 forks source link

Audio WebsSocket Issue #2634

Closed LouisDerEchte closed 5 months ago

LouisDerEchte commented 5 months ago

General Troubleshooting

Version of JDA

5.0.0-beta.21

Expected Behaviour

I don't really know what this error is supposed to be but I think it wasn't my fault since my name doesn't occur in the error

Code Example for Reproduction Steps

There is no Code sry :(

Code for JDABuilder or DefaultShardManagerBuilder used

String botToken = getConfig().getString("Discord." + ".BOT_TOKEN");

JDABuilder builder = JDABuilder.createDefault(botToken);

Exception or Error

[21:26:10 ERROR]: [net.dv8tion.jda.internal.audio.AudioWebSocket] There was some audio websocket error
java.lang.IllegalStateException: zip file closed
        at java.util.zip.ZipFile.ensureOpen(ZipFile.java:838) ~[?:?]
        at java.util.zip.ZipFile.getEntry(ZipFile.java:330) ~[?:?]
        at java.util.jar.JarFile.getEntry(JarFile.java:511) ~[?:?]
        at java.util.jar.JarFile.getJarEntry(JarFile.java:466) ~[?:?]
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:209) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:588) ~[?:?]
        at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:169) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:164) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
        at gnu.trove.map.hash.TIntObjectHashMap.valueCollection(TIntObjectHashMap.java:345) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.internal.audio.AudioConnection.shutdown(AudioConnection.java:199) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.internal.audio.AudioWebSocket.lambda$close$0(AudioWebSocket.java:168) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.internal.audio.AudioWebSocket.lambda$locked$1(AudioWebSocket.java:571) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.api.utils.MiscUtil.locked(MiscUtil.java:148) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.internal.audio.AudioWebSocket.locked(AudioWebSocket.java:571) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.internal.audio.AudioWebSocket.close(AudioWebSocket.java:154) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.internal.audio.AudioWebSocket.onDisconnected(AudioWebSocket.java:324) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.ListenerManager.callOnDisconnected(ListenerManager.java:224) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.WebSocket.finish(WebSocket.java:3758) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.WebSocket.onThreadsFinished(WebSocket.java:3724) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.WebSocket.onWritingThreadFinished(WebSocket.java:3713) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.WritingThread.notifyFinished(WritingThread.java:539) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.WritingThread.runMain(WritingThread.java:78) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.WebSocketThread.run(WebSocketThread.java:45) ~[UltimateLeague-1.0.jar:?]
kazuryyx commented 5 months ago

Hi, this is not caused because something in internal of JDA is broken, but rather because you are using the /reload command. Which should not be used.

However, to fix this you need add this to your onDisable in the class that extends JavaPlugin:

jda.shutdown();
// Allow at most 10 seconds for remaining requests to finish
if (!jda.awaitShutdown(Duration.ofSeconds(10))) {
    jda.shutdownNow(); // Cancel all remaining requests
    jda.awaitShutdown(); // Wait until shutdown is complete (indefinitely)
}
LouisDerEchte commented 5 months ago

Thank you for the fast response! I don't think that it was caused bc of reloading since I was restarting the server. However I appreciate your help.

MinnDevelopment commented 5 months ago

Closing as duplicate https://github.com/discord-jda/JDA/issues?q=is%3Aissue+is%3Aclosed+zip+file+closed