Update PluginManager.php

This commit is contained in:
PEMapModder 2015-08-10 22:14:11 +08:00
parent ff16f2ef05
commit d5c2702908

View File

@ -748,9 +748,15 @@ class PluginManager{
* @throws PluginException
*/
public function registerEvent($event, Listener $listener, $priority, EventExecutor $executor, Plugin $plugin, $ignoreCancelled = false){
if(!is_subclass_of($event, Event::class)){
throw new PluginException($event . " is not an Event");
}
$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");
if($class->isAbstract()){
throw new PluginException($event . " is an abstract Event");
}
if($class->getProperty("handlerList")->getDeclaringClass()->getName() !== $event){
throw new PluginException($event . " does not have a handler list");
}
if(!$plugin->isEnabled()){