log errors to a channel
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 40s
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 40s
This commit is contained in:
parent
09d850146a
commit
407ee6f1e9
@ -1,12 +1,14 @@
|
|||||||
package cc.fascinated.bat.common;
|
package cc.fascinated.bat.common;
|
||||||
|
|
||||||
import cc.fascinated.bat.service.DiscordService;
|
import cc.fascinated.bat.service.DiscordService;
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Fascinated (fascinated7)
|
* @author Fascinated (fascinated7)
|
||||||
*/
|
*/
|
||||||
|
@UtilityClass
|
||||||
@Log4j2
|
@Log4j2
|
||||||
public class ChannelUtils {
|
public class ChannelUtils {
|
||||||
/**
|
/**
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package cc.fascinated.bat.common;
|
package cc.fascinated.bat.common;
|
||||||
|
|
||||||
|
import cc.fascinated.bat.config.Config;
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
import net.dv8tion.jda.api.EmbedBuilder;
|
import net.dv8tion.jda.api.EmbedBuilder;
|
||||||
|
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@ -50,8 +52,21 @@ public class EmbedUtils {
|
|||||||
* @return the embed builder
|
* @return the embed builder
|
||||||
*/
|
*/
|
||||||
public static EmbedBuilder genericInteractionError(Exception ex) {
|
public static EmbedBuilder genericInteractionError(Exception ex) {
|
||||||
|
TextChannel channel = ChannelUtils.getTextChannel(Config.INSTANCE.getLogsChannel());
|
||||||
|
if (channel != null) {
|
||||||
|
channel.sendMessageEmbeds(EmbedUtils.errorEmbed()
|
||||||
|
.setDescription("""
|
||||||
|
An error has occurred while processing an interaction. Please check the logs for more information.
|
||||||
|
```java
|
||||||
|
%s
|
||||||
|
```""".formatted(ex.getLocalizedMessage()))
|
||||||
|
.build()).queue();
|
||||||
|
}
|
||||||
return EmbedUtils.errorEmbed()
|
return EmbedUtils.errorEmbed()
|
||||||
.setDescription("An error occurred while processing your interaction. Please try again later.\n" +
|
.setDescription("""
|
||||||
"**Error:** ```java\n%s\n```" + ex.getLocalizedMessage());
|
An error has occurred while processing your interaction. Please check the logs for more information.
|
||||||
|
```java
|
||||||
|
%s
|
||||||
|
```""".formatted(ex.getLocalizedMessage()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
package cc.fascinated.bat.common;
|
package cc.fascinated.bat.common;
|
||||||
|
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Fascinated (fascinated7)
|
* @author Fascinated (fascinated7)
|
||||||
*/
|
*/
|
||||||
|
@UtilityClass
|
||||||
public class EnumUtils {
|
public class EnumUtils {
|
||||||
/**
|
/**
|
||||||
* Gets the name of the enum
|
* Gets the name of the enum
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
package cc.fascinated.bat.common;
|
package cc.fascinated.bat.common;
|
||||||
|
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Fascinated (fascinated7)
|
* @author Fascinated (fascinated7)
|
||||||
*/
|
*/
|
||||||
|
@UtilityClass
|
||||||
public class HexColorUtils {
|
public class HexColorUtils {
|
||||||
/**
|
/**
|
||||||
* Checks if the given string is a hex color
|
* Checks if the given string is a hex color
|
||||||
|
@ -2,6 +2,7 @@ package cc.fascinated.bat.common;
|
|||||||
|
|
||||||
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 lombok.experimental.UtilityClass;
|
||||||
import net.dv8tion.jda.api.entities.Member;
|
import net.dv8tion.jda.api.entities.Member;
|
||||||
import net.dv8tion.jda.api.entities.Role;
|
import net.dv8tion.jda.api.entities.Role;
|
||||||
|
|
||||||
@ -10,6 +11,7 @@ import java.util.Comparator;
|
|||||||
/**
|
/**
|
||||||
* @author Fascinated (fascinated7)
|
* @author Fascinated (fascinated7)
|
||||||
*/
|
*/
|
||||||
|
@UtilityClass
|
||||||
public class MemberUtils {
|
public class MemberUtils {
|
||||||
/**
|
/**
|
||||||
* Checks if a user has permission to edit another user
|
* Checks if a user has permission to edit another user
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
package cc.fascinated.bat.common;
|
package cc.fascinated.bat.common;
|
||||||
|
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Fascinated (fascinated7)
|
* @author Fascinated (fascinated7)
|
||||||
*/
|
*/
|
||||||
|
@UtilityClass
|
||||||
public class NumberFormatter {
|
public class NumberFormatter {
|
||||||
/**
|
/**
|
||||||
* The suffixes for the numbers
|
* The suffixes for the numbers
|
||||||
|
@ -3,6 +3,7 @@ package cc.fascinated.bat.common;
|
|||||||
import cc.fascinated.bat.BatApplication;
|
import cc.fascinated.bat.BatApplication;
|
||||||
import cc.fascinated.bat.model.token.paste.PasteUploadToken;
|
import cc.fascinated.bat.model.token.paste.PasteUploadToken;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
@ -13,6 +14,7 @@ import java.net.http.HttpResponse;
|
|||||||
/**
|
/**
|
||||||
* @author Fascinated (fascinated7)
|
* @author Fascinated (fascinated7)
|
||||||
*/
|
*/
|
||||||
|
@UtilityClass
|
||||||
@Log4j2
|
@Log4j2
|
||||||
public class PasteUtils {
|
public class PasteUtils {
|
||||||
private static final String PASTE_URL = "https://paste.fascinated.cc/";
|
private static final String PASTE_URL = "https://paste.fascinated.cc/";
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
package cc.fascinated.bat.common;
|
package cc.fascinated.bat.common;
|
||||||
|
|
||||||
import cc.fascinated.bat.model.BatGuild;
|
import cc.fascinated.bat.model.BatGuild;
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
import net.dv8tion.jda.api.entities.Member;
|
import net.dv8tion.jda.api.entities.Member;
|
||||||
import net.dv8tion.jda.api.entities.Role;
|
import net.dv8tion.jda.api.entities.Role;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Fascinated (fascinated7)
|
* @author Fascinated (fascinated7)
|
||||||
*/
|
*/
|
||||||
|
@UtilityClass
|
||||||
public class RoleUtils {
|
public class RoleUtils {
|
||||||
/**
|
/**
|
||||||
* Checks if a member has permission to give the role to another member
|
* Checks if a member has permission to give the role to another member
|
||||||
|
@ -3,6 +3,7 @@ package cc.fascinated.bat.common;
|
|||||||
import cc.fascinated.bat.model.BatUser;
|
import cc.fascinated.bat.model.BatUser;
|
||||||
import cc.fascinated.bat.service.SpotifyService;
|
import cc.fascinated.bat.service.SpotifyService;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import se.michaelthelin.spotify.model_objects.miscellaneous.CurrentlyPlaying;
|
import se.michaelthelin.spotify.model_objects.miscellaneous.CurrentlyPlaying;
|
||||||
import se.michaelthelin.spotify.model_objects.specification.Track;
|
import se.michaelthelin.spotify.model_objects.specification.Track;
|
||||||
@ -10,6 +11,7 @@ import se.michaelthelin.spotify.model_objects.specification.Track;
|
|||||||
/**
|
/**
|
||||||
* @author Fascinated (fascinated7)
|
* @author Fascinated (fascinated7)
|
||||||
*/
|
*/
|
||||||
|
@UtilityClass
|
||||||
@Log4j2
|
@Log4j2
|
||||||
public class SpotifyUtils {
|
public class SpotifyUtils {
|
||||||
/**
|
/**
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
package cc.fascinated.bat.common;
|
package cc.fascinated.bat.common;
|
||||||
|
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Fascinated (fascinated7)
|
* @author Fascinated (fascinated7)
|
||||||
*/
|
*/
|
||||||
|
@UtilityClass
|
||||||
public class StringUtils {
|
public class StringUtils {
|
||||||
/**
|
/**
|
||||||
* Generates a random string
|
* Generates a random string
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
package cc.fascinated.bat.common;
|
package cc.fascinated.bat.common;
|
||||||
|
|
||||||
import cc.fascinated.bat.service.DiscordService;
|
import cc.fascinated.bat.service.DiscordService;
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import net.dv8tion.jda.api.entities.User;
|
import net.dv8tion.jda.api.entities.User;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Fascinated (fascinated7)
|
* @author Fascinated (fascinated7)
|
||||||
*/
|
*/
|
||||||
|
@UtilityClass
|
||||||
@Log4j2
|
@Log4j2
|
||||||
public class UserUtils {
|
public class UserUtils {
|
||||||
/**
|
/**
|
||||||
|
@ -23,6 +23,11 @@ public class Config {
|
|||||||
*/
|
*/
|
||||||
private final String adminGuild;
|
private final String adminGuild;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The ID of the logs channel
|
||||||
|
*/
|
||||||
|
private final String logsChannel;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
// Are we running on production?
|
// Are we running on production?
|
||||||
String appEnv = System.getenv("APP_ENV");
|
String appEnv = System.getenv("APP_ENV");
|
||||||
@ -30,8 +35,12 @@ public class Config {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public Config(@Value("${bat.admin-guild}") String adminGuild) {
|
public Config(
|
||||||
|
@Value("${bat.admin-guild}") String adminGuild,
|
||||||
|
@Value("${bat.logs-channel}") String logsChannel
|
||||||
|
) {
|
||||||
INSTANCE = this;
|
INSTANCE = this;
|
||||||
this.adminGuild = adminGuild;
|
this.adminGuild = adminGuild;
|
||||||
|
this.logsChannel = logsChannel;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,10 @@ discord:
|
|||||||
bat:
|
bat:
|
||||||
# This is where commands will be registered (whilst in development mode)
|
# This is where commands will be registered (whilst in development mode)
|
||||||
# also where bot owner only commands will be registered
|
# also where bot owner only commands will be registered
|
||||||
admin-guild: 1203163422498361404
|
admin-guild: set me
|
||||||
|
|
||||||
|
# This is the guild where the bot will log errors and other information
|
||||||
|
logs-channel: set me
|
||||||
|
|
||||||
# Sentry Configuration
|
# Sentry Configuration
|
||||||
sentry:
|
sentry:
|
||||||
|
Loading…
Reference in New Issue
Block a user