File tree 2 files changed +48
-1
lines changed
2 files changed +48
-1
lines changed Original file line number Diff line number Diff line change @@ -130,7 +130,7 @@ public function getMessage(bool $return_assoc_array = false): ?array
130
130
}
131
131
$ this ->message_segment_cache = [];
132
132
foreach ($ this ->data ['message ' ] as $ segment ) {
133
- $ this ->message_segment_cache [] = new MessageSegment ($ segment ['type ' ], $ segment ['data ' ]);
133
+ $ this ->message_segment_cache [] = $ segment instanceof MessageSegment ? $ segment : new MessageSegment ($ segment ['type ' ], $ segment ['data ' ]);
134
134
}
135
135
return $ this ->message_segment_cache ;
136
136
}
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ declare (strict_types=1 );
4
+
5
+ namespace Tests \OneBot \V12 \Object ;
6
+
7
+ use OneBot \V12 \Object \MessageSegment ;
8
+ use OneBot \V12 \Object \OneBotEvent ;
9
+ use PHPUnit \Framework \TestCase ;
10
+
11
+ /**
12
+ * @internal
13
+ */
14
+ class OneBotEventTest extends TestCase
15
+ {
16
+ public function testGetMessageSegments (): void
17
+ {
18
+ $ event = new OneBotEvent ([
19
+ 'id ' => '123 ' ,
20
+ 'type ' => 'message ' ,
21
+ 'self ' => [
22
+ 'user_id ' => '123 ' ,
23
+ 'platform ' => 'test ' ,
24
+ ],
25
+ 'detail_type ' => 'group ' ,
26
+ 'sub_type ' => 'normal ' ,
27
+ 'time ' => 123 ,
28
+ 'alt_message ' => '123 ' ,
29
+ 'group_id ' => '123 ' ,
30
+ 'user_id ' => '123 ' ,
31
+ 'guild_id ' => '123 ' ,
32
+ 'channel_id ' => '123 ' ,
33
+ 'operator_id ' => '123 ' ,
34
+ 'message_id ' => '123 ' ,
35
+ 'message ' => [
36
+ [
37
+ 'type ' => 'text ' ,
38
+ 'data ' => [
39
+ 'text ' => '123 ' ,
40
+ ],
41
+ ],
42
+ ],
43
+ ]);
44
+ $ event ->setMessage ([ob_segment ('mention ' , ['user_id ' => '123456 ' ])]);
45
+ $ this ->assertInstanceOf (MessageSegment::class, $ event ->getMessage ()[0 ]);
46
+ }
47
+ }
You can’t perform that action at this time.
0 commit comments