public void processOtherPluginLoadedAnnotation(Plugin newPlugin) {

        for (Plugin plugin : this.pluginManager.getPluginRegistry().getAllPlugins()) {
            final PluginMetaInformation pmi = this.pluginManager.getPluginRegistry().getMetaInformationFor(plugin);

            for (PluginLoadedInformation pli : pmi.pluginLoadedInformation) {
                final Collection<? extends Plugin> plins = new PluginManagerUtil(this.pluginManager).getPlugins(pli.baseType);

                // Check if the new plugin is returned upon request
                if (plins.contains(newPlugin)) {
                    try {
                        pli.method.invoke(plugin, newPlugin);
                    } catch (IllegalArgumentException e) {
                        e.printStackTrace();
                    } catch (IllegalAccessException e) {
                        e.printStackTrace();
                    } catch (InvocationTargetException e) {
                        e.printStackTrace();
                    }

                    pli.calledWith.add(newPlugin);
                }
            }
        }
    }