Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.finnbon.police.config;
- import java.util.function.Function;
- import org.apache.commons.lang.StringUtils;
- import org.bukkit.ChatColor;
- import org.bukkit.configuration.file.FileConfiguration;
- import me.finnbon.police.PolicePlugin;
- public enum Config {
- // General
- PERMSECTION_PERM$NAME(
- "You don't have permission to do that!");
- private Object defaultValue, value;
- private String path;
- private Config(Object value) {
- defaultValue = value;
- String path = name();
- path = path.replace("_", ".").replace("$", "-");
- path = StringUtils.capitalize(path.toLowerCase());
- boolean cap = true;
- String result = "";
- for (char c : path.toCharArray()) {
- if (cap) {
- result += String.valueOf(c).toUpperCase();
- cap = false;
- } else
- result += c;
- if (c == '.' || c == '-')
- cap = true;
- }
- this.path = result;
- }
- @SuppressWarnings("unchecked")
- public <T> T get(Class<T> clss) {
- if (clss == String.class)
- return (T) ChatColor.translateAlternateColorCodes('&', (String) value);
- return (T) value;
- }
- @SuppressWarnings("unchecked")
- public <T> T get() {
- T i = (T) value;
- if (i instanceof String)
- return (T) ChatColor.translateAlternateColorCodes('&', (String) i);
- return i;
- }
- public String placeholders(Function<String, String> f) {
- if (!(value instanceof String))
- return null;
- String v = new String((String) value);
- v = f.apply(v);
- return ChatColor.translateAlternateColorCodes('&', v);
- }
- public void load(FileConfiguration config) {
- value = config.get(path);
- }
- private void createDefaultValue(FileConfiguration config) {
- config.addDefault(path, defaultValue);
- }
- @SuppressWarnings("unused")
- private static PolicePlugin plugin;
- public static void loadValues(PolicePlugin plugin) {
- FileConfiguration config = plugin.getConfig();
- for (Config c : values())
- c.load(config);
- }
- public static void createDefaultValues(PolicePlugin pl) {
- plugin = pl;
- FileConfiguration config = pl.getConfig();
- config.options().copyDefaults(true);
- config.options().copyHeader(false);
- for (Config c : values())
- c.createDefaultValue(config);
- pl.saveConfig();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement