diff --git a/src/event/BaseEvent.php b/src/event/BaseEvent.php index 679739c43..e0744ea11 100644 --- a/src/event/BaseEvent.php +++ b/src/event/BaseEvent.php @@ -81,22 +81,21 @@ abstract class BaseEvent{ public static function unregisterAll(){ self::$handlers = array(); - self::$handlerPriority = array( - EventPriority::LOWEST => array(), - EventPriority::LOW => array(), - EventPriority::NORMAL => array(), - EventPriority::HIGH => array(), - EventPriority::HIGHEST => array(), - EventPriority::MONITOR => array() - ); + self::$handlerPriority = array(); } public function register(callable $handler, $priority = EventPriority::NORMAL){ + if($priority < EventPriority::MONITOR or $priority > EventPriority::LOWEST){ + return false; + } $identifier = Utils::getCallableIdentifier($handler); if(isset(self::$handlers[$identifier])){ //Already registered return false; }else{ self::$handlers[$identifier] = $handler; + if(!isset(self::$handlerPriority[(int) $priority])){ + self::$handlerPriority[(int) $priority] = array(); + } self::$handlerPriority[(int) $priority][$identifier] = $handler; return true; } @@ -110,8 +109,11 @@ abstract class BaseEvent{ }else{ for($priority = EventPriority::MONITOR; $priority <= EventPriority::LOWEST; ++$priority){ unset(self::$handlerPriority[$priority][$identifier]); + if(count(self::$handlerPriority[$priority]) === 0){ + unset(self::$handlerPriority[$priority]); + } } - } + } unset(self::$handlers[$identifier]); return true; }else{ diff --git a/src/event/EventHandler.php b/src/event/EventHandler.php index 50166b943..9a2cf5019 100644 --- a/src/event/EventHandler.php +++ b/src/event/EventHandler.php @@ -38,6 +38,7 @@ abstract class EventHandler{ } } } + if($event instanceof CancellableEvent and $event->isCancelled()){ return BaseEvent::DENY; }elseif($event->isAllowed()){ @@ -45,6 +46,7 @@ abstract class EventHandler{ }else{ return BaseEvent::NORMAL; } + } } \ No newline at end of file diff --git a/src/event/MalleableEvent.php b/src/event/MalleableEvent.php deleted file mode 100644 index 90c1817ef..000000000 --- a/src/event/MalleableEvent.php +++ /dev/null @@ -1,24 +0,0 @@ -