diff --git a/src/main/java/com/jagrosh/vortex/Listener.java b/src/main/java/com/jagrosh/vortex/Listener.java index a66acd1..71b866e 100644 --- a/src/main/java/com/jagrosh/vortex/Listener.java +++ b/src/main/java/com/jagrosh/vortex/Listener.java @@ -220,9 +220,6 @@ LOG.info("Shard "+shardinfo+" is ready."); vortex.getLogWebhook().send("\uD83C\uDF00 Shard `"+shardinfo+"` has connected. Guilds: `" // 🌀 +event.getJDA().getGuildCache().size()+"` Users: `"+event.getJDA().getUserCache().size()+"`"); - vortex.getThreadpool().scheduleWithFixedDelay(() -> vortex.getDatabase().tempbans.checkUnbans(event.getJDA()), 0, 2, TimeUnit.MINUTES); - vortex.getThreadpool().scheduleWithFixedDelay(() -> vortex.getDatabase().tempmutes.checkUnmutes(event.getJDA(), vortex.getDatabase().settings), 0, 45, TimeUnit.SECONDS); - vortex.getThreadpool().scheduleWithFixedDelay(() -> vortex.getDatabase().tempslowmodes.checkSlowmode(event.getJDA()), 0, 45, TimeUnit.SECONDS); } } } diff --git a/src/main/java/com/jagrosh/vortex/Vortex.java b/src/main/java/com/jagrosh/vortex/Vortex.java index 8b02ff6..2de7cc5 100644 --- a/src/main/java/com/jagrosh/vortex/Vortex.java +++ b/src/main/java/com/jagrosh/vortex/Vortex.java @@ -193,22 +193,14 @@ .setStatus(OnlineStatus.DO_NOT_DISTURB) .setActivity(Activity.playing("loading...")) .build(); - /*shards = DefaultShardManagerBuilder.create(config.getString("bot-token"), Constants.INTENTS) - .setMemberCachePolicy(MemberCachePolicy.ALL) - .enableCache(CacheFlag.MEMBER_OVERRIDES, CacheFlag.VOICE_STATE) - .disableCache(CacheFlag.EMOTE, CacheFlag.ACTIVITY, CacheFlag.CLIENT_STATUS) - .setShardsTotal(config.getInt("shards-total")) - .addEventListeners(new Listener(this), client, waiter) - .setStatus(OnlineStatus.DO_NOT_DISTURB) - .setActivity(Activity.playing("loading...")) - .setBulkDeleteSplittingEnabled(false) - .setRequestTimeoutRetry(true) - .build();*/ modlog.start(); threadpool.scheduleWithFixedDelay(() -> cleanPremium(), 0, 2, TimeUnit.HOURS); threadpool.scheduleWithFixedDelay(() -> leavePointlessGuilds(), 5, 30, TimeUnit.MINUTES); + threadpool.scheduleWithFixedDelay(() -> database.tempbans.checkUnbans(shards), 0, 2, TimeUnit.MINUTES); + threadpool.scheduleWithFixedDelay(() -> database.tempmutes.checkUnmutes(shards, database.settings), 0, 45, TimeUnit.SECONDS); + threadpool.scheduleWithFixedDelay(() -> database.tempslowmodes.checkSlowmode(shards), 0, 45, TimeUnit.SECONDS); } diff --git a/src/main/java/com/jagrosh/vortex/database/managers/TempBanManager.java b/src/main/java/com/jagrosh/vortex/database/managers/TempBanManager.java index 5b1c5b6..0e992c0 100644 --- a/src/main/java/com/jagrosh/vortex/database/managers/TempBanManager.java +++ b/src/main/java/com/jagrosh/vortex/database/managers/TempBanManager.java @@ -20,6 +20,7 @@ import com.jagrosh.easysql.SQLColumn; import com.jagrosh.easysql.columns.InstantColumn; import com.jagrosh.easysql.columns.LongColumn; +import com.jagrosh.vortex.utils.MultiBotManager; import com.jagrosh.vortex.utils.Pair; import java.time.Instant; import java.time.temporal.ChronoUnit; @@ -110,13 +111,13 @@ }); } - public void checkUnbans(JDA jda) + public void checkUnbans(MultiBotManager shards) { readWrite(selectAll(FINISH.isLessThan(Instant.now().getEpochSecond())), rs -> { while(rs.next()) { - Guild g = jda.getGuildById(GUILD_ID.getValue(rs)); + Guild g = shards.getGuildById(GUILD_ID.getValue(rs)); if(g==null || g.getMemberCache().isEmpty() || !g.getSelfMember().hasPermission(Permission.BAN_MEMBERS)) continue; g.unban(Long.toString(USER_ID.getValue(rs))).reason("Temporary Ban Completed").queue(s->{}, f->{}); diff --git a/src/main/java/com/jagrosh/vortex/database/managers/TempMuteManager.java b/src/main/java/com/jagrosh/vortex/database/managers/TempMuteManager.java index 7e96dd7..0dc6e17 100644 --- a/src/main/java/com/jagrosh/vortex/database/managers/TempMuteManager.java +++ b/src/main/java/com/jagrosh/vortex/database/managers/TempMuteManager.java @@ -20,6 +20,7 @@ import com.jagrosh.easysql.SQLColumn; import com.jagrosh.easysql.columns.InstantColumn; import com.jagrosh.easysql.columns.LongColumn; +import com.jagrosh.vortex.utils.MultiBotManager; import com.jagrosh.vortex.utils.Pair; import java.time.Instant; import java.time.temporal.ChronoUnit; @@ -141,13 +142,13 @@ }); } - public void checkUnmutes(JDA jda, GuildSettingsDataManager data) + public void checkUnmutes(MultiBotManager shards, GuildSettingsDataManager data) { readWrite(selectAll(FINISH.isLessThan(Instant.now().getEpochSecond())), rs -> { while(rs.next()) { - Guild g = jda.getGuildById(GUILD_ID.getValue(rs)); + Guild g = shards.getGuildById(GUILD_ID.getValue(rs)); if(g==null || g.getMemberCache().isEmpty() || !g.getSelfMember().hasPermission(Permission.MANAGE_ROLES)) continue; Role mRole = data.getSettings(g).getMutedRole(g); diff --git a/src/main/java/com/jagrosh/vortex/database/managers/TempSlowmodeManager.java b/src/main/java/com/jagrosh/vortex/database/managers/TempSlowmodeManager.java index 51214f9..d2cd442 100644 --- a/src/main/java/com/jagrosh/vortex/database/managers/TempSlowmodeManager.java +++ b/src/main/java/com/jagrosh/vortex/database/managers/TempSlowmodeManager.java @@ -20,6 +20,7 @@ import com.jagrosh.easysql.SQLColumn; import com.jagrosh.easysql.columns.InstantColumn; import com.jagrosh.easysql.columns.LongColumn; +import com.jagrosh.vortex.utils.MultiBotManager; import com.jagrosh.vortex.utils.Pair; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.Permission; @@ -107,13 +108,13 @@ }); } - public void checkSlowmode(JDA jda) + public void checkSlowmode(MultiBotManager shards) { readWrite(selectAll(FINISH.isLessThan(Instant.now().getEpochSecond())), rs -> { while(rs.next()) { - TextChannel tc = jda.getTextChannelById(CHANNEL_ID.getValue(rs)); + TextChannel tc = shards.getTextChannelById(CHANNEL_ID.getValue(rs)); if(tc==null) continue; if(tc.getGuild().getSelfMember().hasPermission(tc, Permission.MANAGE_CHANNEL)) diff --git a/src/main/java/com/jagrosh/vortex/logging/ModLogger.java b/src/main/java/com/jagrosh/vortex/logging/ModLogger.java index 225c788..2f6ea65 100644 --- a/src/main/java/com/jagrosh/vortex/logging/ModLogger.java +++ b/src/main/java/com/jagrosh/vortex/logging/ModLogger.java @@ -365,9 +365,9 @@ } } - private static int getCaseNumber(Message m) + private int getCaseNumber(Message m) { - if(m.getAuthor().getIdLong()!=m.getJDA().getSelfUser().getIdLong()) + if(!vortex.getShardManager().getBotIds().contains(m.getAuthor().getIdLong())) return -1; if(!m.getContentRaw().startsWith("`[")) return -1; diff --git a/src/main/java/com/jagrosh/vortex/utils/MultiBotManager.java b/src/main/java/com/jagrosh/vortex/utils/MultiBotManager.java index 6f85706..17f0f76 100644 --- a/src/main/java/com/jagrosh/vortex/utils/MultiBotManager.java +++ b/src/main/java/com/jagrosh/vortex/utils/MultiBotManager.java @@ -19,6 +19,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; +import java.util.stream.Collectors; import javax.security.auth.login.LoginException; import net.dv8tion.jda.api.OnlineStatus; import net.dv8tion.jda.api.entities.Activity; @@ -57,6 +58,11 @@ return bots; } + public List getBotIds() + { + return bots.stream().map(bot -> bot.getShards().get(0).getSelfUser().getIdLong()).collect(Collectors.toList()); + } + public RestAction retrieveUserById(long id) { if(!bots.isEmpty())