package de.aeromc.capes; import java.lang.instrument.Instrumentation; /** * AeroMC-Umhang-Agent. * * Wird vom Launcher per -javaagent an Minecraft angehängt (jede Version, jeder * Loader). Er klinkt sich in Mojangs authlib ein – über sie lädt Minecraft für * jeden Spieler Skin und Umhang – und setzt dort den AeroMC-Umhang des Spielers * ein, falls er einen hat. Alles Weitere (Herunterladen, Zwischenspeichern, * Anzeigen, auch HD) erledigt Minecraft selbst wie bei einem offiziellen Umhang. * * Argument: Basisadresse des Umhang-Servers (…/wp-json/aeromc/v1). */ public final class Agent { /** Unter diesem Schlüssel liegt der Nachschlage-Dienst in den System-Properties. */ public static final String SCHLUESSEL = "aeromc.capes.hook"; private Agent() {} public static void premain(String argument, Instrumentation inst) { starte(argument, inst); } public static void agentmain(String argument, Instrumentation inst) { starte(argument, inst); } private static void starte(String argument, Instrumentation inst) { try { String basis = argument != null && argument.startsWith("http") ? argument : Nachschlagen.STANDARD_BASIS; // Die eingefügten Befehle in authlib holen sich den Dienst von hier – nur // über JDK-Typen, damit es mit jedem Classloader und Modulsystem klappt. System.getProperties().put(SCHLUESSEL, new Nachschlagen(basis)); inst.addTransformer(new Umbau()); System.out.println("[AeroMC] Umhang-Agent aktiv"); } catch (Throwable t) { System.out.println("[AeroMC] Umhang-Agent konnte nicht starten: " + t); } } }