Fix CouncilChannel, unloading issues

This commit is contained in:
Lixfel
2025-01-21 00:03:39 +01:00
parent 3fadeb7751
commit 7f7f84a4c4
3 changed files with 13 additions and 3 deletions
@@ -252,7 +252,17 @@ public class VelocityCore implements ReloadablePlugin {
@Override @Override
public void onProxyShutdown(ProxyShutdownEvent event) { public void onProxyShutdown(ProxyShutdownEvent event) {
try { try {
DiscordBot.withBot(bot -> bot.getJda().shutdownNow()); DiscordBot.withBot(bot -> {
bot.getJda().shutdownNow();
bot.getJda().getHttpClient().connectionPool().evictAll();
bot.getJda().getHttpClient().dispatcher().executorService().shutdown();
try {
if(!bot.getJda().awaitShutdown(1, TimeUnit.SECONDS))
logger.log(Level.SEVERE, "Could not await discord bot shutdown");
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
});
} catch (Throwable e) { } catch (Throwable e) {
logger.log(Level.SEVERE, "Could not shutdown discord bot", e); logger.log(Level.SEVERE, "Could not shutdown discord bot", e);
} }
@@ -97,7 +97,7 @@ public class DiscordBot {
.createDefault(config.getToken()) .createDefault(config.getToken())
.setStatus(OnlineStatus.ONLINE) .setStatus(OnlineStatus.ONLINE)
.setMemberCachePolicy(MemberCachePolicy.ONLINE) .setMemberCachePolicy(MemberCachePolicy.ONLINE)
.enableIntents(GatewayIntent.MESSAGE_CONTENT) .enableIntents(GatewayIntent.GUILD_MEMBERS, GatewayIntent.MESSAGE_CONTENT)
.build(); .build();
instance = this; instance = this;
@@ -48,7 +48,7 @@ public class CouncilChannel extends StaticMessageChannel {
MessageCreateBuilder messageCreateBuilder = new MessageCreateBuilder(); MessageCreateBuilder messageCreateBuilder = new MessageCreateBuilder();
messageCreateBuilder.setContent("# Ratsmitglieder"); messageCreateBuilder.setContent("# Ratsmitglieder");
for (Member member : DiscordBot.getGuild().getMembersWithRoles(role)) { for (Member member : DiscordBot.getGuild().findMembersWithRoles(role).get()) {
SteamwarUser steamwarUser = SteamwarUser.get(member.getIdLong()); SteamwarUser steamwarUser = SteamwarUser.get(member.getIdLong());
if (steamwarUser == null) if (steamwarUser == null)
continue; continue;