public void inject(Plugin plugin) { Bukkit.getLogger() .info( "[" + PluginBungeePermsBukkitBridge.getInstance().getDescription().getName() + "] Injection of BungeepermsBukkit into Vault"); try { Vault v = (Vault) plugin; // inject BungeePerms Method m = v.getClass() .getDeclaredMethod( "hookPermission", String.class, Class.class, ServicePriority.class, String[].class); m.setAccessible(true); m.invoke( v, "BungeePermsBukkit", Permission_BungeePermsBukkit.class, ServicePriority.Normal, new String[] {"net.alpenblock.bungeeperms.bukkit.BungeePerms"}); Field f = v.getClass().getDeclaredField("perms"); f.setAccessible(true); f.set(v, Bukkit.getServicesManager().getRegistration(Permission.class).getProvider()); } catch (Exception ex) { ex.printStackTrace(); } }