diff --git a/EXILED/Exiled.CustomItems/API/Features/CustomItem.cs b/EXILED/Exiled.CustomItems/API/Features/CustomItem.cs index a01621fbb2..aa096dc85d 100644 --- a/EXILED/Exiled.CustomItems/API/Features/CustomItem.cs +++ b/EXILED/Exiled.CustomItems/API/Features/CustomItem.cs @@ -1011,7 +1011,7 @@ protected virtual void ShowSelectedMessage(Player player) private void OnInternalOwnerChangingRole(ChangingRoleEventArgs ev) { - if (ev.Reason == SpawnReason.Escaped) + if (ev.Reason is SpawnReason.Escaped or SpawnReason.Destroyed) return; foreach (Item item in ev.Player.Items.ToList()) diff --git a/EXILED/Exiled.CustomRoles/API/Features/CustomRole.cs b/EXILED/Exiled.CustomRoles/API/Features/CustomRole.cs index 56f3e58951..b8217fb418 100644 --- a/EXILED/Exiled.CustomRoles/API/Features/CustomRole.cs +++ b/EXILED/Exiled.CustomRoles/API/Features/CustomRole.cs @@ -926,6 +926,9 @@ private void OnInternalSpawning(SpawningEventArgs ev) private void OnInternalChangingRole(ChangingRoleEventArgs ev) { + if(ev.Reason == SpawnReason.Destroyed) + return; + if (Check(ev.Player) && ((ev.NewRole == RoleTypeId.Spectator && !KeepRoleOnDeath) || (ev.NewRole != RoleTypeId.Spectator && ev.NewRole != Role && !KeepRoleOnChangingRole))) { RemoveRole(ev.Player);