cleanup profiles
Some checks failed
Deploy to Dokku / docker (ubuntu-latest) (push) Failing after 16s
Some checks failed
Deploy to Dokku / docker (ubuntu-latest) (push) Failing after 16s
This commit is contained in:
parent
154eac28d1
commit
679143c331
@ -27,7 +27,7 @@ public class PingCommand extends BatCommand {
|
|||||||
public void execute(@NonNull BatGuild guild, @NonNull BatUser user, @NonNull TextChannel channel, @NonNull Member member, @NonNull SlashCommandInteraction interaction) {
|
public void execute(@NonNull BatGuild guild, @NonNull BatUser user, @NonNull TextChannel channel, @NonNull Member member, @NonNull SlashCommandInteraction interaction) {
|
||||||
long time = System.currentTimeMillis();
|
long time = System.currentTimeMillis();
|
||||||
interaction.reply("Pinging...").queue(response -> {
|
interaction.reply("Pinging...").queue(response -> {
|
||||||
response.editOriginal(("Gateway response time: `%sms`\nAPI response time `%sms`").formatted(
|
response.editOriginal("Gateway response time: `%sms`\nAPI response time `%sms`".formatted(
|
||||||
DiscordService.JDA.getGatewayPing(),
|
DiscordService.JDA.getGatewayPing(),
|
||||||
System.currentTimeMillis() - time
|
System.currentTimeMillis() - time
|
||||||
)).queue();
|
)).queue();
|
||||||
|
42
src/main/java/cc/fascinated/bat/common/ProfileHolder.java
Normal file
42
src/main/java/cc/fascinated/bat/common/ProfileHolder.java
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
package cc.fascinated.bat.common;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Fascinated (fascinated7)
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
public class ProfileHolder {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The profiles for the holder
|
||||||
|
*/
|
||||||
|
private Map<String, Profile> profiles;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets a profile for the holder
|
||||||
|
*
|
||||||
|
* @param clazz The class of the profile
|
||||||
|
* @param <T> The type of the profile
|
||||||
|
* @return The profile
|
||||||
|
*/
|
||||||
|
public <T extends Profile> T getProfile(Class<?> clazz) {
|
||||||
|
if (profiles == null) {
|
||||||
|
profiles = new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
Profile profile = profiles.values().stream().filter(p -> p.getClass().equals(clazz)).findFirst().orElse(null);
|
||||||
|
if (profile == null) {
|
||||||
|
try {
|
||||||
|
profile = (Profile) clazz.newInstance();
|
||||||
|
profiles.put(profile.getProfileKey(), profile);
|
||||||
|
} catch (InstantiationException | IllegalAccessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (T) profile;
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,8 @@
|
|||||||
package cc.fascinated.bat.event;
|
package cc.fascinated.bat.event;
|
||||||
|
|
||||||
import cc.fascinated.bat.model.beatsaber.scoresaber.ScoreSaberLeaderboardToken;
|
import cc.fascinated.bat.model.token.beatsaber.scoresaber.ScoreSaberLeaderboardToken;
|
||||||
import cc.fascinated.bat.model.beatsaber.scoresaber.ScoreSaberPlayerScoreToken;
|
import cc.fascinated.bat.model.token.beatsaber.scoresaber.ScoreSaberPlayerScoreToken;
|
||||||
import cc.fascinated.bat.model.beatsaber.scoresaber.ScoreSaberScoreToken;
|
import cc.fascinated.bat.model.token.beatsaber.scoresaber.ScoreSaberScoreToken;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Fascinated (fascinated7)
|
* @author Fascinated (fascinated7)
|
||||||
|
@ -6,11 +6,10 @@ import cc.fascinated.bat.common.NumberUtils;
|
|||||||
import cc.fascinated.bat.common.ScoreSaberUtils;
|
import cc.fascinated.bat.common.ScoreSaberUtils;
|
||||||
import cc.fascinated.bat.event.EventListener;
|
import cc.fascinated.bat.event.EventListener;
|
||||||
import cc.fascinated.bat.features.scoresaber.profiles.GuildNumberOneScoreFeedProfile;
|
import cc.fascinated.bat.features.scoresaber.profiles.GuildNumberOneScoreFeedProfile;
|
||||||
import cc.fascinated.bat.features.scoresaber.profiles.GuildUserScoreFeedProfile;
|
|
||||||
import cc.fascinated.bat.model.BatGuild;
|
import cc.fascinated.bat.model.BatGuild;
|
||||||
import cc.fascinated.bat.model.beatsaber.scoresaber.ScoreSaberLeaderboardToken;
|
import cc.fascinated.bat.model.token.beatsaber.scoresaber.ScoreSaberLeaderboardToken;
|
||||||
import cc.fascinated.bat.model.beatsaber.scoresaber.ScoreSaberPlayerScoreToken;
|
import cc.fascinated.bat.model.token.beatsaber.scoresaber.ScoreSaberPlayerScoreToken;
|
||||||
import cc.fascinated.bat.model.beatsaber.scoresaber.ScoreSaberScoreToken;
|
import cc.fascinated.bat.model.token.beatsaber.scoresaber.ScoreSaberScoreToken;
|
||||||
import cc.fascinated.bat.service.DiscordService;
|
import cc.fascinated.bat.service.DiscordService;
|
||||||
import cc.fascinated.bat.service.GuildService;
|
import cc.fascinated.bat.service.GuildService;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
@ -6,9 +6,9 @@ import cc.fascinated.bat.common.NumberUtils;
|
|||||||
import cc.fascinated.bat.common.ScoreSaberUtils;
|
import cc.fascinated.bat.common.ScoreSaberUtils;
|
||||||
import cc.fascinated.bat.event.EventListener;
|
import cc.fascinated.bat.event.EventListener;
|
||||||
import cc.fascinated.bat.features.scoresaber.profiles.GuildUserScoreFeedProfile;
|
import cc.fascinated.bat.features.scoresaber.profiles.GuildUserScoreFeedProfile;
|
||||||
import cc.fascinated.bat.model.beatsaber.scoresaber.ScoreSaberLeaderboardToken;
|
import cc.fascinated.bat.model.token.beatsaber.scoresaber.ScoreSaberLeaderboardToken;
|
||||||
import cc.fascinated.bat.model.beatsaber.scoresaber.ScoreSaberPlayerScoreToken;
|
import cc.fascinated.bat.model.token.beatsaber.scoresaber.ScoreSaberPlayerScoreToken;
|
||||||
import cc.fascinated.bat.model.beatsaber.scoresaber.ScoreSaberScoreToken;
|
import cc.fascinated.bat.model.token.beatsaber.scoresaber.ScoreSaberScoreToken;
|
||||||
import cc.fascinated.bat.model.BatGuild;
|
import cc.fascinated.bat.model.BatGuild;
|
||||||
import cc.fascinated.bat.service.DiscordService;
|
import cc.fascinated.bat.service.DiscordService;
|
||||||
import cc.fascinated.bat.service.GuildService;
|
import cc.fascinated.bat.service.GuildService;
|
||||||
|
@ -2,7 +2,7 @@ package cc.fascinated.bat.features.scoresaber.command.scoresaber;
|
|||||||
|
|
||||||
import cc.fascinated.bat.command.BatSubCommand;
|
import cc.fascinated.bat.command.BatSubCommand;
|
||||||
import cc.fascinated.bat.common.EmbedUtils;
|
import cc.fascinated.bat.common.EmbedUtils;
|
||||||
import cc.fascinated.bat.model.beatsaber.scoresaber.ScoreSaberAccountToken;
|
import cc.fascinated.bat.model.token.beatsaber.scoresaber.ScoreSaberAccountToken;
|
||||||
import cc.fascinated.bat.model.BatGuild;
|
import cc.fascinated.bat.model.BatGuild;
|
||||||
import cc.fascinated.bat.model.BatUser;
|
import cc.fascinated.bat.model.BatUser;
|
||||||
import cc.fascinated.bat.features.scoresaber.profiles.UserScoreSaberProfile;
|
import cc.fascinated.bat.features.scoresaber.profiles.UserScoreSaberProfile;
|
||||||
|
@ -5,7 +5,7 @@ import cc.fascinated.bat.common.Colors;
|
|||||||
import cc.fascinated.bat.common.DateUtils;
|
import cc.fascinated.bat.common.DateUtils;
|
||||||
import cc.fascinated.bat.common.EmbedUtils;
|
import cc.fascinated.bat.common.EmbedUtils;
|
||||||
import cc.fascinated.bat.common.NumberUtils;
|
import cc.fascinated.bat.common.NumberUtils;
|
||||||
import cc.fascinated.bat.model.beatsaber.scoresaber.ScoreSaberAccountToken;
|
import cc.fascinated.bat.model.token.beatsaber.scoresaber.ScoreSaberAccountToken;
|
||||||
import cc.fascinated.bat.model.BatGuild;
|
import cc.fascinated.bat.model.BatGuild;
|
||||||
import cc.fascinated.bat.model.BatUser;
|
import cc.fascinated.bat.model.BatUser;
|
||||||
import cc.fascinated.bat.features.scoresaber.profiles.UserScoreSaberProfile;
|
import cc.fascinated.bat.features.scoresaber.profiles.UserScoreSaberProfile;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package cc.fascinated.bat.model;
|
package cc.fascinated.bat.model;
|
||||||
|
|
||||||
import cc.fascinated.bat.common.Profile;
|
import cc.fascinated.bat.common.Profile;
|
||||||
|
import cc.fascinated.bat.common.ProfileHolder;
|
||||||
import cc.fascinated.bat.service.DiscordService;
|
import cc.fascinated.bat.service.DiscordService;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
@ -19,42 +20,13 @@ import java.util.Map;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Getter @Setter
|
@Getter @Setter
|
||||||
@Document(collection = "guilds")
|
@Document(collection = "guilds")
|
||||||
public class BatGuild {
|
public class BatGuild extends ProfileHolder {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The ID of the guild
|
* The ID of the guild
|
||||||
*/
|
*/
|
||||||
@NonNull @Id private final String id;
|
@NonNull @Id private final String id;
|
||||||
|
|
||||||
/**
|
|
||||||
* The profiles for this guild
|
|
||||||
*/
|
|
||||||
private Map<String, Profile> profiles;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the profile for the guild
|
|
||||||
*
|
|
||||||
* @param clazz The class of the profile
|
|
||||||
* @param <T> The type of the profile
|
|
||||||
* @return The profile
|
|
||||||
*/
|
|
||||||
public <T extends Profile> T getProfile(Class<?> clazz) {
|
|
||||||
if (profiles == null) {
|
|
||||||
profiles = new HashMap<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
Profile profile = profiles.values().stream().filter(p -> p.getClass().equals(clazz)).findFirst().orElse(null);
|
|
||||||
if (profile == null) {
|
|
||||||
try {
|
|
||||||
profile = (Profile) clazz.newInstance();
|
|
||||||
profiles.put(profile.getProfileKey(), profile);
|
|
||||||
} catch (InstantiationException | IllegalAccessException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return (T) profile;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the guild as the JDA Guild
|
* Gets the guild as the JDA Guild
|
||||||
*
|
*
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package cc.fascinated.bat.model;
|
package cc.fascinated.bat.model;
|
||||||
|
|
||||||
import cc.fascinated.bat.common.Profile;
|
import cc.fascinated.bat.common.Profile;
|
||||||
|
import cc.fascinated.bat.common.ProfileHolder;
|
||||||
import cc.fascinated.bat.service.DiscordService;
|
import cc.fascinated.bat.service.DiscordService;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
@ -19,42 +20,13 @@ import java.util.Map;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Getter @Setter
|
@Getter @Setter
|
||||||
@Document(collection = "users")
|
@Document(collection = "users")
|
||||||
public class BatUser {
|
public class BatUser extends ProfileHolder {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The ID of the user
|
* The ID of the user
|
||||||
*/
|
*/
|
||||||
@NonNull @Id private final String id;
|
@NonNull @Id private final String id;
|
||||||
|
|
||||||
/**
|
|
||||||
* The profiles for this user
|
|
||||||
*/
|
|
||||||
private Map<String, Profile> profiles;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the profile for the user
|
|
||||||
*
|
|
||||||
* @param clazz The class of the profile
|
|
||||||
* @param <T> The type of the profile
|
|
||||||
* @return The profile
|
|
||||||
*/
|
|
||||||
public <T extends Profile> T getProfile(Class<?> clazz) {
|
|
||||||
if (profiles == null) {
|
|
||||||
profiles = new HashMap<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
Profile profile = profiles.values().stream().filter(p -> p.getClass().equals(clazz)).findFirst().orElse(null);
|
|
||||||
if (profile == null) {
|
|
||||||
try {
|
|
||||||
profile = (Profile) clazz.newInstance();
|
|
||||||
profiles.put(profile.getProfileKey(), profile);
|
|
||||||
} catch (InstantiationException | IllegalAccessException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return (T) profile;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the guild as the JDA Guild
|
* Gets the guild as the JDA Guild
|
||||||
*
|
*
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package cc.fascinated.bat.model.beatsaber.scoresaber;
|
package cc.fascinated.bat.model.token.beatsaber.scoresaber;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
@ -1,4 +1,4 @@
|
|||||||
package cc.fascinated.bat.model.beatsaber.scoresaber;
|
package cc.fascinated.bat.model.token.beatsaber.scoresaber;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
@ -1,4 +1,4 @@
|
|||||||
package cc.fascinated.bat.model.beatsaber.scoresaber;
|
package cc.fascinated.bat.model.token.beatsaber.scoresaber;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
@ -1,4 +1,4 @@
|
|||||||
package cc.fascinated.bat.model.beatsaber.scoresaber;
|
package cc.fascinated.bat.model.token.beatsaber.scoresaber;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
@ -1,4 +1,4 @@
|
|||||||
package cc.fascinated.bat.model.beatsaber.scoresaber;
|
package cc.fascinated.bat.model.token.beatsaber.scoresaber;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
@ -1,4 +1,4 @@
|
|||||||
package cc.fascinated.bat.model.beatsaber.scoresaber;
|
package cc.fascinated.bat.model.token.beatsaber.scoresaber;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
@ -8,6 +8,7 @@ import cc.fascinated.bat.exception.BadRequestException;
|
|||||||
import cc.fascinated.bat.exception.ResourceNotFoundException;
|
import cc.fascinated.bat.exception.ResourceNotFoundException;
|
||||||
import cc.fascinated.bat.model.beatsaber.scoresaber.*;
|
import cc.fascinated.bat.model.beatsaber.scoresaber.*;
|
||||||
import cc.fascinated.bat.features.scoresaber.profiles.UserScoreSaberProfile;
|
import cc.fascinated.bat.features.scoresaber.profiles.UserScoreSaberProfile;
|
||||||
|
import cc.fascinated.bat.model.token.beatsaber.scoresaber.*;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
|
Loading…
Reference in New Issue
Block a user