From a03ddcdcf7763435681b032a9de00ba5c6b65c53 Mon Sep 17 00:00:00 2001 From: nikthechampiongr Date: Sun, 24 Mar 2024 02:20:45 +0200 Subject: [PATCH] Restrict door remotes to only being able to manipulate doors relevant to their type. --- Content.Server/Remotes/DoorRemoteSystem.cs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/Content.Server/Remotes/DoorRemoteSystem.cs b/Content.Server/Remotes/DoorRemoteSystem.cs index cb3243cb837b14..d335911901a0b5 100644 --- a/Content.Server/Remotes/DoorRemoteSystem.cs +++ b/Content.Server/Remotes/DoorRemoteSystem.cs @@ -81,10 +81,8 @@ private void OnBeforeInteract(EntityUid uid, DoorRemoteComponent component, Befo return; } - // Holding the door remote grants you access to the relevant doors IN ADDITION to what ever access you had. - // This access is enforced in _doorSystem.HasAccess when it calls _accessReaderSystem.IsAllowed if (TryComp(args.Target, out var accessComponent) - && !_doorSystem.HasAccess(args.Target.Value, args.User, doorComp, accessComponent)) + && !_doorSystem.HasAccess(args.Target.Value, args.Used, doorComp, accessComponent)) { _doorSystem.Deny(args.Target.Value, doorComp, args.User); ShowPopupToUser("door-remote-denied", args.User); @@ -94,10 +92,7 @@ private void OnBeforeInteract(EntityUid uid, DoorRemoteComponent component, Befo switch (component.Mode) { case OperatingMode.OpenClose: - // Note we provide args.User here to TryToggleDoor as the "user" - // This means that the door will look at all access items carryed by the player for access, including - // this remote, but also including anything else they are carrying such as a PDA or ID card. - if (_doorSystem.TryToggleDoor(args.Target.Value, doorComp, args.User)) + if (_doorSystem.TryToggleDoor(args.Target.Value, doorComp, args.Used)) _adminLogger.Add(LogType.Action, LogImpact.Medium, $"{ToPrettyString(args.User):player} used {ToPrettyString(args.Used)} on {ToPrettyString(args.Target.Value)}: {doorComp.State}"); break; case OperatingMode.ToggleBolts: @@ -105,7 +100,7 @@ private void OnBeforeInteract(EntityUid uid, DoorRemoteComponent component, Befo { if (!boltsComp.BoltWireCut) { - _doorSystem.SetBoltsDown((args.Target.Value, boltsComp), !boltsComp.BoltsDown, args.User); + _doorSystem.SetBoltsDown((args.Target.Value, boltsComp), !boltsComp.BoltsDown, args.Used); _adminLogger.Add(LogType.Action, LogImpact.Medium, $"{ToPrettyString(args.User):player} used {ToPrettyString(args.Used)} on {ToPrettyString(args.Target.Value)} to {(boltsComp.BoltsDown ? "" : "un")}bolt it"); } }