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"),
|
2024-03-28 19:25:04 +00:00
|
|
|
ADMIN_PREFIX("admin-prefix"),
|
2024-03-28 15:12:18 +00:00
|
|
|
HELP_COMMAND("help-command"),
|
2024-03-28 18:13:15 +00:00
|
|
|
GIT_COMMAND("git-command"),
|
2024-03-28 19:01:11 +00:00
|
|
|
SEED_COMMAND("seed-command"),
|
|
|
|
TOTAL_JOINS_COMMAND("total-joins-command"),
|
|
|
|
WORLD_SIZE_COMMAND_HEADER("world-size-command.header"),
|
|
|
|
WORLD_SIZE_COMMAND_FORMAT("world-size-command.format"),
|
|
|
|
WORLD_SIZE_COMMAND_FOOTER("world-size-command.footer"),
|
|
|
|
VOTE_COMMAND_HEADER("vote-command.header"),
|
|
|
|
VOTE_COMMAND_FORMAT("vote-command.format"),
|
|
|
|
VOTE_COMMAND_LINKS("vote-command.links"),
|
|
|
|
BLOCKED_MESSAGE("blocked-message"),
|
2024-03-28 19:25:04 +00:00
|
|
|
BLOCKED_MESSAGE_ALERT("blocked-message-alert"),
|
2024-03-28 19:54:03 +00:00
|
|
|
CHAT_FORMAT("chat-format"),
|
2024-04-01 12:46:15 +01:00
|
|
|
FIRST_JOIN_MESSAGE("first-join-message"),
|
|
|
|
JOIN_MESSAGE("join-message"),
|
|
|
|
QUIT_MESSAGE("quit-message");
|
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();
|
|
|
|
}
|
|
|
|
}
|