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

91 lines
2.5 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"),
2024-04-03 15:11:36 +01:00
PREFIX_FORMAT("prefix-format"),
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"),
2024-04-03 15:11:36 +01:00
SAVE_ACCOUNTS_COMMAND_SAVING("save-accounts-command.saving"),
SAVE_ACCOUNTS_COMMAND_SAVED("save-accounts-command.saved"),
2024-03-28 19:01:11 +00:00
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"),
2024-04-03 15:11:36 +01:00
QUIT_MESSAGE("quit-message"),
COMMAND_SPY_ENABLED("command-spy.toggled-on"),
COMMAND_SPY_DISABLED("command-spy.toggled-off"),
COMMAND_SPY_FORMAT("command-spy.format");
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();
}
}