From 796f1480a810ea4e7ba54f008bc56da0bcd90c39 Mon Sep 17 00:00:00 2001 From: 20kdc Date: Thu, 10 Jun 2021 08:29:25 +0100 Subject: [PATCH] Add more tolerance for if player sessions are connected to dead entities (#1818) * Add more tolerance for if some calamity causes a player session to be connected to a dead entity * Fix build issues w/ previous commit (oops) --- Robust.Server/Player/PlayerSession.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Robust.Server/Player/PlayerSession.cs b/Robust.Server/Player/PlayerSession.cs index 96cdfbb740..a312b224f7 100644 --- a/Robust.Server/Player/PlayerSession.cs +++ b/Robust.Server/Player/PlayerSession.cs @@ -133,6 +133,17 @@ namespace Robust.Server.Player if (AttachedEntity == null) return; +#if EXCEPTION_TOLERANCE + if (AttachedEntity.Deleted) + { + Logger.Warning($"Player \"{this}\" was attached to an entity that was deleted. THIS SHOULD NEVER HAPPEN, BUT DOES."); + // We can't contact ActorSystem because trying to fire an entity event would crash. + // Work around it. + ((IPlayerSession) this).SetAttachedEntity(null); + return; + } +#endif + var detachPlayer = new DetachPlayerEvent(); AttachedEntity.EntityManager.EventBus.RaiseLocalEvent(AttachedEntity.Uid, detachPlayer, false);