@@ -47,6 +47,9 @@ public override ILPostProcessResult Process(ICompiledAssembly compiledAssembly)
4747
4848 switch ( typeDefinition . Name )
4949 {
50+ case nameof ( NetworkManager ) :
51+ ProcessNetworkManager ( typeDefinition , compiledAssembly . Defines ) ;
52+ break ;
5053 case nameof ( NetworkBehaviour ) :
5154 ProcessNetworkBehaviour ( typeDefinition ) ;
5255 break ;
@@ -87,6 +90,46 @@ public override ILPostProcessResult Process(ICompiledAssembly compiledAssembly)
8790 return new ILPostProcessResult ( new InMemoryAssembly ( pe . ToArray ( ) , pdb . ToArray ( ) ) , m_Diagnostics ) ;
8891 }
8992
93+ // TODO: Deprecate...
94+ // This is changing accessibility for values that are no longer used, but since our validator runs
95+ // after ILPP and sees those values as public, they cannot be removed until a major version change.
96+ private void ProcessNetworkManager ( TypeDefinition typeDefinition , string [ ] assemblyDefines )
97+ {
98+ foreach ( var fieldDefinition in typeDefinition . Fields )
99+ {
100+ #pragma warning disable CS0618 // Type or member is obsolete
101+ if ( fieldDefinition . Name == nameof ( NetworkManager . __rpc_func_table ) )
102+ #pragma warning restore CS0618 // Type or member is obsolete
103+ {
104+ fieldDefinition . IsPublic = true ;
105+ }
106+
107+ #pragma warning disable CS0618 // Type or member is obsolete
108+ if ( fieldDefinition . Name == nameof ( NetworkManager . RpcReceiveHandler ) )
109+ #pragma warning restore CS0618 // Type or member is obsolete
110+ {
111+ fieldDefinition . IsPublic = true ;
112+ }
113+
114+ #pragma warning disable CS0618 // Type or member is obsolete
115+ if ( fieldDefinition . Name == nameof ( NetworkManager . __rpc_name_table ) )
116+ #pragma warning restore CS0618 // Type or member is obsolete
117+ {
118+ fieldDefinition . IsPublic = true ;
119+ }
120+ }
121+
122+ foreach ( var nestedTypeDefinition in typeDefinition . NestedTypes )
123+ {
124+ #pragma warning disable CS0618 // Type or member is obsolete
125+ if ( nestedTypeDefinition . Name == nameof ( NetworkManager . RpcReceiveHandler ) )
126+ #pragma warning restore CS0618 // Type or member is obsolete
127+ {
128+ nestedTypeDefinition . IsNestedPublic = true ;
129+ }
130+ }
131+ }
132+
90133 private void ProcessNetworkBehaviour ( TypeDefinition typeDefinition )
91134 {
92135 foreach ( var nestedType in typeDefinition . NestedTypes )
0 commit comments