@@ -155,7 +155,7 @@ private void OnValidate()
155
155
{
156
156
if ( NetworkConfig == null )
157
157
return ; //May occur when the component is added
158
-
158
+
159
159
if ( NetworkConfig . EnableSceneSwitching && ! NetworkConfig . RegisteredScenes . Contains ( SceneManager . GetActiveScene ( ) . name ) )
160
160
{
161
161
Debug . LogWarning ( "MLAPI: The active scene is not registered as a networked scene. The MLAPI has added it" ) ;
@@ -252,10 +252,17 @@ private ConnectionConfig Init(bool server)
252
252
NetworkConfig . NetworkPrefabIds = new Dictionary < string , int > ( ) ;
253
253
NetworkConfig . NetworkPrefabNames = new Dictionary < int , string > ( ) ;
254
254
NetworkConfig . NetworkedPrefabs . OrderBy ( x => x . name ) ;
255
+ HashSet < string > networkedPrefabName = new HashSet < string > ( ) ;
255
256
for ( int i = 0 ; i < NetworkConfig . NetworkedPrefabs . Count ; i ++ )
256
257
{
258
+ if ( networkedPrefabName . Contains ( NetworkConfig . NetworkedPrefabs [ i ] . name ) )
259
+ {
260
+ Debug . LogWarning ( "MLAPI: Duplicate NetworkedPrefabName " + NetworkConfig . NetworkedPrefabs [ i ] . name ) ;
261
+ continue ;
262
+ }
257
263
NetworkConfig . NetworkPrefabIds . Add ( NetworkConfig . NetworkedPrefabs [ i ] . name , i ) ;
258
264
NetworkConfig . NetworkPrefabNames . Add ( i , NetworkConfig . NetworkedPrefabs [ i ] . name ) ;
265
+ networkedPrefabName . Add ( NetworkConfig . NetworkedPrefabs [ i ] . name ) ;
259
266
}
260
267
if ( NetworkConfig . EnableSceneSwitching )
261
268
{
@@ -321,22 +328,38 @@ private ConnectionConfig Init(bool server)
321
328
322
329
if ( NetworkConfig . EnableEncryption )
323
330
{
331
+ HashSet < string > addedEncryptedChannels = new HashSet < string > ( ) ;
324
332
for ( int i = 0 ; i < NetworkConfig . Channels . Count ; i ++ )
325
333
{
334
+ if ( addedEncryptedChannels . Contains ( NetworkConfig . Channels [ i ] . Name ) )
335
+ {
336
+ Debug . LogWarning ( "MLAPI: Duplicate encrypted channel name " + NetworkConfig . Channels [ i ] . Name ) ;
337
+ continue ;
338
+ }
326
339
if ( NetworkConfig . Channels [ i ] . Encrypted )
327
340
{
328
341
NetworkConfig . EncryptedChannels . Add ( NetworkConfig . Channels [ i ] . Name ) ;
329
342
NetworkConfig . EncryptedChannelsHashSet . Add ( NetworkConfig . Channels [ i ] . Name ) ;
330
343
}
344
+ addedEncryptedChannels . Add ( NetworkConfig . Channels [ i ] . Name ) ;
331
345
}
332
346
}
333
347
334
348
if ( NetworkConfig . AllowPassthroughMessages )
335
349
{
350
+ HashSet < string > addedPassthroughMessages = new HashSet < string > ( ) ;
336
351
for ( int i = 0 ; i < NetworkConfig . MessageTypes . Count ; i ++ )
337
352
{
353
+ if ( addedPassthroughMessages . Contains ( NetworkConfig . MessageTypes [ i ] . Name ) )
354
+ {
355
+ Debug . LogWarning ( "MLAPI: Duplicate passthrough message type " + NetworkConfig . MessageTypes [ i ] . Name ) ;
356
+ continue ;
357
+ }
338
358
if ( NetworkConfig . MessageTypes [ i ] . Passthrough )
359
+ {
339
360
NetworkConfig . PassthroughMessageHashSet . Add ( MessageManager . messageTypes [ NetworkConfig . MessageTypes [ i ] . Name ] ) ;
361
+ addedPassthroughMessages . Add ( NetworkConfig . MessageTypes [ i ] . Name ) ;
362
+ }
340
363
}
341
364
}
342
365
0 commit comments