package net.ME1312.SubServers.Proxy.Library.Config; import net.ME1312.SubServers.Proxy.Library.Util; import net.md_5.bungee.api.ChatColor; import org.yaml.snakeyaml.Yaml; import java.util.ArrayList; import java.util.List; import java.util.Map; @SuppressWarnings({"unchecked", "unused"}) public class YAMLValue { protected Object obj; protected String label; protected YAMLSection up; private Yaml yaml; public YAMLValue(Object obj, YAMLSection up, String label, Yaml yaml) { this.obj = obj; this.label = label; this.yaml = yaml; this.up = up; } public YAMLSection getDefiningSection() { return up; } public Object asObject() { return obj; } public List asObjectList() { return (List) obj; } public boolean asBoolean() { return (boolean) obj; } public List asBooleanList() { return (List) obj; } public YAMLSection asSection() { return new YAMLSection((Map) obj, up, label, yaml); } public List asSectionList() { List values = new ArrayList(); for (Map value : (List>) obj) { values.add(new YAMLSection(value, null, null, yaml)); } return values; } public double asDouble() { return (double) obj; } public List asDoubleList() { return (List) obj; } public float asFloat() { return (float) obj; } public List asFloatList() { return (List) obj; } public int asInt() { return (int) obj; } public List asIntList() { return (List) obj; } public long asLong() { return (long) obj; } public List asLongList() { return (List) obj; } public String asRawString() { return (String) obj; } public List asRawStringList() { return (List) obj; } public String asString() { return Util.unescapeJavaString((String) obj); } public List asStringList() { List values = new ArrayList(); for (String value : (List) obj) { values.add(Util.unescapeJavaString(value)); } return values; } public String asColoredString(char color) { return ChatColor.translateAlternateColorCodes(color, Util.unescapeJavaString((String) obj)); } public List asColoredStringList(char color) { List values = new ArrayList(); for (String value : (List) obj) { values.add(ChatColor.translateAlternateColorCodes(color, Util.unescapeJavaString(value))); } return values; } public boolean isBoolean() { return (obj instanceof Boolean); } public boolean isSection() { return (obj instanceof Map); } public boolean isDouble() { return (obj instanceof Double); } public boolean isFloat(String path) { return (obj instanceof Float); } public boolean isInt() { return (obj instanceof Integer); } public boolean isList() { return (obj instanceof List); } public boolean isLong() { return (obj instanceof Long); } public boolean isString() { return (obj instanceof String); } @Override public String toString() { return obj.toString(); } }