categories not an enum, so its easier to extend. Validators can modify value.

This commit is contained in:
gnembon committed 2019-06-11 12:27:26 -03:00
1 parent 92f40c36b8
commit f05c661fbf
7 files changed
+65 -54

No files matched your search

@@ -11,14 +11,7 @@ import org.apache.logging.log4j.Logger;
import java.io.*;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@@ -47,6 +40,13 @@ public class SettingsManager {
}
}
public static Iterable<String> getCategories()
{
Set<String> categories = new HashSet<>();
getRules().stream().map(r -> r.categories).forEach(categories::addAll);
return categories;
}
public ParsedRule getRule(String name) {
return rules.get(name);
@@ -75,7 +75,7 @@ public class SettingsManager {
return server.getLevelStorage().resolveFile(server.getLevelName(), "carpet.conf");
}
public void disableBooleanFromCategory(RuleCategory category) {
public void disableBooleanFromCategory(String category) {
for (ParsedRule<?> rule : rules.values()) {
if (rule.type != boolean.class || !rule.categories.contains(category)) continue;
((ParsedRule<Boolean>) rule).set(server.getCommandSource(), false, "false");
@@ -223,7 +223,7 @@ public class SettingsManager {
String lcSearch = search.toLowerCase(Locale.ROOT);
return getRulesMatching(rule -> {
if (rule.name.toLowerCase(Locale.ROOT).contains(lcSearch)) return true;
for (RuleCategory c : rule.categories) if (c.lowerCase.equals(search)) return true;
for (String c : rule.categories) if (c.toLowerCase(Locale.ROOT).equals(search)) return true;
return false;
});
}