1
0
Files
aetheria-anarchy-plugin/src/main/java/cc/fascinated/config/Lang.java

74 lines
1.6 KiB
Java
Raw Normal View History

2024-03-28 14:00:15 +00:00
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 {
2024-03-28 15:12:18 +00:00
PREFIX("prefix"),
HELP_COMMAND("help-command"),
VOTE_HEADER("vote.header"),
VOTE_FORMAT("vote.format"),
2024-03-28 18:13:15 +00:00
VOTE_LINKS("vote.links"),
GIT_COMMAND("git-command"),
SEED_COMMAND("seed-command");
2024-03-28 14:00:15 +00:00
/**
* 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<String, Object> 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<String> getAsStringList() {
return (List<String>) get();
}
}