diff --git a/src/main/java/carpet/commands/TestCommand.java b/src/main/java/carpet/commands/TestCommand.java index 469c8e5a..63cace57 100644 --- a/src/main/java/carpet/commands/TestCommand.java +++ b/src/main/java/carpet/commands/TestCommand.java @@ -16,7 +16,10 @@ public class TestCommand public static void register(CommandDispatcher dispatcher) { dispatcher.register(literal("test"). - then(literal("dump").executes((c) -> CarpetServer.settingsManager.printAllRulesToLog())). + then(literal("dump"). + executes((c) -> CarpetServer.settingsManager.printAllRulesToLog(null)). + then(argument("category", word()). + executes( (c) -> CarpetServer.settingsManager.printAllRulesToLog(getString(c, "category"))))). then(argument("first",word()). executes( (c)-> test(c, getString(c, "first")+" 1"))). then(argument("second", word()). diff --git a/src/main/java/carpet/settings/SettingsManager.java b/src/main/java/carpet/settings/SettingsManager.java index 1aa248b6..39cb6438 100644 --- a/src/main/java/carpet/settings/SettingsManager.java +++ b/src/main/java/carpet/settings/SettingsManager.java @@ -257,13 +257,15 @@ public class SettingsManager }).collect(ImmutableList.toImmutableList()); } - public int printAllRulesToLog() + public int printAllRulesToLog(String category) { PrintStream ps = System.out; ps.println("# "+fancyName+" Settings"); for (Map.Entry> e : new TreeMap<>(rules).entrySet()) { ParsedRule rule = e.getValue(); + if (category != null && !rule.categories.contains(category)) + continue; ps.println("## " + rule.name); ps.println(rule.description+" "); for (String extra : rule.extraInfo)