RegisteredListener: validate priority at a more sensible time

This commit is contained in:
Dylan K. Taylor 2019-08-23 19:54:41 +01:00
parent 4b0b923ca0
commit ef8eba43d7
2 changed files with 4 additions and 3 deletions

View File

@ -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}");
}

View File

@ -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;