processor = new HtmlOutputProcessor(); } /** * @inheritDoc */ public function getJavaScriptModuleName() { return 'Bastelstu.be/Chat/MessageType/Whisper'; } /** * @inheritDoc */ public function getPayload(Message $message, ?UserProfile $user = null) { if ($user === null) { $user = new UserProfile(WCF::getUser()); } $payload = $message->payload; $payload['formattedMessage'] = null; $payload['plaintextMessage'] = null; $parameters = [ 'message' => $message, 'user' => $user, 'payload' => $payload, ]; EventHandler::getInstance()->fireAction($this, 'getPayload', $parameters); if ($parameters['payload']['formattedMessage'] === null) { $this->processor->process( $parameters['payload']['message'], 'be.bastelstu.chat.message', $message->messageID ); $parameters['payload']['formattedMessage'] = $this->processor->getHtml(); } if ($parameters['payload']['plaintextMessage'] === null) { $this->processor->setOutputType('text/plain'); $this->processor->process( $parameters['payload']['message'], 'be.bastelstu.chat.message', $message->messageID ); $parameters['payload']['plaintextMessage'] = $this->processor->getHtml(); } return $parameters['payload']; } /** * @inheritDoc */ public function canSee(Message $message, Room $room, ?UserProfile $user = null) { if ($user === null) { $user = new UserProfile(WCF::getUser()); } $parameters = [ 'message' => $message, 'room' => $room, 'user' => $user, 'canSee' => $user->userID === $message->userID || $user->userID === $message->payload['recipient'], ]; EventHandler::getInstance()->fireAction($this, 'canSee', $parameters); return $parameters['canSee']; } /** * @inheritDoc */ public function canSeeInLog(Message $message, Room $room, ?UserProfile $user = null) { if ($user === null) { $user = new UserProfile(WCF::getUser()); } $parameters = [ 'message' => $message, 'room' => $room, 'user' => $user, 'canSee' => false, ]; EventHandler::getInstance()->fireAction($this, 'canSeeInLog', $parameters); return $parameters['canSee']; } /** * @inheritDoc */ public function supportsFastSelect() { $parameters = [ 'result' => false, ]; EventHandler::getInstance()->fireAction($this, 'supportsFastSelect', $parameters); return $parameters['result']; } }