[Bleeding] Added ability to register and listen to SubEvents. Addresses

BUKKIT-585
This commit is contained in:
Feildmaster 2012-01-25 09:49:12 -06:00 committed by EvilSeph
parent f0f593c956
commit 0706671a0a
2 changed files with 2 additions and 7 deletions

View File

@ -537,12 +537,7 @@ public final class SimplePluginManager implements PluginManager {
} }
for (Map.Entry<Class<? extends Event>, Set<RegisteredListener>> entry : plugin.getPluginLoader().createRegisteredListeners(listener, plugin).entrySet()) { for (Map.Entry<Class<? extends Event>, Set<RegisteredListener>> entry : plugin.getPluginLoader().createRegisteredListeners(listener, plugin).entrySet()) {
Class<? extends Event> delegatedClass = getRegistrationClass(entry.getKey()); getEventListeners(getRegistrationClass(entry.getKey())).registerAll(entry.getValue());
if (!entry.getKey().equals(delegatedClass)) {
plugin.getServer().getLogger().severe("Plugin attempted to register delegated event class " + entry.getKey() + ". It should be using " + delegatedClass + "!");
continue;
}
getEventListeners(delegatedClass).registerAll(entry.getValue());
} }
} }

View File

@ -1019,7 +1019,7 @@ public class JavaPluginLoader implements PluginLoader {
public void execute(Listener listener, Event event) throws EventException { public void execute(Listener listener, Event event) throws EventException {
try { try {
if (!eventClass.isAssignableFrom(event.getClass())) { if (!eventClass.isAssignableFrom(event.getClass())) {
throw new EventException("Wrong event type passed to registered method"); return;
} }
method.invoke(listener, event); method.invoke(listener, event);
} catch (Throwable t) { } catch (Throwable t) {