[Bleeding] Added ability to register and listen to SubEvents. Addresses
BUKKIT-585
This commit is contained in:
parent
f0f593c956
commit
0706671a0a
@ -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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user