From 94f1d566ac58d44de1af138da7ac893fc4a753d5 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Sun, 21 May 2023 21:54:59 +0200 Subject: [PATCH] Changed to new logging, static implementation for now which is not ideal, but it's not worth spending the time to fix it right now --- build.gradle.kts | 1 + libs/AltitudeLogs.jar | Bin 0 -> 5863 bytes settings.gradle.kts | 5 ++ src/main/java/com/alttd/AltitudeBot.java | 5 +- .../buttons/autoReminder/ButtonAccepted.java | 2 + .../autoReminder/ButtonInProgress.java | 2 + .../buttons/autoReminder/ButtonRejected.java | 2 + .../ButtonSuggestionReviewAccept.java | 10 ++- .../alttd/commandManager/CommandManager.java | 6 +- .../commands/AddCommand/CommandManage.java | 2 +- .../AddCommand/SubCommandDisable.java | 8 +- .../commands/AddCommand/SubCommandEnable.java | 14 +-- .../commands/CommandAuction.java | 2 +- .../commands/PollCommand/CommandPoll.java | 2 +- .../commands/PollCommand/SubCommandAdd.java | 2 +- .../PollCommand/SubCommandAddButton.java | 2 +- .../java/com/alttd/config/AbstractConfig.java | 5 +- .../com/alttd/console/ConsoleActivity.java | 6 +- .../alttd/console/ConsoleCommandManager.java | 4 +- .../java/com/alttd/console/ConsoleHelp.java | 2 +- .../java/com/alttd/console/ConsoleReload.java | 12 ++- .../java/com/alttd/console/ConsoleStatus.java | 9 +- .../java/com/alttd/console/ConsoleStop.java | 2 +- .../java/com/alttd/database/Database.java | 9 +- .../com/alttd/database/DatabaseTables.java | 62 ++++++------- .../database/queries/QueriesAssignAppeal.java | 7 +- .../QueriesAuctionAction.java | 2 +- .../QueriesReminders/QueriesReminders.java | 14 +-- .../queries/QueriesReminders/Reminder.java | 4 +- .../CommandOutputChannels.java | 4 +- .../com/alttd/listeners/AppealRepost.java | 24 ++--- .../java/com/alttd/listeners/JDAListener.java | 6 +- .../com/alttd/listeners/LockedChannel.java | 2 +- .../java/com/alttd/request/RequestConfig.java | 4 +- .../alttd/schedulers/AuctionScheduler.java | 19 ++-- .../alttd/schedulers/ReminderScheduler.java | 12 +-- src/main/java/com/alttd/util/ExcelWriter.java | 8 +- src/main/java/com/alttd/util/Logger.java | 83 ++++-------------- src/main/java/com/alttd/util/Util.java | 16 ++-- 39 files changed, 164 insertions(+), 217 deletions(-) create mode 100644 libs/AltitudeLogs.jar diff --git a/build.gradle.kts b/build.gradle.kts index b268bce..76a85e6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -70,4 +70,5 @@ dependencies { // Other stuff? compileOnly("org.projectlombok:lombok:1.18.24") annotationProcessor("org.projectlombok:lombok:1.18.24") + implementation(files("libs/AltitudeLogs.jar")) } \ No newline at end of file diff --git a/libs/AltitudeLogs.jar b/libs/AltitudeLogs.jar new file mode 100644 index 0000000000000000000000000000000000000000..68cd1fc043c7cdfd11b849bce688cb2bbf427696 GIT binary patch literal 5863 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 r#{MsK1e@504`f0Pv3J_t*acT_2#2 literal 0 HcmV?d00001 diff --git a/settings.gradle.kts b/settings.gradle.kts index 6fb6767..1140f02 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -11,6 +11,11 @@ dependencyResolutionManagement { // MySQL maven("https://jcenter.bintray.com") } + repositories { + flatDir { + dirs("lib") + } + } repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) } diff --git a/src/main/java/com/alttd/AltitudeBot.java b/src/main/java/com/alttd/AltitudeBot.java index 266fca7..cd6751a 100644 --- a/src/main/java/com/alttd/AltitudeBot.java +++ b/src/main/java/com/alttd/AltitudeBot.java @@ -29,7 +29,7 @@ public class AltitudeBot { } private void start() { - Logger.info("Starting bot..."); + Logger.altitudeLogs.info("Starting bot..."); initConfigs(); jda = JDABuilder.createDefault(SettingsConfig.TOKEN, GatewayIntent.GUILD_MEMBERS, @@ -62,13 +62,14 @@ public class AltitudeBot { private void initConfigs() { SettingsConfig.reload(); MessagesConfig.reload(); + Logger.setDebugActive(SettingsConfig.DEBUG); } public String getDataFolder() { try { return new File(AltitudeBot.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()).getPath(); } catch (URISyntaxException e) { - Logger.severe("Unable to retrieve config directory"); + Logger.altitudeLogs.error("Unable to retrieve config directory"); e.printStackTrace(); } return (null); diff --git a/src/main/java/com/alttd/buttonManager/buttons/autoReminder/ButtonAccepted.java b/src/main/java/com/alttd/buttonManager/buttons/autoReminder/ButtonAccepted.java index 0c96673..03c40ac 100644 --- a/src/main/java/com/alttd/buttonManager/buttons/autoReminder/ButtonAccepted.java +++ b/src/main/java/com/alttd/buttonManager/buttons/autoReminder/ButtonAccepted.java @@ -2,6 +2,7 @@ package com.alttd.buttonManager.buttons.autoReminder; import com.alttd.buttonManager.DiscordButton; import com.alttd.schedulers.ReminderScheduler; +import com.alttd.util.Logger; import com.alttd.util.Util; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; @@ -23,6 +24,7 @@ public class ButtonAccepted extends DiscordButton { Message message = event.getMessage(); if (!ButtonReminderUtil.shouldExecute(message, event)) return; + Logger.altitudeLogs.debug("Accepting reminder"); MessageEmbed embed = message.getEmbeds().get(0); EmbedBuilder embedBuilder = new EmbedBuilder(embed).setColor(Color.GREEN); ReminderScheduler.getInstance(event.getJDA()).removeReminder(message.getIdLong()); diff --git a/src/main/java/com/alttd/buttonManager/buttons/autoReminder/ButtonInProgress.java b/src/main/java/com/alttd/buttonManager/buttons/autoReminder/ButtonInProgress.java index 6b58f04..6e84cc8 100644 --- a/src/main/java/com/alttd/buttonManager/buttons/autoReminder/ButtonInProgress.java +++ b/src/main/java/com/alttd/buttonManager/buttons/autoReminder/ButtonInProgress.java @@ -1,6 +1,7 @@ package com.alttd.buttonManager.buttons.autoReminder; import com.alttd.buttonManager.DiscordButton; +import com.alttd.util.Logger; import com.alttd.util.Util; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; @@ -21,6 +22,7 @@ public class ButtonInProgress extends DiscordButton { Message message = event.getMessage(); if (!ButtonReminderUtil.shouldExecute(message, event)) return; + Logger.altitudeLogs.debug("Marking reminder as in progress"); MessageEmbed embed = message.getEmbeds().get(0); EmbedBuilder embedBuilder = new EmbedBuilder(embed); Color color = embed.getColor(); diff --git a/src/main/java/com/alttd/buttonManager/buttons/autoReminder/ButtonRejected.java b/src/main/java/com/alttd/buttonManager/buttons/autoReminder/ButtonRejected.java index 8d9732d..d21fbb6 100644 --- a/src/main/java/com/alttd/buttonManager/buttons/autoReminder/ButtonRejected.java +++ b/src/main/java/com/alttd/buttonManager/buttons/autoReminder/ButtonRejected.java @@ -2,6 +2,7 @@ package com.alttd.buttonManager.buttons.autoReminder; import com.alttd.buttonManager.DiscordButton; import com.alttd.schedulers.ReminderScheduler; +import com.alttd.util.Logger; import com.alttd.util.Util; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; @@ -23,6 +24,7 @@ public class ButtonRejected extends DiscordButton { Message message = event.getMessage(); if (!ButtonReminderUtil.shouldExecute(message, event)) return; + Logger.altitudeLogs.debug("Rejecting reminder"); MessageEmbed embed = message.getEmbeds().get(0); EmbedBuilder embedBuilder = new EmbedBuilder(embed).setColor(Color.RED); ReminderScheduler.getInstance(event.getJDA()).removeReminder(message.getIdLong()); diff --git a/src/main/java/com/alttd/buttonManager/buttons/suggestionReview/ButtonSuggestionReviewAccept.java b/src/main/java/com/alttd/buttonManager/buttons/suggestionReview/ButtonSuggestionReviewAccept.java index 0464622..b6e0cf5 100644 --- a/src/main/java/com/alttd/buttonManager/buttons/suggestionReview/ButtonSuggestionReviewAccept.java +++ b/src/main/java/com/alttd/buttonManager/buttons/suggestionReview/ButtonSuggestionReviewAccept.java @@ -11,8 +11,6 @@ import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.channel.concrete.ForumChannel; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.channel.forums.ForumPost; -import net.dv8tion.jda.api.entities.channel.forums.ForumTag; import net.dv8tion.jda.api.entities.channel.forums.ForumTagSnowflake; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.entities.emoji.Emoji; @@ -25,7 +23,6 @@ import net.dv8tion.jda.api.utils.messages.MessageCreateData; import java.awt.*; import java.util.List; -import java.util.Optional; public class ButtonSuggestionReviewAccept extends DiscordButton { @@ -124,6 +121,11 @@ public class ButtonSuggestionReviewAccept extends DiscordButton { public void sendSuggestionInForum(ForumChannel forumChannel, TextChannel modLog, MessageEmbed.Field field, MessageEmbed suggestionMessage, String mentionMember, ButtonInteractionEvent event) { MessageCreateData messageCreateData = new MessageCreateBuilder().addContent("**Suggestion by: " + mentionMember + "**\n\n" + field.getValue() + "\u200B").build(); + if (field.getName() == null) { + Logger.altitudeLogs.error("Encountered empty name field when sending suggestion in forum"); + return; + } + forumChannel.createForumPost(field.getName(), messageCreateData).queue(success -> { event.getMessage().delete().queue(RestAction.getDefaultSuccess(), Util::handleFailure); event.replyEmbeds(Util.genericSuccessEmbed("Success", "The suggestion was accepted and posted in the suggestion channel")).setEphemeral(true).queue(); @@ -140,7 +142,7 @@ public class ButtonSuggestionReviewAccept extends DiscordButton { .findAny() .ifPresentOrElse(forumTag -> success.getThreadChannel().getManager().setAppliedTags(ForumTagSnowflake.fromId(forumTag.getIdLong())) .queue(RestAction.getDefaultSuccess(), Util::handleFailure), () -> { - Logger.warning("No [Unanswered] reaction found for suggestion"); + Logger.altitudeLogs.warning("No [Unanswered] reaction found for suggestion"); }); }, failure -> event.replyEmbeds(Util.genericErrorEmbed("Error", "Unable to send suggestion to the suggestion channel")) .setEphemeral(true).queue(RestAction.getDefaultSuccess(), Util::handleFailure)); diff --git a/src/main/java/com/alttd/commandManager/CommandManager.java b/src/main/java/com/alttd/commandManager/CommandManager.java index 3a21ce2..6d95d30 100644 --- a/src/main/java/com/alttd/commandManager/CommandManager.java +++ b/src/main/java/com/alttd/commandManager/CommandManager.java @@ -33,7 +33,7 @@ public class CommandManager extends ListenerAdapter { public CommandManager(JDA jda, ModalManager modalManager, ContextMenuManager contextMenuManager, LockedChannel lockedChannel, SelectMenuManager selectMenuManager) { commandList.put("manage", new ArrayList<>(List.of(new ScopeInfo(CommandScope.GLOBAL, 0)))); loadCommands(); - Logger.info("Loading commands..."); + Logger.altitudeLogs.info("Loading commands..."); CommandSetToggleableRoles commandSetToggleableRoles = new CommandSetToggleableRoles(jda, this); commands = List.of( new CommandManage(jda, this, contextMenuManager), @@ -152,13 +152,13 @@ public class CommandManager extends ListenerAdapter { commandList.put(commandName, scopeInfoList); } } catch (SQLException exception) { - Logger.sql(exception); + Logger.altitudeLogs.error(exception); } finally { try { if (statement != null) statement.close(); } catch (SQLException exception) { - Logger.sql(exception); + Logger.altitudeLogs.error(exception); } } } diff --git a/src/main/java/com/alttd/commandManager/commands/AddCommand/CommandManage.java b/src/main/java/com/alttd/commandManager/commands/AddCommand/CommandManage.java index f1a64d2..fa1b0f7 100644 --- a/src/main/java/com/alttd/commandManager/commands/AddCommand/CommandManage.java +++ b/src/main/java/com/alttd/commandManager/commands/AddCommand/CommandManage.java @@ -56,7 +56,7 @@ public class CommandManage extends DiscordCommand { String subcommandName = event.getInteraction().getSubcommandGroup(); subcommandName = subcommandName == null ? event.getInteraction().getSubcommandName() : subcommandName; if (subcommandName == null) { - Logger.severe("No subcommand found for %", getName()); + Logger.altitudeLogs.error("No subcommand found for " + getName()); return; } diff --git a/src/main/java/com/alttd/commandManager/commands/AddCommand/SubCommandDisable.java b/src/main/java/com/alttd/commandManager/commands/AddCommand/SubCommandDisable.java index 1c24db8..0117527 100644 --- a/src/main/java/com/alttd/commandManager/commands/AddCommand/SubCommandDisable.java +++ b/src/main/java/com/alttd/commandManager/commands/AddCommand/SubCommandDisable.java @@ -71,7 +71,7 @@ public class SubCommandDisable extends SubCommand { private boolean disableCommand(DiscordCommand command, long guildId) { if (!commandManager.disableCommand(command.getName(), new ScopeInfo(CommandScope.GUILD, guildId))) return false; - String sql = "REMOVE FROM commands WHERE command_name = ? AND scope = ? and location_id = ?"; + String sql = "DELETE FROM commands WHERE command_name = ? AND scope = ? and location_id = ?"; PreparedStatement statement = null; try { @@ -80,18 +80,18 @@ public class SubCommandDisable extends SubCommand { statement.setString(2, "GUILD"); statement.setLong(3, guildId); if (!statement.execute()) { - Logger.warning("Unable to disable command: % for guild: %", command.getName(), String.valueOf(guildId)); + Logger.altitudeLogs.warning("Unable to disable command: " + command.getName() + " for guild: " + guildId); return false; } } catch (SQLException exception) { - Logger.sql(exception); + Logger.altitudeLogs.error(exception); return false; } finally { try { if (statement != null) statement.close(); } catch (SQLException exception) { - Logger.sql(exception); + Logger.altitudeLogs.error(exception); } } return true; diff --git a/src/main/java/com/alttd/commandManager/commands/AddCommand/SubCommandEnable.java b/src/main/java/com/alttd/commandManager/commands/AddCommand/SubCommandEnable.java index b9c7705..1beb61d 100644 --- a/src/main/java/com/alttd/commandManager/commands/AddCommand/SubCommandEnable.java +++ b/src/main/java/com/alttd/commandManager/commands/AddCommand/SubCommandEnable.java @@ -112,18 +112,18 @@ public class SubCommandEnable extends SubCommand { statement.setString(2, "GUILD"); statement.setLong(3, guildId); if (statement.executeUpdate() == 0) { - Logger.warning("Unable to enable command: % for guild: %", command.getName(), String.valueOf(guildId)); + Logger.altitudeLogs.warning("Unable to enable command: " + command.getName() + " for guild: "+ guildId); return false; } } catch (SQLException exception) { - Logger.sql(exception); + Logger.altitudeLogs.error(exception); return false; } finally { try { if (statement != null) statement.close(); } catch (SQLException exception) { - Logger.sql(exception); + Logger.altitudeLogs.error(exception); } } return true; @@ -141,18 +141,18 @@ public class SubCommandEnable extends SubCommand { statement.setString(2, "GUILD"); statement.setLong(3, guildId); if (statement.executeUpdate() == 0) { - Logger.warning("Unable to enable command: % for guild: %", contextMenu.getContextMenuId(), String.valueOf(guildId)); + Logger.altitudeLogs.warning("Unable to enable command: " + contextMenu.getContextMenuId() + " for guild: " + guildId); return false; } } catch (SQLException exception) { - Logger.sql(exception); + Logger.altitudeLogs.error(exception); return false; } finally { try { if (statement != null) statement.close(); } catch (SQLException exception) { - Logger.sql(exception); + Logger.altitudeLogs.error(exception); } } return true; @@ -180,7 +180,7 @@ public class SubCommandEnable extends SubCommand { .filter(name -> name.toLowerCase().startsWith(commandName)) .filter(name -> !commandManager.getActiveLocations(name).contains(scopeInfo)) .limit(25) - .collect(Collectors.toList())); + .toList()); event.replyChoiceStrings(collect).queue(); } diff --git a/src/main/java/com/alttd/commandManager/commands/CommandAuction.java b/src/main/java/com/alttd/commandManager/commands/CommandAuction.java index f807261..99784d6 100644 --- a/src/main/java/com/alttd/commandManager/commands/CommandAuction.java +++ b/src/main/java/com/alttd/commandManager/commands/CommandAuction.java @@ -103,7 +103,7 @@ public class CommandAuction extends DiscordCommand { Integer startingPrice = event.getOption("starting-price", OptionMapping::getAsInt); if (startingPrice == null) { - Logger.severe("Starting price magically became null"); + Logger.altitudeLogs.error("Starting price magically became null"); replyCallbackAction.setEmbeds(Util.genericSuccessEmbed("Error", "Failed to store auction")) .queue(); return; diff --git a/src/main/java/com/alttd/commandManager/commands/PollCommand/CommandPoll.java b/src/main/java/com/alttd/commandManager/commands/PollCommand/CommandPoll.java index bd66efc..5d516cb 100644 --- a/src/main/java/com/alttd/commandManager/commands/PollCommand/CommandPoll.java +++ b/src/main/java/com/alttd/commandManager/commands/PollCommand/CommandPoll.java @@ -83,7 +83,7 @@ public class CommandPoll extends DiscordCommand { String subcommandName = event.getInteraction().getSubcommandGroup(); subcommandName = subcommandName == null ? event.getInteraction().getSubcommandName() : subcommandName; if (subcommandName == null) { - Logger.severe("No subcommand found for %", getName()); + Logger.altitudeLogs.error("No subcommand found for " + getName()); return; } diff --git a/src/main/java/com/alttd/commandManager/commands/PollCommand/SubCommandAdd.java b/src/main/java/com/alttd/commandManager/commands/PollCommand/SubCommandAdd.java index bec0d93..8a5ad84 100644 --- a/src/main/java/com/alttd/commandManager/commands/PollCommand/SubCommandAdd.java +++ b/src/main/java/com/alttd/commandManager/commands/PollCommand/SubCommandAdd.java @@ -83,7 +83,7 @@ public class SubCommandAdd extends SubCommand { } private void failedCreatingPoll(Throwable throwable, InteractionHook hook) { - Logger.warning(throwable.getMessage()); + Logger.altitudeLogs.warning(throwable.getMessage()); hook.editOriginalEmbeds(Util.genericErrorEmbed("Failed to create Poll", "Unable to create poll, please contact an Admin.")) .queue(); diff --git a/src/main/java/com/alttd/commandManager/commands/PollCommand/SubCommandAddButton.java b/src/main/java/com/alttd/commandManager/commands/PollCommand/SubCommandAddButton.java index 4b22acc..69182ea 100644 --- a/src/main/java/com/alttd/commandManager/commands/PollCommand/SubCommandAddButton.java +++ b/src/main/java/com/alttd/commandManager/commands/PollCommand/SubCommandAddButton.java @@ -82,7 +82,7 @@ public class SubCommandAddButton extends SubCommand { } private void failedToGetMessage(Throwable throwable, InteractionHook hook) { - Logger.warning(throwable.getMessage()); + Logger.altitudeLogs.warning(throwable.getMessage()); hook.editOriginalEmbeds(Util.genericErrorEmbed("Failed to get poll message", "Please check if the poll still exists and the message id is correct.")) .queue(); diff --git a/src/main/java/com/alttd/config/AbstractConfig.java b/src/main/java/com/alttd/config/AbstractConfig.java index 3289e8f..62e4011 100644 --- a/src/main/java/com/alttd/config/AbstractConfig.java +++ b/src/main/java/com/alttd/config/AbstractConfig.java @@ -3,8 +3,6 @@ package com.alttd.config; import com.alttd.AltitudeBot; import com.alttd.util.Logger; import io.leangen.geantyref.TypeToken; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.configurate.ConfigurationNode; import org.spongepowered.configurate.ConfigurationOptions; import org.spongepowered.configurate.serialize.SerializationException; @@ -18,7 +16,6 @@ import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.List; -import java.util.Map; import java.util.regex.Pattern; @SuppressWarnings({"unused", "SameParameterValue"}) @@ -70,7 +67,7 @@ public abstract class AbstractConfig { } catch (InvocationTargetException ex) { throw new RuntimeException(ex.getCause()); } catch (Exception ex) { - Logger.severe("Error invoking %.", method.toString()); + Logger.altitudeLogs.error("Error invoking " + method); ex.printStackTrace(); } } diff --git a/src/main/java/com/alttd/console/ConsoleActivity.java b/src/main/java/com/alttd/console/ConsoleActivity.java index 0608abf..5cc4151 100644 --- a/src/main/java/com/alttd/console/ConsoleActivity.java +++ b/src/main/java/com/alttd/console/ConsoleActivity.java @@ -25,15 +25,15 @@ public class ConsoleActivity extends ConsoleCommand { if (args.length == 1) { Activity activity = jda.getPresence().getActivity(); if (activity == null) - Logger.info("No activity found."); + Logger.altitudeLogs.info("No activity found."); else - Logger.info("Current activity: Listening to " + activity.getName()); + Logger.altitudeLogs.info("Current activity: Listening to " + activity.getName()); return; } String newActivity = String.join(" ", Arrays.copyOfRange(args, 1, args.length)); SettingsConfig.setActivity(newActivity); jda.getPresence().setActivity(Activity.listening(newActivity)); - Logger.info("Set activity to: Listening to " + newActivity); + Logger.altitudeLogs.info("Set activity to: Listening to " + newActivity); } @Override diff --git a/src/main/java/com/alttd/console/ConsoleCommandManager.java b/src/main/java/com/alttd/console/ConsoleCommandManager.java index ded9cf0..8bcef99 100644 --- a/src/main/java/com/alttd/console/ConsoleCommandManager.java +++ b/src/main/java/com/alttd/console/ConsoleCommandManager.java @@ -36,7 +36,7 @@ public class ConsoleCommandManager { .filter(consoleCommand -> consoleCommand.getName().equalsIgnoreCase(command)) .findFirst(); if (first.isEmpty()) { - Logger.info("Invalid command, see help for more info."); + Logger.altitudeLogs.info("Invalid command, see help for more info."); return; } first.get().execute(command, args); @@ -47,7 +47,7 @@ public class ConsoleCommandManager { } public static void startConsoleCommands(JDA jda) { - Logger.info("Starting console commands"); + Logger.altitudeLogs.info("Starting console commands"); if (instance == null) instance = new ConsoleCommandManager(jda); } diff --git a/src/main/java/com/alttd/console/ConsoleHelp.java b/src/main/java/com/alttd/console/ConsoleHelp.java index 3697bad..bda5fec 100644 --- a/src/main/java/com/alttd/console/ConsoleHelp.java +++ b/src/main/java/com/alttd/console/ConsoleHelp.java @@ -24,7 +24,7 @@ public class ConsoleHelp extends ConsoleCommand { Template template = Template.of("commands", commandManager.getCommands().stream() .map(ConsoleCommand::getHelpMessage) .collect(Collectors.joining("\n"))); - Logger.info(Parser.parse("Commands:\n", template)); + Logger.altitudeLogs.info(Parser.parse("Commands:\n", template)); } @Override diff --git a/src/main/java/com/alttd/console/ConsoleReload.java b/src/main/java/com/alttd/console/ConsoleReload.java index 0db50fe..9baf329 100644 --- a/src/main/java/com/alttd/console/ConsoleReload.java +++ b/src/main/java/com/alttd/console/ConsoleReload.java @@ -13,20 +13,18 @@ public class ConsoleReload extends ConsoleCommand { @Override public void execute(String command, String[] args) { if (args.length != 2) { - Logger.info("Invalid argument length: " + getHelpMessage()); + Logger.altitudeLogs.info("Invalid argument length: " + getHelpMessage()); return; } switch (args[1]) { case "config" -> { MessagesConfig.reload(); - Logger.info("Reloaded Messages config."); + Logger.altitudeLogs.info("Reloaded Messages config."); SettingsConfig.reload(); - Logger.info("Reloaded Settings config."); + Logger.altitudeLogs.info("Reloaded Settings config."); } - case "database" -> { - Logger.info("NOT IMPLEMENTED YET"); - } - default -> Logger.info("Invalid argument: " + args[1]); + case "database" -> Logger.altitudeLogs.info("NOT IMPLEMENTED YET"); + default -> Logger.altitudeLogs.info("Invalid argument: " + args[1]); } } diff --git a/src/main/java/com/alttd/console/ConsoleStatus.java b/src/main/java/com/alttd/console/ConsoleStatus.java index dbddb41..ec76862 100644 --- a/src/main/java/com/alttd/console/ConsoleStatus.java +++ b/src/main/java/com/alttd/console/ConsoleStatus.java @@ -4,7 +4,6 @@ import com.alttd.config.SettingsConfig; import com.alttd.util.Logger; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.OnlineStatus; -import net.dv8tion.jda.api.entities.Activity; import java.util.Arrays; import java.util.stream.Collectors; @@ -26,20 +25,20 @@ public class ConsoleStatus extends ConsoleCommand{ public void execute(String command, String[] args) { if (args.length == 1) { OnlineStatus status = jda.getPresence().getStatus(); - Logger.info("Current status: " + status.getKey()); + Logger.altitudeLogs.info("Current status: " + status.getKey()); return; } if (args.length != 2) { - Logger.info("Invalid argument length."); + Logger.altitudeLogs.info("Invalid argument length."); return; } try { OnlineStatus status = OnlineStatus.fromKey(args[1].toLowerCase()); SettingsConfig.setStatus(status.getKey()); jda.getPresence().setStatus(status); - Logger.info("Set status to: " + SettingsConfig.STATUS); + Logger.altitudeLogs.info("Set status to: " + SettingsConfig.STATUS); } catch (IllegalArgumentException exception) { - Logger.info("Invalid status please use any of the following " + Logger.altitudeLogs.info("Invalid status please use any of the following " + Arrays.stream(OnlineStatus.values()) .map(OnlineStatus::getKey) .collect(Collectors.joining(", "))); diff --git a/src/main/java/com/alttd/console/ConsoleStop.java b/src/main/java/com/alttd/console/ConsoleStop.java index 2f63684..119c70e 100644 --- a/src/main/java/com/alttd/console/ConsoleStop.java +++ b/src/main/java/com/alttd/console/ConsoleStop.java @@ -11,7 +11,7 @@ public class ConsoleStop extends ConsoleCommand { @Override public void execute(String command, String[] args) { - Logger.info("Stopping bot..."); + Logger.altitudeLogs.info("Stopping bot..."); AltitudeBot.getInstance().getJDA().cancelRequests(); System.exit(0); } diff --git a/src/main/java/com/alttd/database/Database.java b/src/main/java/com/alttd/database/Database.java index 791ee86..9341d7f 100644 --- a/src/main/java/com/alttd/database/Database.java +++ b/src/main/java/com/alttd/database/Database.java @@ -18,7 +18,7 @@ public class Database { try { instance.openConnection(); } catch (Exception e) { - Logger.exception(e); + Logger.altitudeLogs.error(e); } } @@ -34,7 +34,7 @@ public class Database { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { - Logger.exception(e); + Logger.altitudeLogs.error(e); } connection = DriverManager.getConnection( "jdbc:" + SettingsConfig.DATABASE_DRIVER @@ -55,11 +55,8 @@ public class Database { try { instance.openConnection(); } - catch (SQLException e) { - Logger.sql(e); - } catch (Exception e){ - Logger.exception(e); + Logger.altitudeLogs.error(e); } return instance.connection; diff --git a/src/main/java/com/alttd/database/DatabaseTables.java b/src/main/java/com/alttd/database/DatabaseTables.java index a5d99a3..167bbce 100644 --- a/src/main/java/com/alttd/database/DatabaseTables.java +++ b/src/main/java/com/alttd/database/DatabaseTables.java @@ -11,27 +11,29 @@ import java.sql.SQLException; public class DatabaseTables { private static DatabaseTables instance = null; - private Connection connection; + private final Connection connection; - protected DatabaseTables (Connection connection) { + protected DatabaseTables(Connection connection) { this.connection = connection; init(DatabaseTables.class, this); } private void init(Class clazz, Object instance) { for (Method method : clazz.getDeclaredMethods()) { - if (Modifier.isPrivate(method.getModifiers())) { - if (method.getParameterTypes().length == 0 && method.getReturnType() == Void.TYPE && method.getName().contains("Table")) { - try { - method.setAccessible(true); - method.invoke(instance); - } catch (InvocationTargetException ex) { - throw new RuntimeException(ex.getCause()); - } catch (Exception ex) { - Logger.severe("Error invoking %.", method.toString()); - ex.printStackTrace(); - } - } + if (!Modifier.isPrivate(method.getModifiers())) { + continue; + } + if (method.getParameterTypes().length != 0 || method.getReturnType() != Void.TYPE || !method.getName().contains("Table")) { + continue; + } + try { + method.setAccessible(true); + method.invoke(instance); + } catch (InvocationTargetException ex) { + throw new RuntimeException(ex.getCause()); + } catch (Exception ex) { + Logger.altitudeLogs.error("Error invoking " + method); + ex.printStackTrace(); } } } @@ -49,8 +51,8 @@ public class DatabaseTables { try { connection.prepareStatement(sql).executeUpdate(); } catch (SQLException e) { - Logger.sql(e); - Logger.severe("Unable to create polls table, shutting down..."); + Logger.altitudeLogs.error(e); + Logger.altitudeLogs.error("Unable to create polls table, shutting down..."); } } @@ -64,8 +66,8 @@ public class DatabaseTables { try { connection.prepareStatement(sql).executeUpdate(); } catch (SQLException e) { - Logger.sql(e); - Logger.severe("Unable to create commands table, shutting down..."); + Logger.altitudeLogs.error(e); + Logger.altitudeLogs.error("Unable to create commands table, shutting down..."); } } @@ -80,8 +82,8 @@ public class DatabaseTables { try { connection.prepareStatement(sql).executeUpdate(); } catch (SQLException e) { - Logger.sql(e); - Logger.severe("Unable to create output channel table, shutting down..."); + Logger.altitudeLogs.error(e); + Logger.altitudeLogs.error("Unable to create output channel table, shutting down..."); } } @@ -94,8 +96,8 @@ public class DatabaseTables { try { connection.prepareStatement(sql).executeUpdate(); } catch (SQLException e) { - Logger.sql(e); - Logger.severe("Unable to create toggleable roles table, shutting down..."); + Logger.altitudeLogs.error(e); + Logger.altitudeLogs.error("Unable to create toggleable roles table, shutting down..."); } } @@ -118,8 +120,8 @@ public class DatabaseTables { try { connection.prepareStatement(sql).executeUpdate(); } catch (SQLException e) { - Logger.sql(e); - Logger.severe("Unable to create reminders table, shutting down..."); + Logger.altitudeLogs.error(e); + Logger.altitudeLogs.error("Unable to create reminders table, shutting down..."); } } @@ -132,8 +134,8 @@ public class DatabaseTables { try { connection.prepareStatement(sql).executeUpdate(); } catch (SQLException e) { - Logger.sql(e); - Logger.severe("Unable to create locked channels table, shutting down..."); + Logger.altitudeLogs.error(e); + Logger.altitudeLogs.error("Unable to create locked channels table, shutting down..."); } } @@ -152,8 +154,8 @@ public class DatabaseTables { try { connection.prepareStatement(sql).executeUpdate(); } catch (SQLException e) { - Logger.sql(e); - Logger.severe("Unable to create auction table, shutting down..."); + Logger.altitudeLogs.error(e); + Logger.altitudeLogs.error("Unable to create auction table, shutting down..."); } } @@ -169,8 +171,8 @@ public class DatabaseTables { try { connection.prepareStatement(sql).executeUpdate(); } catch (SQLException e) { - Logger.sql(e); - Logger.severe("Unable to create auction action table, shutting down..."); + Logger.altitudeLogs.error(e); + Logger.altitudeLogs.error("Unable to create auction action table, shutting down..."); } } diff --git a/src/main/java/com/alttd/database/queries/QueriesAssignAppeal.java b/src/main/java/com/alttd/database/queries/QueriesAssignAppeal.java index 794c494..f98794b 100644 --- a/src/main/java/com/alttd/database/queries/QueriesAssignAppeal.java +++ b/src/main/java/com/alttd/database/queries/QueriesAssignAppeal.java @@ -2,7 +2,6 @@ package com.alttd.database.queries; import com.alttd.database.Database; import com.alttd.util.Logger; -import com.google.protobuf.StringValue; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -65,7 +64,7 @@ public class QueriesAssignAppeal { if (nextUserId == -1) { nextUserId = selectNextAssignment(0); if (nextUserId == -1) { - Logger.warning("No one to assign appeals to!"); + Logger.altitudeLogs.warning("No one to assign appeals to!"); return; } } @@ -82,7 +81,7 @@ public class QueriesAssignAppeal { int res1 = statement1.executeUpdate(); int res2 = statement2.executeUpdate(); if (res1 != 1 || res2 != 1) { - Logger.warning("Unable to assign next appeal but got no error? results: " + res1 + res2); + Logger.altitudeLogs.warning("Unable to assign next appeal but got no error? results: " + res1 + res2); } } catch (SQLException exception) { exception.printStackTrace(); @@ -96,7 +95,7 @@ public class QueriesAssignAppeal { private static void resetAssignedAppeal() { long userId = selectNextAssignment(0); if (userId == -1) { - Logger.warning("No one to assign appeals to!"); + Logger.altitudeLogs.warning("No one to assign appeals to!"); } else { setNextAppeal(userId); } diff --git a/src/main/java/com/alttd/database/queries/QueriesAuctionActions/QueriesAuctionAction.java b/src/main/java/com/alttd/database/queries/QueriesAuctionActions/QueriesAuctionAction.java index 75a8a91..1104adb 100644 --- a/src/main/java/com/alttd/database/queries/QueriesAuctionActions/QueriesAuctionAction.java +++ b/src/main/java/com/alttd/database/queries/QueriesAuctionActions/QueriesAuctionAction.java @@ -50,7 +50,7 @@ public class QueriesAuctionAction { try { auctionType = AuctionType.valueOf(actionTypeString); } catch (IllegalArgumentException e) { - Logger.warning("Invalid auction type found in database for message: % at time: %", messageId + "", actionTime + ""); + Logger.altitudeLogs.warning("Invalid auction type found in database for message: " + messageId + " at time: " + actionTime); continue; } actions.add(new AuctionAction(auctionType, userId, messageId, price, actionTime)); diff --git a/src/main/java/com/alttd/database/queries/QueriesReminders/QueriesReminders.java b/src/main/java/com/alttd/database/queries/QueriesReminders/QueriesReminders.java index 71acdf0..28fad19 100644 --- a/src/main/java/com/alttd/database/queries/QueriesReminders/QueriesReminders.java +++ b/src/main/java/com/alttd/database/queries/QueriesReminders/QueriesReminders.java @@ -37,7 +37,7 @@ public class QueriesReminders { return -1; } catch (SQLException e) { - Logger.exception(e); + Logger.altitudeLogs.error(e); } return -1; } @@ -59,7 +59,7 @@ public class QueriesReminders { return -1; } catch (SQLException e) { - Logger.exception(e); + Logger.altitudeLogs.error(e); } return -1; } @@ -73,7 +73,7 @@ public class QueriesReminders { return preparedStatement.executeUpdate() == 1; } catch (SQLException e) { - Logger.exception(e); + Logger.altitudeLogs.error(e); } return false; } @@ -90,7 +90,7 @@ public class QueriesReminders { } return reminders; } catch (SQLException e) { - Logger.exception(e); + Logger.altitudeLogs.error(e); } return null; } @@ -110,9 +110,11 @@ public class QueriesReminders { byte[] data = null; try { - data = resultSet.getBlob("data").getBinaryStream().readAllBytes(); + Blob blob = resultSet.getBlob("data"); + if (blob != null) + data = blob.getBinaryStream().readAllBytes(); } catch (IOException e) { - Logger.warning("Unable to read data for reminder with id: " + id); + Logger.altitudeLogs.warning("Unable to read data for reminder with id: " + id); } return new Reminder(id, title, desc, userId, guildId, channelId, messageId, shouldRepeat, creationDate, remindDate, reminderType, data); diff --git a/src/main/java/com/alttd/database/queries/QueriesReminders/Reminder.java b/src/main/java/com/alttd/database/queries/QueriesReminders/Reminder.java index 11dc6dc..eb6c00b 100644 --- a/src/main/java/com/alttd/database/queries/QueriesReminders/Reminder.java +++ b/src/main/java/com/alttd/database/queries/QueriesReminders/Reminder.java @@ -33,7 +33,7 @@ public record Reminder (int id, String title, String description, long userId, l if (channelById == null) channelById = guildById.getThreadChannelById(this.channelId); if (channelById == null) { - Logger.warning("Unable to find text channel for reminder, text channel id: [" + channelId + "]"); + Logger.altitudeLogs.warning("Unable to find text channel for reminder, text channel id: [" + channelId + "]"); return null; } @@ -43,7 +43,7 @@ public record Reminder (int id, String title, String description, long userId, l public Guild getGuild(JDA jda) { Guild guildById = jda.getGuildById(guildId); if (guildById == null) { - Logger.warning("Unable to find guild for reminder, guild id: [" + guildId + "]"); + Logger.altitudeLogs.warning("Unable to find guild for reminder, guild id: [" + guildId + "]"); return null; } diff --git a/src/main/java/com/alttd/database/queries/commandOutputChannels/CommandOutputChannels.java b/src/main/java/com/alttd/database/queries/commandOutputChannels/CommandOutputChannels.java index b15946b..8dced7a 100644 --- a/src/main/java/com/alttd/database/queries/commandOutputChannels/CommandOutputChannels.java +++ b/src/main/java/com/alttd/database/queries/commandOutputChannels/CommandOutputChannels.java @@ -24,7 +24,7 @@ public class CommandOutputChannels { return preparedStatement.executeUpdate() == 1; } catch (SQLException e) { - Logger.exception(e); + Logger.altitudeLogs.error(e); return false; } } @@ -68,7 +68,7 @@ public class CommandOutputChannels { } } } catch (SQLException e) { - Logger.exception(e); + Logger.altitudeLogs.error(e); } return null; } diff --git a/src/main/java/com/alttd/listeners/AppealRepost.java b/src/main/java/com/alttd/listeners/AppealRepost.java index d9f28c2..46ecf89 100644 --- a/src/main/java/com/alttd/listeners/AppealRepost.java +++ b/src/main/java/com/alttd/listeners/AppealRepost.java @@ -31,56 +31,46 @@ public class AppealRepost extends ListenerAdapter { private final ButtonManager buttonManager; public AppealRepost(ButtonManager buttonManager) { - Logger.info("Created Appeal Repost -----------------------------------------------------------------------------------------------------------"); + Logger.altitudeLogs.info("Created Appeal Repost -----------------------------------------------------------------------------------------------------------"); this.buttonManager = buttonManager; } @Override public void onMessageReceived(@Nonnull MessageReceivedEvent event) { - Logger.info("Message received:"); - Logger.info(event.getMessage() + "\n\n" + event.getMessage().getContentRaw() + "\n\nembeds: " + event.getMessage().getEmbeds().size()); if (event.getMember() != null) { //Webhooks aren't members - Logger.info("Return 1"); return; } - if (event.getGuild().getIdLong() != 514920774923059209L) { - Logger.info("Return 2"); + if (!event.isFromGuild() || event.getGuild().getIdLong() != 514920774923059209L) { return; } if (event.getChannel().getIdLong() != 514922555950235681L) { - Logger.info("Return 3 channel was: " + event.getChannel().getId()); return; } Message message = event.getMessage(); List embeds = message.getEmbeds(); if (embeds.size() == 0) { - Logger.info("Return 4"); return; } MessageEmbed messageEmbed = embeds.get(0); List fields = messageEmbed.getFields(); if (fields.size() == 0) { - Logger.info("Return 5"); return; } String name = fields.get(0).getName(); if (name == null || !name.equals("Punishment info")) { - Logger.info("Return 6"); return; } + Logger.altitudeLogs.debug("Creating appeal"); EmbedBuilder embedBuilder = new EmbedBuilder(messageEmbed); long userId = QueriesAssignAppeal.getAssignAppeal(); if (userId == -1){ - Logger.info("user id was -1"); assignAndSendAppeal(embedBuilder, message, null); } else { Guild guild = message.getGuild(); Member member = guild.getMemberById(userId); if (member != null) { - Logger.info("member was in cache"); assignAndSendAppeal(embedBuilder, message, member); } else { - Logger.info("member wasn't in cache"); guild.retrieveMemberById(userId).queue(result -> assignAndSendAppeal(embedBuilder, message, result)); } } @@ -96,7 +86,7 @@ public class AppealRepost extends ListenerAdapter { Button reminderInProgress = buttonManager.getButtonFor("reminder_in_progress"); Button reminderDenied = buttonManager.getButtonFor("reminder_denied"); if (reminderAccepted == null || reminderInProgress == null || reminderDenied == null) { - Logger.warning("Unable to get a button for appeals"); + Logger.altitudeLogs.warning("Unable to get a button for appeals"); return; } message.getChannel().sendMessageEmbeds(embed).queue(res -> { @@ -108,7 +98,7 @@ public class AppealRepost extends ListenerAdapter { threadChannel.sendMessage(member.getAsMention() + " you have a new appeal!").queue(); } }), - failure -> Logger.warning("Unable to create thread channel so won't schedule reminder...")); + failure -> Logger.altitudeLogs.warning("Unable to create thread channel so won't schedule reminder...")); }); message.delete().queue(); @@ -144,7 +134,7 @@ public class AppealRepost extends ListenerAdapter { int id = QueriesReminders.storeReminder(reminder); if (id == 0) { - Logger.warning("Unable to store reminder for appeal with message id: " + message.getId()); + Logger.altitudeLogs.warning("Unable to store reminder for appeal with message id: " + message.getId()); return; } @@ -153,7 +143,7 @@ public class AppealRepost extends ListenerAdapter { ReminderScheduler instance = ReminderScheduler.getInstance(message.getJDA()); if (instance == null) { QueriesReminders.removeReminder(reminder.id()); - Logger.warning("Unable to start reminder, removing it from the database..."); + Logger.altitudeLogs.warning("Unable to start reminder, removing it from the database..."); return; } diff --git a/src/main/java/com/alttd/listeners/JDAListener.java b/src/main/java/com/alttd/listeners/JDAListener.java index a116de2..c742e38 100644 --- a/src/main/java/com/alttd/listeners/JDAListener.java +++ b/src/main/java/com/alttd/listeners/JDAListener.java @@ -27,7 +27,7 @@ public class JDAListener extends ListenerAdapter { @Override public void onReady(@NotNull ReadyEvent event) { - Logger.info("JDA ready to register commands."); + Logger.altitudeLogs.info("JDA ready to register commands."); LockedChannel lockedChannel = new LockedChannel(); ButtonManager buttonManager = new ButtonManager(); AppealRepost appealRepost = new AppealRepost(buttonManager); @@ -43,11 +43,11 @@ public class JDAListener extends ListenerAdapter { private void startSchedulers() { ReminderScheduler reminderScheduler = ReminderScheduler.getInstance(jda); if (reminderScheduler == null) - Logger.severe("Unable to start reminder scheduler!"); + Logger.altitudeLogs.error("Unable to start reminder scheduler!"); AuctionScheduler auctionScheduler = AuctionScheduler.getInstance(); if (auctionScheduler == null) - Logger.severe("Unable to start auction scheduler!"); + Logger.altitudeLogs.error("Unable to start auction scheduler!"); } @Override diff --git a/src/main/java/com/alttd/listeners/LockedChannel.java b/src/main/java/com/alttd/listeners/LockedChannel.java index a99c780..db58e30 100644 --- a/src/main/java/com/alttd/listeners/LockedChannel.java +++ b/src/main/java/com/alttd/listeners/LockedChannel.java @@ -18,7 +18,7 @@ public class LockedChannel extends ListenerAdapter { HashMap> tmp = QueriesLockedChannels.getLockedChannels(); lockedChannels = Objects.requireNonNullElseGet(tmp, HashMap::new); if (tmp == null) - Logger.severe("Unable to load data from Locked Channels table"); + Logger.altitudeLogs.error("Unable to load data from Locked Channels table"); } public synchronized boolean lockChannel(long guildId, long channelId) { diff --git a/src/main/java/com/alttd/request/RequestConfig.java b/src/main/java/com/alttd/request/RequestConfig.java index ce450aa..b43a16f 100644 --- a/src/main/java/com/alttd/request/RequestConfig.java +++ b/src/main/java/com/alttd/request/RequestConfig.java @@ -23,6 +23,7 @@ public class RequestConfig extends AbstractConfig { public static String REQUEST_CATEGORY = "776590138296893481"; public static String REQUEST_CHANNEL = "1017787342561476709"; public static String REQUEST_MESSAGE = ""; + @SuppressWarnings("unused") private void settings() { REQUEST_GUILD_ID = requestConfig.getString("request.guild", REQUEST_GUILD_ID); REQUEST_CATEGORY = requestConfig.getString("request.category", REQUEST_CATEGORY); @@ -37,6 +38,7 @@ public class RequestConfig extends AbstractConfig { } public static final List requests = new ArrayList<>(); + @SuppressWarnings("unused") private void loadRequests() { requests.clear(); requestConfig.getNode("types").childrenMap().forEach((key, value) -> { @@ -48,7 +50,7 @@ public class RequestConfig extends AbstractConfig { String description = value.node("description").getString(); String message = value.node("message").getString(); if (id == null || category == null || channel == null || name == null || description == null || message == null) { - Logger.warning("Requests are set up incorrectly!"); + Logger.altitudeLogs.warning("Requests are set up incorrectly!"); } else { requests.add(new Request(id, category, channel, name, title, description, message)); } diff --git a/src/main/java/com/alttd/schedulers/AuctionScheduler.java b/src/main/java/com/alttd/schedulers/AuctionScheduler.java index b9af1a9..3d1fe3a 100644 --- a/src/main/java/com/alttd/schedulers/AuctionScheduler.java +++ b/src/main/java/com/alttd/schedulers/AuctionScheduler.java @@ -30,7 +30,7 @@ public class AuctionScheduler { instance = this; auctions = QueriesAuction.getAuctions(); if (auctions == null) { - Logger.severe("Unable to retrieve auctions"); + Logger.altitudeLogs.error("Unable to retrieve auctions"); instance = null; return; } @@ -41,10 +41,7 @@ public class AuctionScheduler { private void setNextAuction() { Optional first = auctions.values().stream().sorted().findFirst(); - if (first.isEmpty()) - nextAuction = null; - else - nextAuction = first.get(); + nextAuction = first.orElse(null); } public static AuctionScheduler getInstance() { @@ -55,7 +52,7 @@ public class AuctionScheduler { public synchronized void addAuction(Auction auction) { if (!QueriesAuction.saveAuction(auction)) - Logger.warning("Unable to save auction %", auction.getMessageId() + ""); + Logger.altitudeLogs.warning("Unable to save auction " + auction.getMessageId()); auctions.put(auction.getMessageId(), auction); setNextAuction(); } @@ -69,7 +66,7 @@ public class AuctionScheduler { auctions.remove(auction.getMessageId()); setNextAuction(); if (!QueriesAuction.removeAuction(auction)) - Logger.warning("Unable to remove auction %", auction.getMessageId() + ""); + Logger.altitudeLogs.warning("Unable to remove auction " + auction.getMessageId()); } public Auction getAuction(long messageId) { @@ -80,17 +77,17 @@ public class AuctionScheduler { auction.updateMessage(success -> { List embeds = success.getEmbeds(); if (embeds.isEmpty()) { - Logger.warning("Received auction with no embed contents"); + Logger.altitudeLogs.warning("Received auction with no embed contents"); return; } GuildChannel outputChannel = CommandOutputChannels.getOutputChannel(success.getGuild(), OutputType.AUCTION_LOG); if (outputChannel != null) { if (!(outputChannel instanceof GuildMessageChannel channel)) { - Logger.warning("Error" + outputChannel.getType().name() + " is not a valid crate auction log channel type"); + Logger.altitudeLogs.warning("Error" + outputChannel.getType().name() + " is not a valid crate auction log channel type"); return; } if (!channel.canTalk()) { - Logger.warning("Error can't talk in auction log channel"); + Logger.altitudeLogs.warning("Error can't talk in auction log channel"); return; } if (sendEmbed(embeds.get(0), channel, instaBuy)) @@ -129,7 +126,7 @@ public class AuctionScheduler { embedBuilder.setColor(Color.GREEN); else embedBuilder.setColor(Color.RED); - textChannel.sendMessageEmbeds(embedBuilder.build()).queue(Util::ignoreSuccess, failure -> Logger.warning("Failed to log auction result")); + textChannel.sendMessageEmbeds(embedBuilder.build()).queue(Util::ignoreSuccess, failure -> Logger.altitudeLogs.warning("Failed to log auction result")); return true; } private class AuctionRun implements Runnable { diff --git a/src/main/java/com/alttd/schedulers/ReminderScheduler.java b/src/main/java/com/alttd/schedulers/ReminderScheduler.java index dc27a00..e3ee23c 100644 --- a/src/main/java/com/alttd/schedulers/ReminderScheduler.java +++ b/src/main/java/com/alttd/schedulers/ReminderScheduler.java @@ -20,7 +20,6 @@ import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Comparator; -import java.util.Date; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -37,7 +36,7 @@ public class ReminderScheduler { this.jda = jda; reminders = QueriesReminders.getReminders(); if (reminders == null) { - Logger.severe("Unable to retrieve reminders"); + Logger.altitudeLogs.error("Unable to retrieve reminders"); instance = null; return; } @@ -58,12 +57,14 @@ public class ReminderScheduler { } public synchronized void addReminder(Reminder reminder) { + Logger.altitudeLogs.debug("Adding reminder with messageId: " + reminder.messageId()); reminders.add(reminder); reminders.sort(Comparator.comparingLong(Reminder::remindDate)); nextReminder = reminders.get(0); } public synchronized void removeReminder(Reminder reminder, boolean removeFromDatabase) { + Logger.altitudeLogs.debug("Removing reminder with messageId: " + reminder.messageId()); reminders.remove(reminder); if (reminders.size() == 0) nextReminder = null; @@ -74,6 +75,7 @@ public class ReminderScheduler { } public synchronized void removeReminder(long messageId) { + Logger.altitudeLogs.debug("Attempting to remove reminder with messageId: " + messageId); reminders.stream() .filter(reminder -> reminder.messageId() == messageId) .findAny() @@ -88,7 +90,7 @@ public class ReminderScheduler { while (nextReminder != null && time > nextReminder.remindDate()) { Channel channel = nextReminder.getChannel(jda); if (channel == null) { - Logger.warning("Couldn't find channel, unable to run reminder: " + nextReminder.id() + + Logger.altitudeLogs.warning("Couldn't find channel, unable to run reminder: " + nextReminder.id() + "\ntitle: [" + nextReminder.title() + "]\ndescription: [" + nextReminder.description() + "]"); return; @@ -143,9 +145,7 @@ public class ReminderScheduler { return threadChannel.sendMessageEmbeds(embedBuilder.build()); } } - default -> { - Logger.warning("Received unexpected channel type " + channel.getType() + " can't send reminder..."); - } + default -> Logger.altitudeLogs.warning("Received unexpected channel type " + channel.getType() + " can't send reminder..."); } return null; } diff --git a/src/main/java/com/alttd/util/ExcelWriter.java b/src/main/java/com/alttd/util/ExcelWriter.java index 41a0d80..2208857 100644 --- a/src/main/java/com/alttd/util/ExcelWriter.java +++ b/src/main/java/com/alttd/util/ExcelWriter.java @@ -2,11 +2,13 @@ package com.alttd.util; import net.dv8tion.jda.api.interactions.InteractionHook; import net.dv8tion.jda.api.utils.FileUpload; -import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; @@ -28,7 +30,7 @@ public class ExcelWriter { public synchronized void addRow(String... data) { if (done) { - Logger.warning("Tried to write to finished excel file"); + Logger.altitudeLogs.warning("Tried to write to finished excel file"); return; } Row row = sheet.createRow(currentRow++); diff --git a/src/main/java/com/alttd/util/Logger.java b/src/main/java/com/alttd/util/Logger.java index 03dc3e9..7571fc7 100644 --- a/src/main/java/com/alttd/util/Logger.java +++ b/src/main/java/com/alttd/util/Logger.java @@ -1,84 +1,32 @@ package com.alttd.util; import com.alttd.AltitudeBot; +import com.alttd.AltitudeLogs; +import com.alttd.LogLevel; import java.io.File; import java.io.IOException; -import java.sql.SQLException; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.logging.FileHandler; -import java.util.logging.Level; - -public class Logger { //TODO make this log to a file - - private static final java.util.logging.Logger info; - private static final java.util.logging.Logger error; - private static final java.util.logging.Logger sql; +public class Logger { + public static AltitudeLogs altitudeLogs; static { - File logDir = new File(new File(AltitudeBot.getInstance().getDataFolder()).getParent() + File.separator + "logs"); - if (!logDir.exists()) - { - if (!logDir.mkdir()) { - Logger.info("UNABLE TO CREATE LOGGING DIRECTORY"); - System.exit(1); - } - } - - info = java.util.logging.Logger.getLogger("info"); - error = java.util.logging.Logger.getLogger("error"); - sql = java.util.logging.Logger.getLogger("sql"); - info.setLevel(Level.ALL); - error.setLevel(Level.ALL); - sql.setLevel(Level.ALL); - - DateFormat dateFormat = new SimpleDateFormat("yyyy-MMM-dd"); - Date date = new Date(); - String formattedTime = dateFormat.format(date.getTime()); - + Logger.altitudeLogs = new AltitudeLogs().setTimeFormat("[HH:mm:ss] "); try { - info.addHandler(new FileHandler(logDir.getAbsolutePath() + File.separator + - formattedTime + "info.log")); - error.addHandler(new FileHandler(logDir.getAbsolutePath() + File.separator + - formattedTime + "error.log")); - sql.addHandler(new FileHandler(logDir.getAbsolutePath() + File.separator + - formattedTime + "sql.log")); + Logger.altitudeLogs + .setLogPath(new File(AltitudeBot.getInstance().getDataFolder()).getParent() + File.separator + "logs") + .setLogName("debug.log", LogLevel.DEBUG) + .setLogName("info.log", LogLevel.INFO) + .setLogName("warning.log", LogLevel.WARNING) + .setLogName("error.log", LogLevel.ERROR) + .setLogDateFormat("yyyy-MM-dd"); } catch (IOException e) { - e.printStackTrace(); - System.exit(1); + Logger.altitudeLogs.error(e); } } - public static void info(String message, String... replacements) { - message = replace(message, replacements); - info.info(message); - } - public static void warning(String message, String... replacements) { message = replace(message, replacements); - error.warning(message); - } - - public static void severe(String message, String... replacements) { - message = replace(message, replacements); - error.severe(message); - } - - public static void sql(String message) { - sql.info(message); - } - - public static void sql(SQLException exception) { - exception.printStackTrace(); - sql.info("SQLState: " + exception.getSQLState() + "\n"); - sql.severe("Error:\n" + exception.getMessage()); - } - - public static void exception(Exception exception) { - exception.printStackTrace(); - error.severe("Error:\n" + exception.getMessage()); + Logger.altitudeLogs.warning(message); } private static String replace(String message, String... replacements) { @@ -90,4 +38,7 @@ public class Logger { //TODO make this log to a file return message; } + public static void setDebugActive(boolean debug) { + Logger.altitudeLogs.setLogLevelActive(LogLevel.DEBUG, debug); + } } diff --git a/src/main/java/com/alttd/util/Util.java b/src/main/java/com/alttd/util/Util.java index 576c990..7c73d4a 100644 --- a/src/main/java/com/alttd/util/Util.java +++ b/src/main/java/com/alttd/util/Util.java @@ -4,7 +4,6 @@ import com.alttd.commandManager.CommandManager; import com.alttd.commandManager.ScopeInfo; import com.alttd.commandManager.SubOption; import com.alttd.config.MessagesConfig; -import com.alttd.config.SettingsConfig; import com.alttd.templates.Parser; import com.alttd.templates.Template; import net.dv8tion.jda.api.EmbedBuilder; @@ -34,12 +33,12 @@ public class Util { .collect(Collectors.toList()); } - public static void ignoreSuccess(Object o) { + public static void ignoreSuccess(Object ignoredO) { // IDK I thought this looked nicer in the .queue call } public static void handleFailure(Throwable failure) { - Logger.severe(failure.getMessage()); + Logger.altitudeLogs.error(failure.getMessage()); } public static MessageEmbed guildOnlyCommand(String commandName) { @@ -108,8 +107,7 @@ public class Util { for (ScopeInfo info : commandManager.getActiveLocations(commandName)) { switch (info.getScope()) { case GLOBAL -> { - if (SettingsConfig.DEBUG) - Logger.info("Loading command [" + commandName + "] on global."); + Logger.altitudeLogs.debug("Loading command [" + commandName + "] on global."); jda.upsertCommand(commandData).queue(); // jda.updateCommands().addCommands(commandData).queue(); } @@ -117,7 +115,7 @@ public class Util { Guild guildById = jda.getGuildById(info.getId()); if (guildById == null) { - Logger.warning("Tried to add command % to invalid guild %.", commandName, String.valueOf(info.getId())); + Logger.altitudeLogs.warning("Tried to add command " + commandName + " to invalid guild " + info.getId()); continue; } registerCommand(guildById, commandData, commandName); @@ -127,15 +125,13 @@ public class Util { } public static void registerCommand(Guild guild, CommandData commandData, String commandName) { - if (SettingsConfig.DEBUG) - Logger.info("Loading command [" + commandName + "] on guild [" + guild.getName() + "]."); + Logger.altitudeLogs.debug("Loading command [" + commandName + "] on guild [" + guild.getName() + "]."); // guild.upsertCommand(commandData).queue(); guild.upsertCommand(commandData).queue(RestAction.getDefaultSuccess(), Util::handleFailure); } public static void deleteCommand(Guild guild, long id, String commandName) { - if (SettingsConfig.DEBUG) - Logger.info("Deleting command [" + commandName + "] on guild [" + guild.getName() + "]."); + Logger.altitudeLogs.debug("Deleting command [" + commandName + "] on guild [" + guild.getName() + "]."); guild.deleteCommandById(id).queue(); }