diff --git a/Content.Shared/Prying/Systems/PryingSystem.cs b/Content.Shared/Prying/Systems/PryingSystem.cs index bc37ab035a..36e42723df 100644 --- a/Content.Shared/Prying/Systems/PryingSystem.cs +++ b/Content.Shared/Prying/Systems/PryingSystem.cs @@ -158,10 +158,19 @@ public sealed class PryingSystem : EntitySystem if (args.Target is null) return; - PryingComponent? comp = null; + TryComp(args.Used, out var comp); - if (args.Used != null && Resolve(args.Used.Value, ref comp)) - _audioSystem.PlayPredicted(comp.UseSound, args.Used.Value, args.User); + if (!CanPry(uid, args.User, out var message, comp)) + { + if (message != null) + Popup.PopupEntity(Loc.GetString(message), uid, args.User); + return; + } + + // TODO: When we get airlock prediction make this predicted. + // When that happens also fix the checking function in the Client AirlockSystem. + if (args.Used != null && comp != null) + _audioSystem.PlayPvs(comp.UseSound, args.Used.Value); var ev = new PriedEvent(args.User); RaiseLocalEvent(uid, ref ev);