diff --git a/Plugin/src/main/java/me/filoghost/chestcommands/ChestCommands.java b/Plugin/src/main/java/me/filoghost/chestcommands/ChestCommands.java index 114f542..5ae2d6b 100644 --- a/Plugin/src/main/java/me/filoghost/chestcommands/ChestCommands.java +++ b/Plugin/src/main/java/me/filoghost/chestcommands/ChestCommands.java @@ -138,7 +138,12 @@ public class ChestCommands extends JavaPlugin { ErrorCollector errorCollector = load(); if (errorCollector.hasErrors()) { - Bukkit.getScheduler().runTaskLater(this, errorCollector::logToConsole, 10L); + errorCollector.logToConsole(); + Bukkit.getScheduler().runTaskLater(this, () -> { + Bukkit.getConsoleSender().sendMessage( + ChatColor.RED + "[ChestCommands] Encountered " + errorCollector.getErrorsCount() + " on load. " + + "Check previous console logs or run \"/chestcommands errors\" to see them again."); + }, 10L); } Bukkit.getScheduler().runTaskTimer(this, new TickingTask(), 1L, 1L); diff --git a/Plugin/src/main/java/me/filoghost/chestcommands/command/CommandHandler.java b/Plugin/src/main/java/me/filoghost/chestcommands/command/CommandHandler.java index 0d00136..8367ade 100644 --- a/Plugin/src/main/java/me/filoghost/chestcommands/command/CommandHandler.java +++ b/Plugin/src/main/java/me/filoghost/chestcommands/command/CommandHandler.java @@ -51,14 +51,32 @@ public class CommandHandler extends CommandFramework { if (args[0].equalsIgnoreCase("help")) { CommandValidate.isTrue(sender.hasPermission(Permissions.COMMAND_PREFIX + "help"), "You don't have permission."); - sender.sendMessage(ChestCommands.CHAT_PREFIX + " Commands:"); + sender.sendMessage(ChestCommands.CHAT_PREFIX + "Commands:"); sender.sendMessage(ChatColor.WHITE + "/" + label + " reload" + ChatColor.GRAY + " - Reloads the plugin."); + sender.sendMessage(ChatColor.WHITE + "/" + label + " errors" + ChatColor.GRAY + " - Displays the last load errors on the console."); sender.sendMessage(ChatColor.WHITE + "/" + label + " list" + ChatColor.GRAY + " - Lists the loaded menus."); sender.sendMessage(ChatColor.WHITE + "/" + label + " open [player]" + ChatColor.GRAY + " - Opens a menu for a player."); return; } + if (args[0].equalsIgnoreCase("errors")) { + CommandValidate.isTrue(sender.hasPermission(Permissions.COMMAND_PREFIX + "errors"), "You don't have permission."); + ErrorCollector errorCollector = ChestCommands.getLastLoadErrors(); + + if (errorCollector.hasErrors()) { + errorCollector.logToConsole(); + sender.sendMessage(ChestCommands.CHAT_PREFIX + ChatColor.RED + "Last time the plugin loaded, " + errorCollector.getErrorsCount() + " error(s) were found."); + if (!(sender instanceof ConsoleCommandSender)) { + sender.sendMessage(ChestCommands.CHAT_PREFIX + ChatColor.RED + "Errors were printed on the console."); + } + } else { + sender.sendMessage(ChestCommands.CHAT_PREFIX + ChatColor.GREEN + "Last plugin load was successful, no errors logged."); + } + return; + } + + if (args[0].equalsIgnoreCase("reload")) { CommandValidate.isTrue(sender.hasPermission(Permissions.COMMAND_PREFIX + "reload"), "You don't have permission."); @@ -125,7 +143,7 @@ public class CommandHandler extends CommandFramework { if (args[0].equalsIgnoreCase("list")) { CommandValidate.isTrue(sender.hasPermission(Permissions.COMMAND_PREFIX + "list"), "You don't have permission."); - sender.sendMessage(ChestCommands.CHAT_PREFIX + " Loaded menus:"); + sender.sendMessage(ChestCommands.CHAT_PREFIX + "Loaded menus:"); for (String file : menuManager.getMenuFileNames()) { sender.sendMessage(ChatColor.GRAY + "- " + ChatColor.WHITE + file); } diff --git a/Plugin/src/main/java/me/filoghost/chestcommands/logging/PrintableErrorCollector.java b/Plugin/src/main/java/me/filoghost/chestcommands/logging/PrintableErrorCollector.java index dc49ec6..60b6e74 100644 --- a/Plugin/src/main/java/me/filoghost/chestcommands/logging/PrintableErrorCollector.java +++ b/Plugin/src/main/java/me/filoghost/chestcommands/logging/PrintableErrorCollector.java @@ -20,7 +20,6 @@ public class PrintableErrorCollector extends ErrorCollector { @Override public void logToConsole() { StringBuilder output = new StringBuilder(); - output.append(" \n \n"); if (errors.size() > 0) { output.append(ChatColor.RED).append("[ChestCommands] Encountered ").append(errors.size()).append(" error(s) on load:\n");