Log errors at loading time, display a recap at startup end

This commit is contained in:
filoghost 2020-07-19 16:27:24 +02:00
parent f7bb6a1c63
commit 01a04d19ff
3 changed files with 26 additions and 4 deletions

View File

@ -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);

View File

@ -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 <menu> [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);
}

View File

@ -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");