From ef8eba43d7e5dad0fe1d08f87a5eb1a78f25ffa7 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Fri, 23 Aug 2019 19:54:41 +0100 Subject: [PATCH] RegisteredListener: validate priority at a more sensible time --- src/event/HandlerList.php | 3 --- src/event/RegisteredListener.php | 4 ++++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/event/HandlerList.php b/src/event/HandlerList.php index 6d391215f..c6ffbaac6 100644 --- a/src/event/HandlerList.php +++ b/src/event/HandlerList.php @@ -49,9 +49,6 @@ class HandlerList{ * @throws \Exception */ public function register(RegisteredListener $listener) : void{ - if(!in_array($listener->getPriority(), EventPriority::ALL, true)){ - return; - } if(isset($this->handlerSlots[$listener->getPriority()][spl_object_id($listener)])){ throw new \InvalidStateException("This listener is already registered to priority {$listener->getPriority()} of event {$this->class}"); } diff --git a/src/event/RegisteredListener.php b/src/event/RegisteredListener.php index 0026063fe..ac06cd652 100644 --- a/src/event/RegisteredListener.php +++ b/src/event/RegisteredListener.php @@ -25,6 +25,7 @@ namespace pocketmine\event; use pocketmine\plugin\Plugin; use pocketmine\timings\TimingsHandler; +use function in_array; class RegisteredListener{ @@ -52,6 +53,9 @@ class RegisteredListener{ * @param TimingsHandler $timings */ public function __construct(\Closure $handler, int $priority, Plugin $plugin, bool $handleCancelled, TimingsHandler $timings){ + if(!in_array($priority, EventPriority::ALL, true)){ + throw new \InvalidArgumentException("Invalid priority number $priority"); + } $this->handler = $handler; $this->priority = $priority; $this->plugin = $plugin;