/** * @param justPrintConfiguration * @throws InterruptedException */ public static void printVersion(boolean justPrintConfiguration) throws InterruptedException { System.out.println("FindBugs " + Version.COMPUTED_RELEASE); if (justPrintConfiguration) { for (Plugin plugin : Plugin.getAllPlugins()) { System.out.printf( "Plugin %s, version %s, loaded from %s%n", plugin.getPluginId(), plugin.getVersion(), plugin.getPluginLoader().getURL()); if (plugin.isCorePlugin()) System.out.println(" is core plugin"); if (plugin.isInitialPlugin()) System.out.println(" is initial plugin"); if (plugin.isEnabledByDefault()) System.out.println(" is enabled by default"); if (plugin.isGloballyEnabled()) System.out.println(" is globally enabled"); Plugin parent = plugin.getParentPlugin(); if (parent != null) { System.out.println(" has parent plugin " + parent.getPluginId()); } for (CloudPlugin cloudPlugin : plugin.getCloudPlugins()) { System.out.printf(" cloud %s%n", cloudPlugin.getId()); System.out.printf(" %s%n", cloudPlugin.getDescription()); } for (DetectorFactory factory : plugin.getDetectorFactories()) { System.out.printf(" detector %s%n", factory.getShortName()); } System.out.println(); } printPluginUpdates(true, 10); } else printPluginUpdates(false, 3); }
public void registerEvents(Listener listener, Plugin plugin) { if (!plugin.isEnabled()) { throw new IllegalPluginAccessException( "Plugin attempted to register " + listener + " while not enabled"); } for (Map.Entry<Class<? extends Event>, Set<RegisteredListener>> entry : plugin.getPluginLoader().createRegisteredListeners(listener, plugin).entrySet()) { getEventListeners(getRegistrationClass(entry.getKey())).registerAll(entry.getValue()); } }
/** * Registers all the events in the given listener class. * * @param listener - listener to register * @param plugin - plugin to register */ public void registerEvents(Listener listener, Plugin plugin) { if (!plugin.isEnabled()) throw new IllegalPluginAccessException( "Plugin attempted to register " + listener + " while not enabled"); // Just in case Bukkit decides to validate the parameters in the future EventExecutor nullExecutor = (arg0, arg1) -> { throw new IllegalStateException("This method should never be called!"); }; for (Entry<Class<? extends Event>, Set<RegisteredListener>> entry : plugin.getPluginLoader().createRegisteredListeners(listener, plugin).entrySet()) { Collection<RegisteredListener> listeners = entry.getValue(); Collection<RegisteredListener> modified = Lists.newArrayList(); // Use our plugin specific logger instead for (final RegisteredListener delegate : listeners) { RegisteredListener customListener = new RegisteredListener( delegate.getListener(), nullExecutor, delegate.getPriority(), delegate.getPlugin(), delegate.isIgnoringCancelled()) { @Override public void callEvent(Event event) throws EventException { try { delegate.callEvent(event); } catch (AuthorNagException e) { // Let Bukkit handle that one throw e; } catch (Throwable e) { customHandler(event, e); } } }; modified.add(customListener); } getEventListeners(getRegistrationClass(entry.getKey())).registerAll(modified); } }
public void enablePlugin(final Plugin plugin) { if (!plugin.isEnabled()) { List<Command> pluginCommands = PluginCommandYamlParser.parse(plugin); if (!pluginCommands.isEmpty()) { commandMap.registerAll(plugin.getDescription().getName(), pluginCommands); } try { plugin.getPluginLoader().enablePlugin(plugin); } catch (Throwable ex) { server .getLogger() .log( Level.SEVERE, "Error occurred (in the plugin loader) while enabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex); } HandlerList.bakeAll(); } }
public void disablePlugin(final Plugin plugin) { if (plugin.isEnabled()) { try { plugin.getPluginLoader().disablePlugin(plugin); } catch (Throwable ex) { server .getLogger() .log( Level.SEVERE, "Error occurred (in the plugin loader) while disabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex); } try { server.getScheduler().cancelTasks(plugin); } catch (Throwable ex) { server .getLogger() .log( Level.SEVERE, "Error occurred (in the plugin loader) while cancelling tasks for " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex); } try { server.getServicesManager().unregisterAll(plugin); } catch (Throwable ex) { server .getLogger() .log( Level.SEVERE, "Error occurred (in the plugin loader) while unregistering services for " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex); } try { HandlerList.unregisterAll(plugin); } catch (Throwable ex) { server .getLogger() .log( Level.SEVERE, "Error occurred (in the plugin loader) while unregistering events for " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex); } try { server.getMessenger().unregisterIncomingPluginChannel(plugin); server.getMessenger().unregisterOutgoingPluginChannel(plugin); } catch (Throwable ex) { server .getLogger() .log( Level.SEVERE, "Error occurred (in the plugin loader) while unregistering plugin channels for " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex); } } }