43 lines
1.7 KiB
Java
43 lines
1.7 KiB
Java
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);
|
||
}
|
||
}
|
||
}
|