@@ -2,7 +2,7 @@ use std::time::UNIX_EPOCH;
2
2
3
3
use crate :: prelude:: * ;
4
4
5
- pub fn handle_network_chat_message_send (
5
+ pub fn sync_single_player_chat_messages_system (
6
6
mut server : ResMut < RenetServer > ,
7
7
mut player_send_messages : EventReader < chat_events:: PlayerChatMessageSendEvent > ,
8
8
mut chat_messages : ResMut < chat_resources:: ChatHistory > ,
@@ -13,15 +13,16 @@ pub fn handle_network_chat_message_send(
13
13
let message_count = chat_messages. messages . len ( ) ;
14
14
let message_id = message_count;
15
15
16
- chat_messages . messages . push ( lib:: ChatMessage {
16
+ let chat_message = lib:: ChatMessage {
17
17
client_id,
18
18
message_id,
19
19
message,
20
20
timestamp : get_current_time_in_ms ( ) ,
21
- } ) ;
21
+ } ;
22
22
23
- let response_message =
24
- lib:: NetworkingMessage :: ChatMessageSync ( chat_messages. messages . clone ( ) ) ;
23
+ chat_messages. messages . push ( chat_message. clone ( ) ) ;
24
+
25
+ let response_message = lib:: NetworkingMessage :: SingleChatMessageSync ( chat_message) ;
25
26
26
27
server. broadcast_message (
27
28
DefaultChannel :: ReliableOrdered ,
@@ -30,6 +31,20 @@ pub fn handle_network_chat_message_send(
30
31
}
31
32
}
32
33
34
+ pub fn sync_player_chat_messages_event (
35
+ mut server : ResMut < RenetServer > ,
36
+ mut events : EventReader < chat_events:: SyncPlayerChatMessagesEvent > ,
37
+ chat_messages : ResMut < chat_resources:: ChatHistory > ,
38
+ ) {
39
+ for event in events. read ( ) {
40
+ let client_id = event. client_id ;
41
+ let history = chat_messages. messages . clone ( ) ;
42
+
43
+ let response_message = bincode:: serialize ( & history) . unwrap ( ) ;
44
+ server. send_message ( client_id, DefaultChannel :: ReliableOrdered , response_message) ;
45
+ }
46
+ }
47
+
33
48
fn get_current_time_in_ms ( ) -> i64 {
34
49
let start = SystemTime :: now ( ) ;
35
50
let since_the_epoch = start. duration_since ( UNIX_EPOCH ) ;
0 commit comments