package in.twizmwaz.cardinal.module.modules.regions.parsers.modifiers; import in.twizmwaz.cardinal.GameHandler; import in.twizmwaz.cardinal.module.modules.regions.RegionModule; import in.twizmwaz.cardinal.module.modules.regions.RegionModuleBuilder; import in.twizmwaz.cardinal.module.modules.regions.RegionParser; import org.bukkit.util.Vector; import org.jdom2.Element; public class MirrorParser extends RegionParser { private RegionModule base; private final Vector origin, normal; public MirrorParser(Element element) { super(element.getAttributeValue("name")); try { this.base = RegionModuleBuilder.getRegion(element.getChildren().get(0)); } catch (IndexOutOfBoundsException e) { for (RegionModule regionModule : GameHandler.getGameHandler().getMatch().getModules().getModules(RegionModule.class)) { if (regionModule.getName() != null && regionModule.getName().equalsIgnoreCase(element.getAttributeValue("region"))) this.base = regionModule; } } if (element.getAttributeValue("origin") != null) { String[] origin = element.getAttributeValue("origin").contains(",") ? element.getAttributeValue("origin").split(",") : element.getAttributeValue("origin").trim().replaceAll(" ", ",").split(","); this.origin = new Vector(Double.parseDouble(origin[0]), Double.parseDouble(origin[1]), Double.parseDouble(origin[2])); } else { this.origin = new Vector(0, 0, 0); } String[] normal = element.getAttributeValue("normal").trim().replaceAll(" ", ",").split(","); this.normal = new Vector(Double.parseDouble(normal[0]), Double.parseDouble(normal[1]), Double.parseDouble(normal[2])); } public RegionModule getBase() { return base; } public Vector getOrigin() { return origin; } public Vector getNormal() { return normal; } }