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