update slimjar

This commit is contained in:
Julian Krings 2025-07-26 14:31:45 +02:00
parent b0ca0e3617
commit 76a6f1465a
No known key found for this signature in database
GPG Key ID: 208C6E08C3B718D2
4 changed files with 14 additions and 17 deletions

View File

@ -436,7 +436,6 @@ public class Iris extends VolmitPlugin implements Listener {
public Iris() { public Iris() {
instance = this; instance = this;
SlimJar.debug(IrisSettings.get().getSentry().isDebug());
SlimJar.load(getDataFolder("cache", "libraries")); SlimJar.load(getDataFolder("cache", "libraries"));
} }

View File

@ -23,7 +23,6 @@ import com.volmit.iris.Iris;
import com.volmit.iris.util.io.IO; import com.volmit.iris.util.io.IO;
import com.volmit.iris.util.json.JSONException; import com.volmit.iris.util.json.JSONException;
import com.volmit.iris.util.json.JSONObject; import com.volmit.iris.util.json.JSONObject;
import com.volmit.iris.util.misc.SlimJar;
import com.volmit.iris.util.misc.getHardware; import com.volmit.iris.util.misc.getHardware;
import com.volmit.iris.util.plugin.VolmitSender; import com.volmit.iris.util.plugin.VolmitSender;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -87,7 +86,6 @@ public class IrisSettings {
Iris.error("Configuration Error in settings.json! " + ee.getClass().getSimpleName() + ": " + ee.getMessage()); Iris.error("Configuration Error in settings.json! " + ee.getClass().getSimpleName() + ": " + ee.getMessage());
} }
} }
SlimJar.debug(settings.general.debug);
return settings; return settings;
} }

View File

@ -21,19 +21,16 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
import java.util.function.BiFunction; import java.util.function.BiFunction;
import java.util.function.Function; import java.util.function.Function;
import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
public class SlimJar { public class SlimJar {
private static final String NAME = "Iris"; private static final String NAME = "Iris";
private static final Logger LOGGER = Logger.getLogger(NAME); private static final Logger LOGGER = Logger.getLogger(NAME);
private static final ReentrantLock lock = new ReentrantLock(); private static final boolean DEBUG = Boolean.getBoolean("iris.debug-slimjar");
private static final AtomicBoolean loaded = new AtomicBoolean();
private static final boolean DISABLE_REMAPPER = Boolean.getBoolean("iris.disable-remapper"); private static final boolean DISABLE_REMAPPER = Boolean.getBoolean("iris.disable-remapper");
public static void debug(boolean debug) { private static final ReentrantLock lock = new ReentrantLock();
LOGGER.setLevel(debug ? Level.FINE : Level.INFO); private static final AtomicBoolean loaded = new AtomicBoolean();
}
public static void load(@Nullable File localRepository) { public static void load(@Nullable File localRepository) {
if (loaded.get()) return; if (loaded.get()) return;
@ -49,7 +46,8 @@ public class SlimJar {
load(localRepository.toPath(), new ProcessLogger() { load(localRepository.toPath(), new ProcessLogger() {
@Override @Override
public void info(@NotNull String message, @Nullable Object... args) { public void info(@NotNull String message, @Nullable Object... args) {
LOGGER.fine(message.formatted(args)); if (!DEBUG) return;
LOGGER.info(message.formatted(args));
} }
@Override @Override
@ -59,7 +57,8 @@ public class SlimJar {
@Override @Override
public void debug(@NotNull String message, @Nullable Object... args) { public void debug(@NotNull String message, @Nullable Object... args) {
LOGGER.fine(message.formatted(args)); if (!DEBUG) return;
LOGGER.info(message.formatted(args));
} }
}); });
LOGGER.info("Libraries loaded successfully!"); LOGGER.info("Libraries loaded successfully!");
@ -82,15 +81,16 @@ public class SlimJar {
private static void loadSpigot(Path downloadPath, ProcessLogger logger) throws Throwable { private static void loadSpigot(Path downloadPath, ProcessLogger logger) throws Throwable {
var current = SlimJar.class.getClassLoader(); var current = SlimJar.class.getClassLoader();
var libraryLoader = current.getClass().getDeclaredField("libraryLoader"); var libraryLoaderField = current.getClass().getDeclaredField("libraryLoader");
libraryLoader.setAccessible(true); libraryLoaderField.setAccessible(true);
if (!ClassLoader.class.isAssignableFrom(libraryLoader.getType())) throw new IllegalStateException("Failed to find library loader"); if (!ClassLoader.class.isAssignableFrom(libraryLoaderField.getType())) throw new IllegalStateException("Failed to find library loader");
final var libraryLoader = (ClassLoader) libraryLoaderField.get(current);
final var pair = findRemapper(); final var pair = findRemapper();
final var remapper = pair.getA(); final var remapper = pair.getA();
final var factory = pair.getB(); final var factory = pair.getB();
final var libraries = factory.apply(new URL[0], current.getParent()); final var libraries = factory.apply(new URL[0], libraryLoader == null ? current.getParent() : libraryLoader);
final var injecting = InjectableFactory.create(downloadPath, List.of(Repository.central()), libraries); final var injecting = InjectableFactory.create(downloadPath, List.of(Repository.central()), libraries);
ApplicationBuilder.injecting(NAME, new Injectable() { ApplicationBuilder.injecting(NAME, new Injectable() {
@ -119,7 +119,7 @@ public class SlimJar {
.logger(logger) .logger(logger)
.build(); .build();
libraryLoader.set(current, libraries); libraryLoaderField.set(current, libraries);
} }
private static Pair<Function<List<Path>, List<Path>>, BiFunction<URL[], ClassLoader, URLClassLoader>> findRemapper() { private static Pair<Function<List<Path>, List<Path>>, BiFunction<URL[], ClassLoader, URLClassLoader>> findRemapper() {

View File

@ -5,7 +5,7 @@
[versions] [versions]
# Plugins # Plugins
shadow = "9.0.0-rc1" # https://plugins.gradle.org/plugin/com.gradleup.shadow shadow = "9.0.0-rc1" # https://plugins.gradle.org/plugin/com.gradleup.shadow
slimjar = "2.0.8" # https://plugins.gradle.org/plugin/de.crazydev22.slimjar slimjar = "2.1.0" # https://plugins.gradle.org/plugin/de.crazydev22.slimjar
download = "5.6.0" # https://plugins.gradle.org/plugin/de.undercouch.download download = "5.6.0" # https://plugins.gradle.org/plugin/de.undercouch.download
runPaper = "2.3.1" # https://plugins.gradle.org/plugin/xyz.jpenilla.run-paper runPaper = "2.3.1" # https://plugins.gradle.org/plugin/xyz.jpenilla.run-paper
sentryPlugin = "5.8.0" # https://github.com/getsentry/sentry-android-gradle-plugin sentryPlugin = "5.8.0" # https://github.com/getsentry/sentry-android-gradle-plugin