99using LabExtended . API . RemoteAdmin . Interfaces ;
1010
1111using LabExtended . Events ;
12+ using LabExtended . Attributes ;
1213using LabExtended . Extensions ;
1314
1415using LabExtended . Utilities . Update ;
15- using LabExtended . Utilities . Generation ;
16-
17- using NorthwoodLib . Pools ;
1816
1917using LabExtended . API . RemoteAdmin . Actions ;
2018using LabExtended . API . RemoteAdmin . Buttons ;
2119
22- using LabExtended . Attributes ;
23-
2420using NetworkManagerUtils . Dummies ;
2521
2622using RemoteAdmin . Communication ;
2723
24+ using LabExtended . Utilities ;
25+ using NorthwoodLib . Pools ;
26+
2827#pragma warning disable CS8601 // Possible null reference assignment.
2928#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
3029
@@ -50,8 +49,8 @@ public class RemoteAdminController : IDisposable
5049 /// </summary>
5150 public const string OverwatchIconPrefix = "<link=RA_OverwatchEnabled><color=white>[</color><color=#03f8fc>\uf06e </color><color=white>]</color></link> " ;
5251
53- private static readonly UniqueStringGenerator objectIdGenerator = new ( 10 , false ) ;
54- private static readonly UniqueInt32Generator listIdGenerator = new ( 6000 , 11000 ) ;
52+ private static readonly UniqueList objectIdGenerator = new ( ) ;
53+ private static readonly UniqueList listIdGenerator = new ( ) ;
5554
5655 // ReSharper disable once CollectionNeverUpdated.Local
5756 private static readonly HashSet < Type > globalObjects = new ( ) ;
@@ -174,8 +173,8 @@ public void Dispose()
174173 obj . OnDisabled ( ) ;
175174 }
176175
177- objectIdGenerator . Free ( obj . Id ) ;
178- listIdGenerator . Free ( obj . ListId ) ;
176+ listIdGenerator . Generated . Remove ( obj . Id ) ;
177+ objectIdGenerator . Generated . Remove ( obj . Id ) ;
179178 }
180179
181180 ListPool < IRemoteAdminObject > . Shared . Return ( Objects ) ;
@@ -209,8 +208,8 @@ public IRemoteAdminObject AddObject(Type objectType, string? customId = null)
209208
210209 raObject . CustomId = customId ;
211210
212- raObject . Id = objectIdGenerator . Next ( ) ;
213- raObject . ListId = listIdGenerator . Next ( ) ;
211+ raObject . Id = objectIdGenerator . GetString ( 10 ) ;
212+ raObject . ListId = listIdGenerator . Get ( ( ) => UnityEngine . Random . Range ( 6000 , 11000 ) ) ;
214213
215214 raObject . IsActive = true ;
216215 raObject . OnEnabled ( ) ;
@@ -256,9 +255,9 @@ public void AddObject(IRemoteAdminObject remoteAdminObject)
256255 }
257256
258257 if ( string . IsNullOrWhiteSpace ( remoteAdminObject . Id ) )
259- remoteAdminObject . Id = objectIdGenerator . Next ( ) ;
258+ remoteAdminObject . Id = objectIdGenerator . GetString ( 10 ) ;
260259
261- remoteAdminObject . ListId = listIdGenerator . Next ( ) ;
260+ remoteAdminObject . ListId = listIdGenerator . Get ( ( ) => UnityEngine . Random . Range ( 6000 , 11000 ) ) ;
262261
263262 Objects . Add ( remoteAdminObject ) ;
264263 }
@@ -280,8 +279,8 @@ public bool RemoveObject(IRemoteAdminObject remoteAdminObject)
280279 remoteAdminObject . OnDisabled ( ) ;
281280 }
282281
283- objectIdGenerator . Free ( remoteAdminObject . Id ) ;
284- listIdGenerator . Free ( remoteAdminObject . ListId ) ;
282+ objectIdGenerator . Generated . Remove ( remoteAdminObject . Id ) ;
283+ listIdGenerator . Generated . Remove ( remoteAdminObject . ListId ) ;
285284
286285 return Objects . Remove ( remoteAdminObject ) ;
287286 }
0 commit comments