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"),
|
|
|
|
VOTE_LINKS("vote.links");
|
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();
|
|
|
|
}
|
|
|
|
}
|