@@ -308,7 +308,7 @@ fn apply_update_message(
308308
309309 match flag {
310310 UpdateFlags :: USERDATA => {
311- process_userdata ( world, message)
311+ process_userdata ( world, message, message_tick )
312312 . map_err ( |e| format ! ( "unable to process userdata: {e}" ) ) ?;
313313 }
314314 UpdateFlags :: MAPPINGS => {
@@ -402,7 +402,7 @@ fn apply_mutate_message(
402402 for ( _, flag) in mutate. flags . iter_names ( ) {
403403 match flag {
404404 MutateFlags :: USERDATA => {
405- process_userdata ( world, & mut mutate. message )
405+ process_userdata ( world, & mut mutate. message , mutate . message_tick )
406406 . map_err ( |e| format ! ( "unable to apply userdata: {e}" ) ) ?;
407407 }
408408 MutateFlags :: MESSAGES_COUNT => {
@@ -625,7 +625,11 @@ fn apply_changes(
625625 Ok ( ( ) )
626626}
627627
628- fn process_userdata ( world : & mut World , message : & mut Bytes ) -> Result < ( ) > {
628+ fn process_userdata (
629+ world : & mut World ,
630+ message : & mut Bytes ,
631+ message_tick : RepliconTick ,
632+ ) -> Result < ( ) > {
629633 let len = postcard_utils:: from_buf ( message) ?;
630634 if len > message. len ( ) {
631635 return Err ( format ! (
@@ -635,6 +639,7 @@ fn process_userdata(world: &mut World, message: &mut Bytes) -> Result<()> {
635639 . into ( ) ) ;
636640 }
637641 world. trigger ( UserdataReceived {
642+ message_tick,
638643 bytes : message. split_to ( len) ,
639644 } ) ;
640645
@@ -982,6 +987,9 @@ pub struct Remote;
982987/// This is emitted for data sent through [`ReplicationUserdata`](crate::server::ReplicationUserdata).
983988#[ derive( Event ) ]
984989pub struct UserdataReceived {
990+ /// Tick of the message with the metadata.
991+ pub message_tick : RepliconTick ,
992+
985993 /// Raw user-defined bytes received from the server.
986994 pub bytes : Bytes ,
987995}
0 commit comments