add rotating presences

This commit is contained in:
Lee 2024-06-25 12:16:20 +01:00
parent e9422793cb
commit 0f2c684300
3 changed files with 17 additions and 8 deletions

@ -15,8 +15,8 @@ import org.springframework.stereotype.Component;
* @author Fascinated (fascinated7)
*/
@Component("scoresaber-number-one-feed")
public class NunberOneFeedCommand extends BatCommand {
public NunberOneFeedCommand(@NonNull ApplicationContext context) {
public class NumberOneFeedCommand extends BatCommand {
public NumberOneFeedCommand(@NonNull ApplicationContext context) {
super("scoresaber-number-one-feed");
super.setCategory(Category.BEAT_SABER);

@ -3,7 +3,7 @@ package cc.fascinated.bat.service;
import cc.fascinated.bat.command.BatCommand;
import cc.fascinated.bat.command.BatSubCommand;
import cc.fascinated.bat.common.EmbedUtils;
import cc.fascinated.bat.features.scoresaber.command.numberone.NunberOneFeedCommand;
import cc.fascinated.bat.features.scoresaber.command.numberone.NumberOneFeedCommand;
import cc.fascinated.bat.features.scoresaber.command.scoresaber.ScoreSaberCommand;
import cc.fascinated.bat.features.scoresaber.command.userfeed.UserFeedCommand;
import cc.fascinated.bat.model.BatGuild;
@ -52,7 +52,7 @@ public class CommandService extends ListenerAdapter {
// Guild commands
registerCommand(context.getBean(UserFeedCommand.class));
registerCommand(context.getBean(NunberOneFeedCommand.class));
registerCommand(context.getBean(NumberOneFeedCommand.class));
// Global commands
registerCommand(context.getBean(ScoreSaberCommand.class));

@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.EnumSet;
import java.util.List;
/**
* @author Fascinated (fascinated7)
@ -22,6 +23,13 @@ public class DiscordService {
*/
public static JDA JDA;
private final List<String> messages = List.of(
"over {guilds} guilds",
"over {users} users",
"over ScoreSaber scores",
"your messages"
);
@Autowired
public DiscordService(
@Value("${discord.token}") String token
@ -31,9 +39,7 @@ public class DiscordService {
GatewayIntent.MESSAGE_CONTENT
)).build()
.awaitReady();
// Update activity every 5 minutes
TimerUtils.scheduleRepeating(this::updateActivity, 0, 1000 * 60 * 5);
TimerUtils.scheduleRepeating(this::updateActivity, 0, 1000 * 60 * 2);
}
/**
@ -41,6 +47,9 @@ public class DiscordService {
*/
public void updateActivity() {
int guildCount = JDA.getGuilds().size();
JDA.getPresence().setActivity(Activity.playing("with %s guilds".formatted(guildCount)));
JDA.getPresence().setActivity(Activity.watching(messages.get(guildCount % messages.size())
.replace("{guilds}", String.valueOf(guildCount))
.replace("{users}", String.valueOf(JDA.getUsers().size()))
));
}
}