mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-16 18:59:00 +00:00
Merge pull request #3332 from PEMapModder/dec
Disallow registration of events without handlerList, fixes #3330
This commit is contained in:
commit
ff232a9f04
@ -748,8 +748,15 @@ class PluginManager{
|
|||||||
* @throws PluginException
|
* @throws PluginException
|
||||||
*/
|
*/
|
||||||
public function registerEvent($event, Listener $listener, $priority, EventExecutor $executor, Plugin $plugin, $ignoreCancelled = false){
|
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()){
|
if(!is_subclass_of($event, Event::class)){
|
||||||
throw new PluginException($event . " is not a valid Event");
|
throw new PluginException($event . " is not an Event");
|
||||||
|
}
|
||||||
|
$class = new \ReflectionClass($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()){
|
if(!$plugin->isEnabled()){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user