package cc.fascinated.config; import cc.fascinated.Aetheria; import cc.fascinated.utils.io.Config; import lombok.Getter; import org.bukkit.configuration.file.FileConfiguration; import java.util.HashMap; import java.util.List; @Getter public enum Lang { PREFIX("prefix"), HELP_COMMAND("help-command"), VOTE_HEADER("vote.header"), VOTE_FORMAT("vote.format"), VOTE_LINKS("vote.links"); /** * The path of the lang in the lang.yml file. */ private final String path; Lang(String path) { this.path = path; } /** * Cache of the lang values. */ private final HashMap cache = new HashMap<>(); /** * The lang configuration. */ private final Config langConfig = new Config(Aetheria.INSTANCE, "lang.yml", null); /** * Gets as an object. * * @return the string */ public Object get() { return cache.computeIfAbsent(path, key -> { FileConfiguration configuration = langConfig.getFileConfiguration(); if (configuration.get(path) == null) { throw new IllegalArgumentException("Path " + path + " does not exist in the lang.yml file."); } return configuration.get(path); }); } /** * Gets as a string. * * @return the string */ public String getAsString() { return (String) get(); } /** * Gets as a string list. * * @return the string list */ public List getAsStringList() { return (List) get(); } }