コード例 #1
0
ファイル: EventDispatcher.php プロジェクト: Room-11/Jeeves
 private function processRoomEvent(Event $event)
 {
     $eventId = $event->getId();
     $this->logger->log(Level::EVENT, "Processing room event #{$eventId}", $event);
     try {
         $this->logger->log(Level::DEBUG, "Processing room event #{$eventId} for built in event handlers");
         (yield $this->builtInActionManager->handleEvent($event));
         $this->logger->log(Level::DEBUG, "Event #{$eventId} processed for built in event handlers");
         $chatMessage = null;
         if ($event instanceof MessageEvent && ($this->devMode || $event->getUserId() !== $event->getRoom()->getSession()->getUser()->getId())) {
             $chatMessage = $this->messageFactory->build($event);
             if ($chatMessage instanceof Command) {
                 $this->logger->log(Level::DEBUG, "Processing room event #{$eventId} for built in commands");
                 (yield $this->builtInActionManager->handleCommand($chatMessage));
                 $this->logger->log(Level::DEBUG, "Event #{$eventId} processed for built in commands");
             } else {
                 $this->logger->log(Level::DEBUG, "Event #{$eventId} is not a command, it's a " . get_class($chatMessage));
             }
         }
         if (!$event instanceof RoomSourcedEvent) {
             // probably an Unknown event
             return;
         }
         $this->logger->log(Level::DEBUG, "Processing room event #{$eventId} for plugins");
         (yield $this->pluginManager->handleRoomEvent($event, $chatMessage));
         $this->logger->log(Level::DEBUG, "Event #{$eventId} processed for plugins");
     } catch (\Throwable $e) {
         $this->logger->log(Level::DEBUG, "Something went wrong while processing event #{$eventId}: {$e}");
     }
 }