Disallow registration of events without handlerList

This commit is contained in:
PEMapModder 2015-07-29 21:47:39 -04:00
parent 2df901b064
commit ff16f2ef05

View File

@ -748,7 +748,8 @@ class PluginManager{
* @throws PluginException
*/
public function registerEvent($event, Listener $listener, $priority, EventExecutor $executor, Plugin $plugin, $ignoreCancelled = false){
if(!is_subclass_of($event, Event::class) or (new \ReflectionClass($event))->isAbstract()){
$class = new \ReflectionClass($event);
if(!is_subclass_of($event, Event::class) or $class->isAbstract() or $class->getProperty("handlerList")->getDeclaringClass()->getName() !== $event){
throw new PluginException($event . " is not a valid Event");
}