From 10467755ae6c40154049de9650de37942af9149d Mon Sep 17 00:00:00 2001 From: Brandon Hu <103440971+Brandon-Huu@users.noreply.github.com> Date: Tue, 20 Aug 2024 02:32:44 +0000 Subject: [PATCH] fix(SpecialRespawn): Check if prototype exists before attemping to respawn it (#31140) * Co-Authored-By: deltanedas * _ * They're playing basketball Co-authored-by: deltanedas <@deltanedas:kde.org> * They're playing basketball Co-authored-by: deltanedas --------- Co-authored-by: deltanedas --- Content.Server/Respawn/SpecialRespawnSystem.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Content.Server/Respawn/SpecialRespawnSystem.cs b/Content.Server/Respawn/SpecialRespawnSystem.cs index cbda98f263..8c86449008 100644 --- a/Content.Server/Respawn/SpecialRespawnSystem.cs +++ b/Content.Server/Respawn/SpecialRespawnSystem.cs @@ -11,6 +11,7 @@ using Content.Shared.Respawn; using Robust.Shared.Map; using Robust.Shared.Map.Components; using Robust.Shared.Random; +using Robust.Shared.Prototypes; namespace Content.Server.Respawn; @@ -23,6 +24,7 @@ public sealed class SpecialRespawnSystem : SharedSpecialRespawnSystem [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly TurfSystem _turf = default!; [Dependency] private readonly IChatManager _chat = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; public override void Initialize() { @@ -87,6 +89,10 @@ public sealed class SpecialRespawnSystem : SharedSpecialRespawnSystem if (!TryComp(entityGridUid, out var grid) || MetaData(entityGridUid.Value).EntityLifeStage >= EntityLifeStage.Terminating) return; + //Invalid prototype + if (!_proto.HasIndex(component.Prototype)) + return; + if (TryFindRandomTile(entityGridUid.Value, entityMapUid.Value, 10, out var coords)) Respawn(uid, component.Prototype, coords); -- 2.51.2