mirror of
https://github.com/EngineHub/WorldGuard.git
synced 2025-01-26 10:01:21 +01:00
Fix class source validator on spigot.
This commit is contained in:
parent
27dca2b506
commit
216b061172
@ -47,14 +47,17 @@ public class ClassSourceValidator {
|
||||
|
||||
private static final String SEPARATOR_LINE = Strings.repeat("*", 46);
|
||||
private static final Method loadClass;
|
||||
private static Class<?> pluginClassLoaderClass;
|
||||
|
||||
static {
|
||||
Method tmp;
|
||||
try {
|
||||
tmp = PluginClassLoader.class.getDeclaredMethod("loadClass0",
|
||||
pluginClassLoaderClass = Class.forName("org.bukkit.plugin.java.PluginClassLoader", false,
|
||||
Bukkit.class.getClassLoader());
|
||||
tmp = pluginClassLoaderClass.getDeclaredMethod("loadClass0",
|
||||
String.class, boolean.class, boolean.class, boolean.class);
|
||||
tmp.setAccessible(true);
|
||||
} catch (NoSuchMethodException e) {
|
||||
} catch (NoSuchMethodException | ClassNotFoundException e) {
|
||||
tmp = null;
|
||||
}
|
||||
loadClass = tmp;
|
||||
@ -95,7 +98,7 @@ public Map<Class<?>, Plugin> findMismatches(List<Class<?>> classes) {
|
||||
continue;
|
||||
}
|
||||
ClassLoader targetLoader = target.getClass().getClassLoader();
|
||||
if (!(targetLoader instanceof PluginClassLoader)) {
|
||||
if (!(pluginClassLoaderClass.isAssignableFrom(targetLoader.getClass()))) {
|
||||
continue;
|
||||
}
|
||||
for (Class<?> testClass : classes) {
|
||||
|
Loading…
Reference in New Issue
Block a user