feat: added ShutdownHook
This commit is contained in:
parent
096778c0c7
commit
bda16fbdb7
2 changed files with 29 additions and 12 deletions
|
@ -20,6 +20,10 @@ import net.dv8tion.jda.api.JDA;
|
||||||
import net.dv8tion.jda.api.JDABuilder;
|
import net.dv8tion.jda.api.JDABuilder;
|
||||||
import net.dv8tion.jda.api.OnlineStatus;
|
import net.dv8tion.jda.api.OnlineStatus;
|
||||||
import net.dv8tion.jda.api.entities.Activity;
|
import net.dv8tion.jda.api.entities.Activity;
|
||||||
|
import net.dv8tion.jda.api.entities.Guild;
|
||||||
|
import net.dv8tion.jda.api.entities.GuildVoiceState;
|
||||||
|
import net.dv8tion.jda.api.entities.Member;
|
||||||
|
import net.dv8tion.jda.api.managers.AudioManager;
|
||||||
import net.dv8tion.jda.api.requests.GatewayIntent;
|
import net.dv8tion.jda.api.requests.GatewayIntent;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
|
@ -55,6 +59,13 @@ public class Main {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Runtime.getRuntime().addShutdownHook(new Thread(){
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
shutdown();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
MapManager.registerMaps();
|
MapManager.registerMaps();
|
||||||
WeaponManager.registerWeapons();
|
WeaponManager.registerWeapons();
|
||||||
TimePlanner.registerMessageThread();
|
TimePlanner.registerMessageThread();
|
||||||
|
@ -65,6 +76,22 @@ public class Main {
|
||||||
ConsoleCommandManager.registerListener();
|
ConsoleCommandManager.registerListener();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void shutdown(){
|
||||||
|
lgr.consoleOut("Shutting down...");
|
||||||
|
for(Guild g : jda.getSelfUser().getMutualGuilds()){
|
||||||
|
Member self = g.getSelfMember();
|
||||||
|
GuildVoiceState selfState = self.getVoiceState();
|
||||||
|
if(selfState.inAudioChannel()){
|
||||||
|
AudioManager audioManager = g.getAudioManager();
|
||||||
|
lgr.consoleOut("Leaving VC " + audioManager.getConnectedChannel().asVoiceChannel().getName() + " in " + g.getName());
|
||||||
|
audioManager.closeAudioConnection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TimePlanner.schedulerService.shutdown();
|
||||||
|
jda.shutdown();
|
||||||
|
lgr.consoleOut("Done.. Exiting..");
|
||||||
|
}
|
||||||
|
|
||||||
public static JDA getJda() {
|
public static JDA getJda() {
|
||||||
return jda;
|
return jda;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package de.limited_dev.lil_judd.commands.consolecommand.system;
|
package de.limited_dev.lil_judd.commands.consolecommand.system;
|
||||||
|
|
||||||
|
import de.limited_dev.lil_judd.Main;
|
||||||
import de.limited_dev.lil_judd.commands.consolecommand.component.ConsoleCommand;
|
import de.limited_dev.lil_judd.commands.consolecommand.component.ConsoleCommand;
|
||||||
import de.limited_dev.lil_judd.features.planner.TimePlanner;
|
import de.limited_dev.lil_judd.features.planner.TimePlanner;
|
||||||
import net.dv8tion.jda.api.entities.Guild;
|
import net.dv8tion.jda.api.entities.Guild;
|
||||||
|
@ -14,17 +15,6 @@ public class ShutdownCommand extends ConsoleCommand {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCommand(String[] args) {
|
public void onCommand(String[] args) {
|
||||||
lgr.consoleOut("Shutting down...");
|
Main.shutdown();
|
||||||
for(Guild g : jda.getSelfUser().getMutualGuilds()){
|
|
||||||
Member self = g.getSelfMember();
|
|
||||||
GuildVoiceState selfState = self.getVoiceState();
|
|
||||||
if(selfState.inAudioChannel()){
|
|
||||||
AudioManager audioManager = g.getAudioManager();
|
|
||||||
lgr.consoleOut("Leaving VC " + audioManager.getConnectedChannel().asVoiceChannel().getName() + " in " + g.getName());
|
|
||||||
audioManager.closeAudioConnection();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
TimePlanner.schedulerService.shutdown();
|
|
||||||
jda.shutdown();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue