diff --git a/api/AltV.Net.Async/AsyncBaseObjectPool.cs b/api/AltV.Net.Async/AsyncBaseObjectPool.cs index c938d191c1..201fb2b080 100644 --- a/api/AltV.Net.Async/AsyncBaseObjectPool.cs +++ b/api/AltV.Net.Async/AsyncBaseObjectPool.cs @@ -22,9 +22,11 @@ protected AsyncBaseObjectPool(IBaseObjectFactory entityFactory) public TBaseObject Create(ICore core, IntPtr entityPointer) { - var entity = entityFactory.Create(core, entityPointer); - Add(entity); - return entity; + if (entityPointer == IntPtr.Zero) return default; + if (entities.TryGetValue(entityPointer, out var baseObject)) return baseObject; + baseObject = entityFactory.Create(core, entityPointer); + Add(baseObject); + return baseObject; } public void Add(TBaseObject entity) @@ -66,9 +68,7 @@ public TBaseObject GetOrCreate(ICore core, IntPtr entityPointer) if (entities.TryGetValue(entityPointer, out var entity)) return entity; - entity = Create(core, entityPointer); - - return entity; + return Create(core, entityPointer); } public IReadOnlyCollection GetAllObjects()