Search in sources :

Example 1 with PluginClassLoader

use of com.velocitypowered.proxy.plugin.PluginClassLoader 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)

Aggregations

PluginClassLoader (com.velocitypowered.proxy.plugin.PluginClassLoader)1 File (java.io.File)1 MalformedURLException (java.net.MalformedURLException)1 ArrayList (java.util.ArrayList)1 Random (java.util.Random)1 Matcher (java.util.regex.Matcher)1 Pattern (java.util.regex.Pattern)1 Config (me.devtec.shared.dataholder.Config)1 ModernJsonReader (me.devtec.shared.json.modern.ModernJsonReader)1 ModernJsonWriter (me.devtec.shared.json.modern.ModernJsonWriter)1 LibraryLoader (me.devtec.shared.utility.LibraryLoader)1 ColormaticFactory (me.devtec.shared.utility.StringUtils.ColormaticFactory)1