From 69b98c180fba85adc2167b94c9f6538db81ca577 Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Sat, 1 Feb 2020 15:08:51 +0800 Subject: [PATCH] Add dependency jdk 11 compat --- .../module/dependency/TDependencyLoader.java | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/main/scala/io/izzel/taboolib/module/dependency/TDependencyLoader.java b/src/main/scala/io/izzel/taboolib/module/dependency/TDependencyLoader.java index fc638e7..c3c14b9 100644 --- a/src/main/scala/io/izzel/taboolib/module/dependency/TDependencyLoader.java +++ b/src/main/scala/io/izzel/taboolib/module/dependency/TDependencyLoader.java @@ -15,23 +15,15 @@ import java.net.URLClassLoader; public class TDependencyLoader { - private static final long ucpOffset; - - static { - try { - Field ucp = Bukkit.class.getClassLoader().getClass().getDeclaredField("ucp"); - ucpOffset = Ref.UNSAFE.objectFieldOffset(ucp); - } catch (Exception e) { - throw new IllegalStateException(); - } - } - public static synchronized void addToPath(Plugin plugin, URL url) { try { - Object ucp = Ref.UNSAFE.getObject(plugin instanceof InternalPlugin ? Bukkit.class.getClassLoader() : plugin.getClass().getClassLoader(), ucpOffset); + ClassLoader loader = plugin instanceof InternalPlugin ? Bukkit.class.getClassLoader() : plugin.getClass().getClassLoader(); + Field ucpField = loader.getClass().getDeclaredField("ucp"); + long ucpOffset = Ref.UNSAFE.objectFieldOffset(ucpField); + Object ucp = Ref.UNSAFE.getObject(loader, ucpOffset); Method addURL = ucp.getClass().getMethod("addURL", URL.class); addURL.invoke(ucp, url); - } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { + } catch (Exception e) { e.printStackTrace(); } }