From 336102f88b38900b60888ab85ea13b388d4fe0dc Mon Sep 17 00:00:00 2001 From: Luck Date: Sun, 5 Jan 2025 14:11:11 +0000 Subject: Upgrade spark-sponge to API 12 --- .../me/lucko/spark/sponge/SpongeClassSourceLookup.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeClassSourceLookup.java') diff --git a/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeClassSourceLookup.java b/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeClassSourceLookup.java index 0820ae3..1effb19 100644 --- a/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeClassSourceLookup.java +++ b/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeClassSourceLookup.java @@ -25,12 +25,12 @@ import me.lucko.spark.common.sampler.source.ClassSourceLookup; import org.spongepowered.api.Game; import org.spongepowered.plugin.PluginCandidate; import org.spongepowered.plugin.PluginContainer; -import org.spongepowered.plugin.builtin.jvm.JVMPluginContainer; -import org.spongepowered.plugin.builtin.jvm.locator.JVMPluginResource; +import org.spongepowered.plugin.builtin.StandardPluginContainer; import java.lang.reflect.Field; import java.nio.file.Path; import java.util.Collection; +import java.util.HashMap; import java.util.Map; public class SpongeClassSourceLookup extends ClassSourceLookup.ByCodeSource { @@ -57,26 +57,25 @@ public class SpongeClassSourceLookup extends ClassSourceLookup.ByCodeSource { } // pretty nasty, but if it fails it doesn't really matter - @SuppressWarnings("unchecked") private static Map constructPathToPluginIdMap(Collection plugins) { - ImmutableMap.Builder builder = ImmutableMap.builder(); + Map map = new HashMap<>(); try { - Field candidateField = JVMPluginContainer.class.getDeclaredField("candidate"); + Field candidateField = StandardPluginContainer.class.getDeclaredField("candidate"); candidateField.setAccessible(true); for (PluginContainer plugin : plugins) { - if (plugin instanceof JVMPluginContainer) { - PluginCandidate candidate = (PluginCandidate) candidateField.get(plugin); + if (plugin instanceof StandardPluginContainer) { + PluginCandidate candidate = (PluginCandidate) candidateField.get(plugin); Path path = candidate.resource().path().toAbsolutePath().normalize(); - builder.put(path, plugin.metadata().id()); + map.putIfAbsent(path, plugin.metadata().id()); } } } catch (Exception e) { // ignore } - return builder.build(); + return ImmutableMap.copyOf(map); } } -- cgit