@@ -1440,6 +1440,8 @@ private void ProcessNetworkBehaviour(TypeDefinition typeDefinition, string[] ass
14401440 callMethod = callMethod . MakeGeneric ( genericTypes . ToArray ( ) ) ;
14411441 }
14421442
1443+ var isClientRpc = rpcAttribute . AttributeType . FullName == CodeGenHelpers . ClientRpcAttribute_FullName ;
1444+
14431445 var invokePermission = RpcInvokePermission . Anyone ;
14441446
14451447 foreach ( var attrField in rpcAttribute . Fields )
@@ -1455,7 +1457,12 @@ private void ProcessNetworkBehaviour(TypeDefinition typeDefinition, string[] ass
14551457 }
14561458 }
14571459
1458- // __registerRpc(RpcMethodId, HandleFunc, methodName);
1460+ if ( isClientRpc )
1461+ {
1462+ invokePermission = RpcInvokePermission . Server ;
1463+ }
1464+
1465+ // __registerRpc(RpcMethodId, HandleFunc, invokePermission, methodName);
14591466 instructions . Add ( processor . Create ( OpCodes . Ldarg_0 ) ) ;
14601467 instructions . Add ( processor . Create ( OpCodes . Ldc_I4 , unchecked ( ( int ) rpcMethodId ) ) ) ;
14611468 instructions . Add ( processor . Create ( OpCodes . Ldnull ) ) ;
@@ -2892,7 +2899,7 @@ private MethodDefinition GenerateStaticHandler(MethodDefinition methodDefinition
28922899 var processor = rpcHandler. Body. GetILProcessor( ) ;
28932900
28942901 var isServerRpc = rpcAttribute. AttributeType. FullName == CodeGenHelpers. ServerRpcAttribute_FullName;
2895- var isCientRpc = rpcAttribute. AttributeType. FullName == CodeGenHelpers. ClientRpcAttribute_FullName;
2902+ var isClientRpc = rpcAttribute. AttributeType. FullName == CodeGenHelpers. ClientRpcAttribute_FullName;
28962903 var isGenericRpc = rpcAttribute. AttributeType. FullName == CodeGenHelpers. RpcAttribute_FullName;
28972904 var invokePermission = RpcInvokePermission. Anyone;
28982905 foreach ( var attrField in rpcAttribute. Fields)
@@ -2908,6 +2915,12 @@ private MethodDefinition GenerateStaticHandler(MethodDefinition methodDefinition
29082915 }
29092916 }
29102917
2918+ // legacy ClientRpc should always be RpcInvokePermission.Server
2919+ if ( isClientRpc)
2920+ {
2921+ invokePermission = RpcInvokePermission. Server;
2922+ }
2923+
29112924 rpcHandler. Body. InitLocals = true;
29122925 // NetworkManager networkManager;
29132926 rpcHandler. Body. Variables. Add( new VariableDefinition( m_NetworkManager_TypeRef) ) ;
0 commit comments