package in.twizmwaz.cardinal.module.modules.classModule; import in.twizmwaz.cardinal.match.Match; import in.twizmwaz.cardinal.module.LoadTime; import in.twizmwaz.cardinal.module.ModuleBuilder; import in.twizmwaz.cardinal.module.ModuleCollection; import in.twizmwaz.cardinal.module.ModuleLoadTime; import in.twizmwaz.cardinal.module.modules.kit.KitBuilder; import in.twizmwaz.cardinal.module.modules.kit.KitNode; import org.bukkit.Material; import org.jdom2.Element; @LoadTime(ModuleLoadTime.EARLIER) public class ClassModuleBuilder implements ModuleBuilder { @Override public ModuleCollection<ClassModule> load(Match match) { ModuleCollection<ClassModule> results = new ModuleCollection<>(); for (Element classes : match.getDocument().getRootElement().getChildren("classes")) { for (Element classElement : classes.getChildren("class")) { String name = null; if (classElement.getAttributeValue("name") != null) { name = classElement.getAttributeValue("name"); } else if (classes.getAttributeValue("name") != null) { name = classes.getAttributeValue("name"); } String description = null; if (classElement.getAttributeValue("description") != null) { description = classElement.getAttributeValue("description"); } else if (classes.getAttributeValue("description") != null) { description = classes.getAttributeValue("description"); } String longDescription = description; if (classElement.getAttributeValue("longdescription") != null) { longDescription = classElement.getAttributeValue("longdescription"); } else if (classes.getAttributeValue("longdescription") != null) { longDescription = classes.getAttributeValue("longdescription"); } Material icon = Material.STONE; if (classElement.getAttributeValue("icon") != null) { icon = Material.matchMaterial(classElement.getAttributeValue("icon")); } else if (classes.getAttributeValue("icon") != null) { icon = Material.matchMaterial(classes.getAttributeValue("icon")); } boolean sticky = false; if (classElement.getAttributeValue("sticky") != null) { sticky = classElement.getAttributeValue("sticky").equalsIgnoreCase("true"); } else if (classes.getAttributeValue("sticky") != null) { sticky = classes.getAttributeValue("sticky").equalsIgnoreCase("true"); } boolean defaultClass = false; if (classElement.getAttributeValue("default") != null) { defaultClass = classElement.getAttributeValue("default").equalsIgnoreCase("true"); } else if (classes.getAttributeValue("default") != null) { defaultClass = classes.getAttributeValue("default").equalsIgnoreCase("true"); } boolean restrict = false; if (classElement.getAttributeValue("restrict") != null) { restrict = !classElement.getAttributeValue("restrict").equalsIgnoreCase("false"); } else if (classes.getAttributeValue("restrict") != null) { restrict = !classes.getAttributeValue("restrict").equalsIgnoreCase("false"); } KitNode kit = classElement.getChildren().size() > 0 ? KitBuilder.getKit(classElement.getChildren().get(0)) : null; results.add(new ClassModule(name, description, longDescription, icon, sticky, defaultClass, restrict, kit)); } } return results; } }