diff --git a/EXILED/Exiled.CustomItems/API/Features/CustomGoggles.cs b/EXILED/Exiled.CustomItems/API/Features/CustomGoggles.cs index 60d1046227..68f8d07818 100644 --- a/EXILED/Exiled.CustomItems/API/Features/CustomGoggles.cs +++ b/EXILED/Exiled.CustomItems/API/Features/CustomGoggles.cs @@ -8,6 +8,7 @@ namespace Exiled.CustomItems.API.Features { using EventArgs; + using Exiled.API.Enums; using Exiled.API.Features; using Exiled.API.Features.Items; @@ -18,6 +19,8 @@ namespace Exiled.CustomItems.API.Features using PlayerRoles.FirstPersonControl.Thirdperson.Subcontrollers.Wearables; + using PlayerStatsSystem; + /// /// The Custom Goggles base class. /// @@ -56,6 +59,7 @@ public override ItemType Type /// protected override void SubscribeEvents() { + PlayerStats.OnAnyPlayerDied += OnOwnerDied; InventorySystem.InventoryExtensions.OnInventoryDropped += RemoveSafely; Exiled.Events.Handlers.Player.UsingItem += OnInternalUsingItem; Exiled.Events.Handlers.Player.ItemRemoved += OnInternalItemRemoved; @@ -68,6 +72,7 @@ protected override void SubscribeEvents() /// protected override void UnsubscribeEvents() { + PlayerStats.OnAnyPlayerDied -= OnOwnerDied; InventorySystem.InventoryExtensions.OnInventoryDropped -= RemoveSafely; Exiled.Events.Handlers.Player.UsingItem -= OnInternalUsingItem; Exiled.Events.Handlers.Player.ItemRemoved -= OnInternalItemRemoved; @@ -214,6 +219,8 @@ private void OnInternalChangingStatus(ChangingStatusEventArgs ev) InternalRemove(ev.Player, ev.Scp1344); } + private void OnOwnerDied(ReferenceHub hub, DamageHandlerBase handler) => RemoveSafely(hub); + private void RemoveSafely(ReferenceHub hub) { if (!Player.TryGet(hub, out Player owner))