aboutsummaryrefslogtreecommitdiff
path: root/spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeClassSourceLookup.java
diff options
context:
space:
mode:
Diffstat (limited to 'spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeClassSourceLookup.java')
-rw-r--r--spark-sponge/src/main/java/me/lucko/spark/sponge/SpongeClassSourceLookup.java17
1 files changed, 8 insertions, 9 deletions
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<Path, String> constructPathToPluginIdMap(Collection<PluginContainer> plugins) {
- ImmutableMap.Builder<Path, String> builder = ImmutableMap.builder();
+ Map<Path, String> 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<JVMPluginResource> candidate = (PluginCandidate<JVMPluginResource>) 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);
}
}