Main class
Пакет: com.hypixel.hytale
Файл: com/hypixel/hytale/Main.java
Поля (9)
| Модификаторы | Тип | Имя |
|---|---|---|
|
URL[] |
var1 |
|
ObjectArrayList |
var1 |
|
TransformingClassLoader |
var10 |
|
Throwable |
var2 |
|
String |
var2 |
|
Class |
var4 |
|
Method |
var5 |
|
Path |
var7 |
|
ClassLoader |
var8 |
Методы (6)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
RuntimeExceptionthrow new RuntimeException("Failed to launch with transforming classloader", var6) |
static |
URL[] |
getClasspathUrlsURL[] getClasspathUrls() |
|
|
if if(var2 instanceof RuntimeException var9) |
static |
void |
launchWithTransformingClassLoadervoid launchWithTransformingClassLoader(@Nonnull String[] var0) |
abstract |
|
launchWithTransformingClassLoader launchWithTransformingClassLoader(var0) |
static |
void |
mainvoid main(String[] var0) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale;
class="kw">import com.hypixel.hytale.plugin.early.EarlyPluginLoader;
class="kw">import com.hypixel.hytale.plugin.early.TransformingClassLoader;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.lang.reflect.InvocationTargetException;
class="kw">import java.lang.reflect.Method;
class="kw">import java.net.URL;
class="kw">import java.net.URLClassLoader;
class="kw">import java.nio.file.Files;
class="kw">import java.nio.file.Path;
class="kw">import java.util.Locale;
class="kw">import javax.annotation.Nonnull;
class="kw">public class="kw">final class Main {
class="kw">public Main() {
}
class="kw">public class="kw">static void main(String[] var0) {
Locale.setDefault(Locale.ENGLISH);
System.setProperty("java.awt.headless", "true");
System.setProperty("file.encoding", "UTF-8");
EarlyPluginLoader.loadEarlyPlugins(var0);
if (EarlyPluginLoader.hasTransformers()) {
launchWithTransformingClassLoader(var0);
} else {
LateMain.lateMain(var0);
}
}
class="kw">private class="kw">static void launchWithTransformingClassLoader(@Nonnull String[] var0) {
try {
URL[] var1 = getClasspathUrls();
ClassLoader var8 = Main.class.getClassLoader();
TransformingClassLoader var10 = new TransformingClassLoader(var1, EarlyPluginLoader.getTransformers(), var8.getParent(), var8);
Thread.currentThread().setContextClassLoader(var10);
Class var4 = var10.loadClass("com.hypixel.hytale.LateMain");
Method var5 = var4.getMethod("lateMain", String[].class);
var5.invoke(null, var0);
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException var6) {
throw new RuntimeException("Failed to launch with transforming classloader", var6);
} catch (InvocationTargetException var7) {
Throwable var2 = var7.getCause();
if (var2 class="kw">instanceof RuntimeException var9) {
throw var9;
} else if (var2 class="kw">instanceof Error var3) {
throw var3;
} else {
throw new RuntimeException("LateMain.lateMain() threw an exception", var2);
}
}
}
class="kw">private class="kw">static URL[] getClasspathUrls() {
if (Main.class.getClassLoader() class="kw">instanceof URLClassLoader var9) {
class="kw">return var9.getURLs();
} else {
ObjectArrayList var1 = new ObjectArrayList();
String var2 = System.getProperty("java.class.path");
if (var2 != null && !var2.isEmpty()) {
for (String var6 : var2.split(System.getProperty("path.separator"), 0)) {
try {
Path var7 = Path.of(var6);
if (Files.exists(var7)) {
var1.add(var7.toUri().toURL());
}
} catch (Exception var8) {
System.err.println("[EarlyPlugin] Failed to parse classpath entry: " + var6);
}
}
}
class="kw">return (URL[])var1.toArray(URL[]::new);
}
}
}