using System; using System.Collections.Concurrent; using WingsEmu.Game.Managers; namespace WingsEmu.Plugins.BasicImplementations.Managers; public class RevivalManager : IRevivalManager { private readonly ConcurrentDictionary _pendentRevivals = new(); public Guid RegisterRevival(long id) { var newGuid = Guid.NewGuid(); bool added = _pendentRevivals.TryAdd(id, newGuid); return added ? newGuid : default; } public bool UnregisterRevival(long id, Guid guid) => _pendentRevivals.TryGetValue(id, out Guid storedGuid) && storedGuid == guid && _pendentRevivals.TryRemove(id, out _); public bool UnregisterRevival(long id) => _pendentRevivals.TryRemove(id, out _); public void TryUnregisterRevival(long id) { _pendentRevivals.TryRemove(id, out _); } }