package xyz.etztech.minecraftmanager.objects; import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Rules { private List rules = new ArrayList<>(); private Map> subRules = new HashMap<>(); public Rules(FileConfiguration config) { List configRules = config.getStringList("rules.rules"); if (config.getBoolean("rules.application.validate")) { String finalAnswer = config.getString("rules.application.answer"); configRules.add("The answer for the final question is \"" + finalAnswer + "\""); } for (String configRule : configRules) { if (configRule.startsWith("*")) { configRule = configRule.substring(1); List subs = subRules.get(rules.get(rules.size()-1)); if (subs != null) { subs.add(configRule); } else { subs = new ArrayList<>(); subs.add(configRule); } subRules.put(rules.get(rules.size()-1), subs); } else { rules.add(configRule); } } } public List getRules() { return rules; } public void setRules(List rules) { this.rules = rules; } public Map> getSubRules() { return subRules; } public void setSubRules(Map> subRules) { this.subRules = subRules; } public String minecraft() { StringBuilder rulesMessage = new StringBuilder(ChatColor.GOLD + "===== Rules ====="); int idx = 0; for (String rule : rules) { rulesMessage.append("\n" + ChatColor.YELLOW + (++idx) + ". " + rule); List subs = subRules.get(rule); if (subs != null) { for (String sub : subs) { rulesMessage.append("\n" + ChatColor.YELLOW + "* " + sub); } } } return rulesMessage.toString(); } }