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;
}
};
}
Aggregations