Skip to content

Commit c42c369

Browse files
committed
Reset activity provider every day
1 parent 3e1ec80 commit c42c369

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

bot/src/main/java/me/duncte123/skybot/SkyBot.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,17 @@
4949
import java.util.concurrent.Executors;
5050
import java.util.concurrent.ScheduledExecutorService;
5151
import java.util.concurrent.TimeUnit;
52+
import java.util.function.IntFunction;
5253

5354
import static net.dv8tion.jda.api.exceptions.ErrorResponseException.ignore;
5455
import static net.dv8tion.jda.api.requests.ErrorResponse.UNKNOWN_MESSAGE;
5556
import static net.dv8tion.jda.api.utils.MemberCachePolicy.DEFAULT;
5657
import static net.dv8tion.jda.api.utils.MemberCachePolicy.PENDING;
5758

5859
public final class SkyBot {
60+
public static final IntFunction<Activity> ACTIVITY_PROVIDER = (shardId) -> Activity.playing(
61+
Settings.PREFIX + "help | Shard " + (shardId + 1)
62+
);
5963
public static final ScheduledExecutorService SYSTEM_POOL = Executors.newSingleThreadScheduledExecutor((r) -> {
6064
final Thread thread = new Thread(r, "System Pool");
6165
thread.setDaemon(true);
@@ -123,9 +127,7 @@ private SkyBot() throws LoginException {
123127
)
124128
.setToken(token)
125129
.setShardsTotal(totalShards)
126-
.setActivityProvider((shardId) -> Activity.playing(
127-
Settings.PREFIX + "help | Shard " + (shardId + 1)
128-
))
130+
.setActivityProvider(ACTIVITY_PROVIDER)
129131
.setBulkDeleteSplittingEnabled(false)
130132
.setEventManagerProvider((id) -> eventManager)
131133
// Keep guild owners, voice members and patrons in cache

bot/src/main/java/me/duncte123/skybot/listeners/ReadyShutdownListener.java

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,20 +61,16 @@ public ReadyShutdownListener(Variables variables) {
6161

6262
@Override
6363
public void onEvent(@Nonnull GenericEvent event) {
64-
if (event instanceof MessageUpdateEvent messageUpdate) {
65-
this.onGuildMessageUpdate(messageUpdate);
66-
} else if (event instanceof MessageReceivedEvent messageReceived) {
67-
this.onGuildMessageReceived(messageReceived);
68-
} else if (event instanceof SlashCommandInteractionEvent slashEvent) {
69-
this.onSlashCommandInteraction(slashEvent);
70-
} else if (event instanceof MessageDeleteEvent delete) {
71-
this.onGuildMessageDelete(delete);
72-
} else if (event instanceof MessageBulkDeleteEvent bulkDelete) {
73-
this.onMessageBulkDelete(bulkDelete);
74-
} else if (event instanceof ReadyEvent ready) {
75-
this.onReady(ready);
76-
} else if (event instanceof ShutdownEvent) {
77-
this.onShutdown();
64+
switch (event) {
65+
case MessageUpdateEvent messageUpdate -> this.onGuildMessageUpdate(messageUpdate);
66+
case MessageReceivedEvent messageReceived -> this.onGuildMessageReceived(messageReceived);
67+
case SlashCommandInteractionEvent slashEvent -> this.onSlashCommandInteraction(slashEvent);
68+
case MessageDeleteEvent delete -> this.onGuildMessageDelete(delete);
69+
case MessageBulkDeleteEvent bulkDelete -> this.onMessageBulkDelete(bulkDelete);
70+
case ReadyEvent ready -> this.onReady(ready);
71+
case ShutdownEvent shutdownEvent -> this.onShutdown();
72+
default -> {
73+
}
7874
}
7975
}
8076

@@ -87,6 +83,12 @@ private void onReady(ReadyEvent event) {
8783
LOGGER.info("Starting spam-cache-cleaner!");
8884
SkyBot.SYSTEM_POOL.scheduleAtFixedRate(() -> runOnVirtual(spamFilter::clearMessages), 20, 13, TimeUnit.SECONDS);
8985

86+
// Reset our activity every day
87+
SkyBot.SYSTEM_POOL.scheduleAtFixedRate(
88+
() -> jda.getShardManager().setActivityProvider(SkyBot.ACTIVITY_PROVIDER),
89+
1, 1, TimeUnit.DAYS
90+
);
91+
9092
if (
9193
"psql".equals(this.variables.getConfig().useDatabase) ||
9294
"mysql".equals(this.variables.getConfig().useDatabase)

0 commit comments

Comments
 (0)