Search in sources :

Example 6 with Config

use of me.devtec.shared.dataholder.Config in project TheAPI by TheDevTec.

the class VelocityLoader method initTheAPI.

public static void initTheAPI(ProxyServer server) {
    // OfflineCache support!
    API.initOfflineCache(server.getConfiguration().isOnlineMode(), new Config("plugins/TheAPI/Cache.dat"));
    // Server version
    Ref.init(ServerType.VELOCITY, "Velocity");
    ComponentAPI.init(null, new AdventureComponentAPI<>());
    // Modern version of Guava
    Json.init(new ModernJsonReader(), new ModernJsonWriter());
    API.library = new LibraryLoader() {

        List<File> loaded = new ArrayList<>();

        @SuppressWarnings("resource")
        @Override
        public void load(File file) {
            if (isLoaded(file) || !file.exists())
                return;
            loaded.add(file);
            try {
                new PluginClassLoader(new URL[] { file.toURI().toURL() }).addToClassloaders();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
        }

        @Override
        public boolean isLoaded(File file) {
            return loaded.contains(file);
        }
    };
    API.basics().load();
    StringUtils.rainbowSplit = Pattern.compile("(&?#[A-Fa-f0-9]{6}([&§][K-Ok-oRr])*|[&§][Xx]([&§][A-Fa-f0-9]){6}([&§][K-Ok-oRr])*|[&§][A-Fa-f0-9K-ORrk-oUuXx]([&§][K-Ok-oRr])*)");
    StringUtils.color = new ColormaticFactory() {

        char[] characters = "abcdef0123456789".toCharArray();

        Random random = new Random();

        Pattern getLast = Pattern.compile("(&?#[A-Fa-f0-9k-oK-ORrXxUu]{6}|§[Xx](§[A-Fa-f0-9k-oK-ORrXxUu]){6}|§[A-Fa-f0-9k-oK-ORrXxUu]|&[Uu])"), hex = Pattern.compile("(&?#[a-fA-F0-9]{6})");

        @Override
        public String gradient(String msg, String fromHex, String toHex) {
            return API.basics().gradient(msg, fromHex, toHex);
        }

        @Override
        public String generateColor() {
            StringBuilder b = new StringBuilder("&#");
            for (int i = 0; i < 6; ++i) b.append(characters[random.nextInt(16)]);
            return b.toString();
        }

        @Override
        public String[] getLastColors(String text) {
            return API.basics().getLastColors(getLast, text);
        }

        @Override
        public String replaceHex(String msg) {
            Matcher match = hex.matcher(msg);
            while (match.find()) {
                String color = match.group();
                if (!color.startsWith("&"))
                    msg = msg.replace(color, "&" + color);
            }
            return msg;
        }
    };
}
Also used : ModernJsonReader(me.devtec.shared.json.modern.ModernJsonReader) Pattern(java.util.regex.Pattern) MalformedURLException(java.net.MalformedURLException) Matcher(java.util.regex.Matcher) Config(me.devtec.shared.dataholder.Config) ArrayList(java.util.ArrayList) LibraryLoader(me.devtec.shared.utility.LibraryLoader) Random(java.util.Random) ModernJsonWriter(me.devtec.shared.json.modern.ModernJsonWriter) ColormaticFactory(me.devtec.shared.utility.StringUtils.ColormaticFactory) File(java.io.File) PluginClassLoader(com.velocitypowered.proxy.plugin.PluginClassLoader)

Example 7 with Config

use of me.devtec.shared.dataholder.Config in project TheAPI by TheDevTec.

the class API method getUser.

public static Config getUser(String playerName) {
    if (cache == null)
        return null;
    UUID id = cache.lookupId(playerName);
    Config cached = users.get(id);
    if (cached == null) {
        users.put(id, cached = new Config("plugins/TheAPI/Users/" + id + ".yml"));
    }
    return cached;
}
Also used : Config(me.devtec.shared.dataholder.Config) UUID(java.util.UUID)

Aggregations

Config (me.devtec.shared.dataholder.Config)7 File (java.io.File)4 MalformedURLException (java.net.MalformedURLException)4 ArrayList (java.util.ArrayList)3 Random (java.util.Random)3 Matcher (java.util.regex.Matcher)3 Pattern (java.util.regex.Pattern)3 ModernJsonReader (me.devtec.shared.json.modern.ModernJsonReader)3 ModernJsonWriter (me.devtec.shared.json.modern.ModernJsonWriter)3 LibraryLoader (me.devtec.shared.utility.LibraryLoader)3 ColormaticFactory (me.devtec.shared.utility.StringUtils.ColormaticFactory)3 IOException (java.io.IOException)2 URL (java.net.URL)2 JarFile (java.util.jar.JarFile)2 PluginClassLoader (com.velocitypowered.proxy.plugin.PluginClassLoader)1 BufferedReader (java.io.BufferedReader)1 InputStreamReader (java.io.InputStreamReader)1 PrintWriter (java.io.PrintWriter)1 Socket (java.net.Socket)1 URLClassLoader (java.net.URLClassLoader)1