diff --git a/src/OneBot/Driver/Event/WebSocket/WebSocketOpenEvent.php b/src/OneBot/Driver/Event/WebSocket/WebSocketOpenEvent.php index 9e55de1..4466b5a 100644 --- a/src/OneBot/Driver/Event/WebSocket/WebSocketOpenEvent.php +++ b/src/OneBot/Driver/Event/WebSocket/WebSocketOpenEvent.php @@ -12,7 +12,7 @@ class WebSocketOpenEvent extends DriverEvent { protected ServerRequestInterface $request; - protected ?ResponseInterface $response; + protected ?ResponseInterface $response = null; protected int $fd; diff --git a/src/OneBot/V12/Object/OneBotEvent.php b/src/OneBot/V12/Object/OneBotEvent.php index 488bdd3..4437a27 100644 --- a/src/OneBot/V12/Object/OneBotEvent.php +++ b/src/OneBot/V12/Object/OneBotEvent.php @@ -68,6 +68,9 @@ public function __call(string $name, array $args = []) return null; } if (str_starts_with($name, 'set')) { + if ($name === 'setMessage') { + $this->message_segment_cache = null; + } $key = Utils::camelToSeparator(substr($name, 3)); if (isset($this->data[$key])) { $this->data[$key] = $args[0]; @@ -132,6 +135,26 @@ public function getMessage(bool $return_assoc_array = false): ?array return $this->message_segment_cache; } + /** + * 获取纯文本消息 + */ + public function getMessageString(): string + { + $message = $this->getMessage(); + if ($message === null) { + return ''; + } + $message_string = ''; + foreach ($message as $segment) { + if ($segment->type === 'text') { + $message_string .= $segment->data['text']; + } else { + $message_string .= '[富文本:' . $segment->type . ']'; + } + } + return $message_string; + } + public function jsonSerialize(): array { return $this->data;