@@ -460,9 +460,9 @@ internal void OnRemoteServerRPC(ulong hash, uint senderClientId, Stream stream)
460
460
461
461
internal void OnRemoteClientRPC ( ulong hash , uint senderClientId , Stream stream )
462
462
{
463
- if ( ! CachedServerRpcs . ContainsKey ( GetType ( ) ) || ! CachedServerRpcs [ GetType ( ) ] . ContainsKey ( hash ) )
463
+ if ( ! CachedClientRpcs . ContainsKey ( GetType ( ) ) || ! CachedClientRpcs [ GetType ( ) ] . ContainsKey ( hash ) )
464
464
{
465
- if ( LogHelper . CurrentLogLevel <= LogLevel . Normal ) LogHelper . LogWarning ( "ServerRPC request method not found" ) ;
465
+ if ( LogHelper . CurrentLogLevel <= LogLevel . Normal ) LogHelper . LogWarning ( "ClientRPC request method not found" ) ;
466
466
return ;
467
467
}
468
468
InvokeClientRPCLocal ( hash , senderClientId , stream ) ;
@@ -551,7 +551,7 @@ internal void SendClientRPCBoxed(ulong hash, uint clientId, params object[] para
551
551
}
552
552
}
553
553
554
- internal void SendServerRPCPerformance ( ulong hash , Stream stream )
554
+ internal void SendServerRPCPerformance ( ulong hash , Stream messageStream )
555
555
{
556
556
if ( ! isClient )
557
557
{
@@ -560,12 +560,22 @@ internal void SendServerRPCPerformance(ulong hash, Stream stream)
560
560
return ;
561
561
}
562
562
563
- if ( isHost )
564
- {
565
- InvokeServerRPCLocal ( hash , NetworkingManager . singleton . LocalClientId , stream ) ;
566
- }
563
+ using ( PooledBitStream stream = PooledBitStream . Get ( ) )
564
+ {
565
+ BitWriter messageWriter = new BitWriter ( stream ) ;
566
+ messageWriter . WriteUInt32Packed ( networkId ) ;
567
+ messageWriter . WriteUInt16Packed ( networkedObject . GetOrderIndex ( this ) ) ;
568
+ messageWriter . WriteUInt64Packed ( hash ) ;
569
+
570
+ stream . CopyFrom ( messageStream ) ;
571
+
572
+ if ( isHost )
573
+ {
574
+ InvokeServerRPCLocal ( hash , NetworkingManager . singleton . LocalClientId , messageStream ) ;
575
+ }
567
576
568
- InternalMessageHandler . Send ( NetworkingManager . singleton . NetworkConfig . NetworkTransport . ServerNetId , "MLAPI_SERVER_RPC" , "MLAPI_DEFAULT_MESSAGE" , stream ) ;
577
+ InternalMessageHandler . Send ( NetworkingManager . singleton . NetworkConfig . NetworkTransport . ServerNetId , "MLAPI_SERVER_RPC" , "MLAPI_DEFAULT_MESSAGE" , stream ) ;
578
+ }
569
579
}
570
580
571
581
internal void SendClientRPCPerformance ( ulong hash , List < uint > clientIds , Stream messageStream )
@@ -592,7 +602,7 @@ internal void SendClientRPCPerformance(ulong hash, List<uint> clientIds, Stream
592
602
{
593
603
if ( isHost && NetworkingManager . singleton . ConnectedClientsList [ i ] . ClientId == NetworkingManager . singleton . LocalClientId )
594
604
{
595
- InvokeClientRPCLocal ( hash , NetworkingManager . singleton . LocalClientId , stream ) ;
605
+ InvokeClientRPCLocal ( hash , NetworkingManager . singleton . LocalClientId , messageStream ) ;
596
606
}
597
607
else
598
608
{
@@ -606,7 +616,7 @@ internal void SendClientRPCPerformance(ulong hash, List<uint> clientIds, Stream
606
616
{
607
617
if ( isHost && clientIds [ i ] == NetworkingManager . singleton . LocalClientId )
608
618
{
609
- InvokeClientRPCLocal ( hash , NetworkingManager . singleton . LocalClientId , stream ) ;
619
+ InvokeClientRPCLocal ( hash , NetworkingManager . singleton . LocalClientId , messageStream ) ;
610
620
}
611
621
else
612
622
{
@@ -637,7 +647,7 @@ internal void SendClientRPCPerformance(ulong hash, uint clientId, Stream message
637
647
638
648
if ( isHost && clientId == NetworkingManager . singleton . LocalClientId )
639
649
{
640
- InvokeClientRPCLocal ( hash , NetworkingManager . singleton . LocalClientId , stream ) ;
650
+ InvokeClientRPCLocal ( hash , NetworkingManager . singleton . LocalClientId , messageStream ) ;
641
651
}
642
652
else
643
653
{
0 commit comments