Created
August 27, 2014 23:09
-
-
Save DarkSeraphim/2f9c83ebcd6de900f427 to your computer and use it in GitHub Desktop.
Per world events much? Untested, but might work perfectly fine.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package net.darkseraphim.worldlyplugins; | |
| import lombok.Delegate; | |
| import lombok.RequiredArgsConstructor; | |
| import org.bukkit.Bukkit; | |
| import org.bukkit.event.Event; | |
| import org.bukkit.event.HandlerList; | |
| import org.bukkit.plugin.*; | |
| import java.util.logging.Level; | |
| /** | |
| * @author DarkSeraphim | |
| */ | |
| @RequiredArgsConstructor | |
| public class CustomSimplePluginManager implements PluginManager | |
| { | |
| @Delegate(types = PluginManager.class) | |
| private final SimplePluginManager delegate; | |
| protected void fireEvent(Event event) | |
| { | |
| HandlerList handlers = event.getHandlers(); | |
| RegisteredListener[] listeners = handlers.getRegisteredListeners(); | |
| for (RegisteredListener registration : listeners) { | |
| if (!registration.getPlugin().isEnabled()) { | |
| continue; | |
| } | |
| if(!canFireInWorld(event)){ | |
| continue; | |
| } | |
| try { | |
| registration.callEvent(event); | |
| } catch (AuthorNagException ex) { | |
| Plugin plugin = registration.getPlugin(); | |
| if (plugin.isNaggable()) { | |
| plugin.setNaggable(false); | |
| Bukkit.getServer().getLogger().log(Level.SEVERE, String.format( | |
| "Nag author(s): '%s' of '%s' about the following: %s", | |
| plugin.getDescription().getAuthors(), | |
| plugin.getDescription().getFullName(), | |
| ex.getMessage() | |
| )); | |
| } | |
| } catch (Throwable ex) { | |
| Bukkit.getServer().getLogger().log(Level.SEVERE, "Could not pass event " + event.getEventName() + " to " + registration.getPlugin().getDescription().getFullName(), ex); | |
| } | |
| } | |
| } | |
| private boolean canFireInWorld(Event event) | |
| { | |
| // This requires a some sorting out | |
| return true; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment