From 6db74143e0418fcee692cdcb170fa0782655d058 Mon Sep 17 00:00:00 2001 From: Farrellka-dev Date: Fri, 3 Jan 2025 14:52:40 +0300 Subject: [PATCH] new upstream fix --- .../VoiceMask/VoiceMaskBoundUserInterface.cs | 3 +-- .../VoiceMaskNameChangeWindow.xaml.cs | 13 +++------- .../Administration/Managers/BanManager.cs | 12 +++++----- .../Administration/Managers/IBanManager.cs | 2 +- Content.Server/Chat/Systems/ChatSystem.cs | 14 ----------- .../HealthChangeReagentsJsonGenerator.cs | 2 +- .../MealsRecipesJsonGenerator.cs | 2 +- .../GuideGenerator/ReagentEffectEntry.cs | 3 ++- .../HiddenDescriptionSystem.cs | 6 +++-- Content.Server/Database/ServerRoleBanDef.cs | 2 +- .../Managers/ServerPreferencesManager.cs | 1 - Content.Server/VoiceMask/VoiceMaskSystem.cs | 5 +++- .../CarnivoresDiet/AccumulateReagent.cs | 24 ++++++++++++------- .../CarnivoresDiet/PoorlyDigestible.cs | 20 ++++++++++++---- .../DiamondCrusher/DiamondCrusherSystem.cs | 5 +++- Content.Shared/DoAfter/DoAfterArgs.cs | 7 ------ .../VoiceMask/SharedVoiceMaskSystem.cs | 6 ++--- .../RCDFAP/Systems/RCDFAPSystem.cs | 2 +- 18 files changed, 63 insertions(+), 66 deletions(-) diff --git a/Content.Client/VoiceMask/VoiceMaskBoundUserInterface.cs b/Content.Client/VoiceMask/VoiceMaskBoundUserInterface.cs index 233356a5900..f10fbccf71e 100644 --- a/Content.Client/VoiceMask/VoiceMaskBoundUserInterface.cs +++ b/Content.Client/VoiceMask/VoiceMaskBoundUserInterface.cs @@ -27,7 +27,6 @@ protected override void Open() _window.OnNameChange += OnNameSelected; _window.OnVerbChange += verb => SendMessage(new VoiceMaskChangeVerbMessage(verb)); _window.OnVoiceChange += voice => SendMessage(new VoiceMaskChangeVoiceMessage(voice)); // LPP-TTS - _window.OnClose += Close; } private void OnNameSelected(string name) @@ -42,7 +41,7 @@ protected override void UpdateState(BoundUserInterfaceState state) return; } - _window.UpdateState(cast.Name, /*cast.Voice, */cast.Verb); // LPP-TTS + _window.UpdateState(cast.Name, cast.Voice, cast.Verb); // LPP-TTS } protected override void Dispose(bool disposing) diff --git a/Content.Client/VoiceMask/VoiceMaskNameChangeWindow.xaml.cs b/Content.Client/VoiceMask/VoiceMaskNameChangeWindow.xaml.cs index 1bf29c3e0b6..f0018f9e09e 100644 --- a/Content.Client/VoiceMask/VoiceMaskNameChangeWindow.xaml.cs +++ b/Content.Client/VoiceMask/VoiceMaskNameChangeWindow.xaml.cs @@ -1,11 +1,11 @@ using System.Linq; -using Content.Shared.Corvax.TTS; using Content.Client.UserInterface.Controls; using Content.Shared.Speech; using Robust.Client.AutoGenerated; using Robust.Client.UserInterface.CustomControls; using Robust.Client.UserInterface.XAML; using Robust.Shared.Prototypes; +using Content.Shared.Corvax.TTS; // LPP-TTS namespace Content.Client.VoiceMask; @@ -35,11 +35,6 @@ public VoiceMaskNameChangeWindow() OnVerbChange?.Invoke((string?) args.Button.GetItemMetadata(args.Id)); SpeechVerbSelector.SelectId(args.Id); }; - - ReloadVerbs(proto); - ReloadVoices(proto); // LPP-TTS - - AddVerbs(); } public void ReloadVerbs(IPrototypeManager proto) @@ -73,7 +68,6 @@ private void AddVerb(string name, string? verb) SpeechVerbSelector.SelectId(id); } - // LPP-TTS-Start private void ReloadVoices(IPrototypeManager proto) { @@ -97,7 +91,7 @@ private void ReloadVoices(IPrototypeManager proto) } // LPP-TTS-End - public void UpdateState(string name, /*string voice, */string? verb) // LPP-TTS + public void UpdateState(string name, string voice, string? verb) { NameSelector.Text = name; _verb = verb; @@ -110,12 +104,11 @@ public void UpdateState(string name, /*string voice, */string? verb) // LPP-TTS break; } } -/* + // LPP-TTS-Start var voiceIdx = _voices.FindIndex(v => v.ID == voice); if (voiceIdx != -1) VoiceSelector.Select(voiceIdx); // LPP-TTS-End -*/ } } diff --git a/Content.Server/Administration/Managers/BanManager.cs b/Content.Server/Administration/Managers/BanManager.cs index 158ac67a38e..0026e42be59 100644 --- a/Content.Server/Administration/Managers/BanManager.cs +++ b/Content.Server/Administration/Managers/BanManager.cs @@ -28,7 +28,6 @@ using System.Text.Json.Nodes; using System.Text.Json.Serialization; using System.Text.RegularExpressions; -using System.Threading; using JetBrains.Annotations; using Robust.Shared; @@ -206,8 +205,9 @@ public async void CreateServerBan(NetUserId? target, string? targetUsername, Net _sawmill.Info(logMessage); _chat.SendAdminAlert(logMessage); - var ban = await _db.GetServerBanAsync(null, target, null); - if (ban != null) SendWebhook(await GenerateBanPayload(ban, minutes)); + var modernHWIds = hwid != null ? ImmutableArray.Create(hwid.Hwid) : ImmutableArray>.Empty; + var ban = await _db.GetServerBanAsync(null, target, null, modernHWIds); // Pass modernHWIds here + if (ban != null) SendWebhook(await GenerateBanPayload(ban, minutes)); // Webhook KickMatchingConnectedPlayers(banDef, "newly placed ban"); } @@ -368,7 +368,7 @@ public void PostInject() } #region Webhook - public async void WebhookUpdateRoleBans(NetUserId? target, string? targetUsername, NetUserId? banningAdmin, (IPAddress, int)? addressRange, ImmutableArray? hwid, IReadOnlyCollection roles, uint? minutes, NoteSeverity severity, string reason, DateTimeOffset timeOfBan) + public async void WebhookUpdateRoleBans(NetUserId? target, string? targetUsername, NetUserId? banningAdmin, (IPAddress, int)? addressRange, ImmutableTypedHwid? hwid, IReadOnlyCollection roles, uint? minutes, NoteSeverity severity, string reason, DateTimeOffset timeOfBan) { _systems.TryGetEntitySystem(out GameTicker? ticker); int? roundId = ticker == null || ticker.RoundId == 0 ? null : ticker.RoundId; @@ -421,7 +421,7 @@ private async void SendWebhook(WebhookPayload payload) } private async Task GenerateJobBanPayload(ServerRoleBanDef banDef, IReadOnlyCollection roles, uint? minutes = null) { - var hwidString = banDef.HWId != null ? string.Concat(banDef.HWId.Value.Select(x => x.ToString("x2"))) : "null"; + var hwidString = banDef.HWId != null ? string.Concat(banDef.HWId.Hwid.Select(x => x.ToString("x2"))) : "null"; var adminName = banDef.BanningAdmin == null ? Loc.GetString("system-user") : (await _db.GetPlayerRecordByUserId(banDef.BanningAdmin.Value))?.LastSeenUserName ?? Loc.GetString("system-user"); @@ -518,7 +518,7 @@ private async Task GenerateJobBanPayload(ServerRoleBanDef banDef private async Task GenerateBanPayload(ServerBanDef banDef, uint? minutes = null) { var hwidString = banDef.HWId != null - ? string.Concat(banDef.HWId.Value.Select(x => x.ToString("x2"))) + ? string.Concat(banDef.HWId.Hwid.Select(x => x.ToString("x2"))) : "null"; var adminName = banDef.BanningAdmin == null ? Loc.GetString("system-user") diff --git a/Content.Server/Administration/Managers/IBanManager.cs b/Content.Server/Administration/Managers/IBanManager.cs index 918b3585e64..965a1757197 100644 --- a/Content.Server/Administration/Managers/IBanManager.cs +++ b/Content.Server/Administration/Managers/IBanManager.cs @@ -39,7 +39,7 @@ public interface IBanManager /// Time when the ban was applied, used for grouping role bans public void CreateRoleBan(NetUserId? target, string? targetUsername, NetUserId? banningAdmin, (IPAddress, int)? addressRange, ImmutableTypedHwid? hwid, string role, uint? minutes, NoteSeverity severity, string reason, DateTimeOffset timeOfBan); - public void WebhookUpdateRoleBans(NetUserId? target, string? targetUsername, NetUserId? banningAdmin, (IPAddress, int)? addressRange, ImmutableArray? hwid, IReadOnlyCollection roles, uint? minutes, NoteSeverity severity, string reason, DateTimeOffset timeOfBan); + public void WebhookUpdateRoleBans(NetUserId? target, string? targetUsername, NetUserId? banningAdmin, (IPAddress, int)? addressRange, ImmutableTypedHwid? hwid, IReadOnlyCollection roles, uint? minutes, NoteSeverity severity, string reason, DateTimeOffset timeOfBan); /// /// Pardons a role ban for the specified target, username or GUID diff --git a/Content.Server/Chat/Systems/ChatSystem.cs b/Content.Server/Chat/Systems/ChatSystem.cs index fa5cc5986ba..2464f0aa32e 100644 --- a/Content.Server/Chat/Systems/ChatSystem.cs +++ b/Content.Server/Chat/Systems/ChatSystem.cs @@ -1055,20 +1055,6 @@ public record ExpandICChatRecipientstEvent(EntityUid Source, float VoiceRange, D { } -public sealed class TransformSpeakerNameEvent : EntityEventArgs -{ - public EntityUid Sender; - public string Name; - public string? SpeechVerb; - - public TransformSpeakerNameEvent(EntityUid sender, string name, string? speechVerb = null) - { - Sender = sender; - Name = name; - SpeechVerb = speechVerb; - } -} - /// /// Raised broadcast in order to transform speech.transmit /// diff --git a/Content.Server/Corvax/GuideGenerator/HealthChangeReagentsJsonGenerator.cs b/Content.Server/Corvax/GuideGenerator/HealthChangeReagentsJsonGenerator.cs index 2418d54a338..cb72fd3411b 100644 --- a/Content.Server/Corvax/GuideGenerator/HealthChangeReagentsJsonGenerator.cs +++ b/Content.Server/Corvax/GuideGenerator/HealthChangeReagentsJsonGenerator.cs @@ -3,7 +3,7 @@ using System.IO; using System.Linq; using System.Text.Json; -using Content.Server.Chemistry.ReagentEffects; +using Content.Server.EntityEffects.Effects; namespace Content.Server.Corvax.GuideGenerator; public sealed class HealthChangeReagentsJsonGenerator diff --git a/Content.Server/Corvax/GuideGenerator/MealsRecipesJsonGenerator.cs b/Content.Server/Corvax/GuideGenerator/MealsRecipesJsonGenerator.cs index fde7a38fe2d..1aad1514d88 100644 --- a/Content.Server/Corvax/GuideGenerator/MealsRecipesJsonGenerator.cs +++ b/Content.Server/Corvax/GuideGenerator/MealsRecipesJsonGenerator.cs @@ -7,7 +7,7 @@ using Robust.Shared.Prototypes; using Content.Shared.Construction.Prototypes; using Content.Server.Construction.Components; -using Content.Server.Chemistry.ReactionEffects; +using Content.Server.EntityEffects.Effects; namespace Content.Server.GuideGenerator; diff --git a/Content.Server/Corvax/GuideGenerator/ReagentEffectEntry.cs b/Content.Server/Corvax/GuideGenerator/ReagentEffectEntry.cs index 680f307ee19..73dec2a71d8 100644 --- a/Content.Server/Corvax/GuideGenerator/ReagentEffectEntry.cs +++ b/Content.Server/Corvax/GuideGenerator/ReagentEffectEntry.cs @@ -1,5 +1,6 @@ using Content.Shared.Chemistry.Reagent; using Robust.Shared.Prototypes; +using Content.Shared.EntityEffects; using System.Text.Json.Serialization; using Content.Server.Chemistry.ReactionEffects; @@ -12,7 +13,7 @@ public sealed class ReagentEffectEntry [JsonPropertyName("description")] public string Description { get; } - public ReagentEffectEntry(ReagentEffect proto) + public ReagentEffectEntry(EntityEffect proto) { var prototype = IoCManager.Resolve(); var entSys = IoCManager.Resolve(); diff --git a/Content.Server/Corvax/HiddenDescription/HiddenDescriptionSystem.cs b/Content.Server/Corvax/HiddenDescription/HiddenDescriptionSystem.cs index ba74bb3e2ca..0e4d694eb8f 100644 --- a/Content.Server/Corvax/HiddenDescription/HiddenDescriptionSystem.cs +++ b/Content.Server/Corvax/HiddenDescription/HiddenDescriptionSystem.cs @@ -1,12 +1,14 @@ using Content.Server.Mind; using Content.Shared.Examine; using Content.Shared.Roles.Jobs; +using Content.Shared.Whitelist; namespace Content.Server.Corvax.HiddenDescription; public sealed partial class HiddenDescriptionSystem : EntitySystem { [Dependency] private readonly MindSystem _mind = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; public override void Initialize() { @@ -23,8 +25,8 @@ private void OnExamine(Entity hiddenDesc, ref Examin foreach (var item in hiddenDesc.Comp.Entries) { var isJobAllow = job?.Prototype != null && item.JobRequired.Contains(job.Prototype.Value); - var isMindWhitelistPassed = item.WhitelistMind.IsValid(mindId); - var isBodyWhitelistPassed = item.WhitelistMind.IsValid(args.Examiner); + var isMindWhitelistPassed = _whitelistSystem.IsValid(item.WhitelistMind, mindId); // Use injected _whitelistSystem + var isBodyWhitelistPassed = _whitelistSystem.IsValid(item.WhitelistMind, args.Examiner); // Use injected _whitelistSystem var passed = item.NeedAllCheck ? isMindWhitelistPassed && isBodyWhitelistPassed && isJobAllow : isMindWhitelistPassed || isBodyWhitelistPassed || isJobAllow; diff --git a/Content.Server/Database/ServerRoleBanDef.cs b/Content.Server/Database/ServerRoleBanDef.cs index dda3a822378..d834615ccfe 100644 --- a/Content.Server/Database/ServerRoleBanDef.cs +++ b/Content.Server/Database/ServerRoleBanDef.cs @@ -36,7 +36,7 @@ public ServerRoleBanDef( ServerRoleUnbanDef? unban, string role) { - if (userId == null && address == null && hwId == null) + if (userId == null && address == null && hwId == null) { throw new ArgumentException("Must have at least one of banned user, banned address or hardware ID"); } diff --git a/Content.Server/Preferences/Managers/ServerPreferencesManager.cs b/Content.Server/Preferences/Managers/ServerPreferencesManager.cs index f8ede625773..f574adc12d3 100644 --- a/Content.Server/Preferences/Managers/ServerPreferencesManager.cs +++ b/Content.Server/Preferences/Managers/ServerPreferencesManager.cs @@ -34,7 +34,6 @@ public sealed class ServerPreferencesManager : IServerPreferencesManager, IPostI [Dependency] private readonly ILogManager _log = default!; [Dependency] private readonly UserDbDataManager _userDb = default!; [Dependency] private readonly IPrototypeManager _protos = default!; - [Dependency] private readonly IPrototypeManager _protos = default!; #if LPP_Sponsors // _LostParadise-Sponsors [Dependency] private readonly SponsorsManager _sponsors = default!; #endif diff --git a/Content.Server/VoiceMask/VoiceMaskSystem.cs b/Content.Server/VoiceMask/VoiceMaskSystem.cs index ecf52b147d8..6689a524fe8 100644 --- a/Content.Server/VoiceMask/VoiceMaskSystem.cs +++ b/Content.Server/VoiceMask/VoiceMaskSystem.cs @@ -90,7 +90,10 @@ private void OpenUI(VoiceMaskSetNameEvent ev) private void UpdateUI(Entity entity) { if (_uiSystem.HasUi(entity, VoiceMaskUIKey.Key)) - _uiSystem.SetUiState(entity.Owner, VoiceMaskUIKey.Key, new VoiceMaskBuiState(GetCurrentVoiceName(entity), entity.Comp.VoiceMaskSpeechVerb)); + { + var voice = entity.Comp.VoiceMaskName ?? "Evgen"; // Replace "default-voice" with your default value + _uiSystem.SetUiState(entity.Owner, VoiceMaskUIKey.Key, new VoiceMaskBuiState(GetCurrentVoiceName(entity), voice, entity.Comp.VoiceMaskSpeechVerb)); + } } #endregion diff --git a/Content.Server/_LostParadise/CarnivoresDiet/AccumulateReagent.cs b/Content.Server/_LostParadise/CarnivoresDiet/AccumulateReagent.cs index 95bd6c65bc4..2445df98d92 100644 --- a/Content.Server/_LostParadise/CarnivoresDiet/AccumulateReagent.cs +++ b/Content.Server/_LostParadise/CarnivoresDiet/AccumulateReagent.cs @@ -1,6 +1,8 @@ using Content.Server.Body.Components; using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Reagent; +using Content.Shared.EntityEffects; +using Content.Server.EntityEffects.Effects; using Content.Shared.FixedPoint; using JetBrains.Annotations; using Robust.Shared.Prototypes; @@ -16,7 +18,7 @@ namespace Content.Server.Chemistry.ReagentEffects // Решение сомнительное, но оно гораздо чище, чем лезть в код метаболирования и добавлять туда группу-исключение с проверкой на наличие реагента в кровеносной системе. [UsedImplicitly] - public sealed partial class AccumulateReagent : ReagentEffect + public sealed partial class AccumulateReagent : EntityEffect { /// /// The reagent ID to accumulate. Only one of this and should be active. @@ -60,10 +62,15 @@ public bool ContainsPositiveAdjustEffect(IPrototypeManager prototypeMan, Solutio return false; } - public override void Effect(ReagentEffectArgs args) + public override void Effect(EntityEffectBaseArgs args) { - // Source is where Theobromine is currently coming from - if (args.Source == null) + if (args is not EntityEffectReagentArgs reagentArgs) + { + // Log or handle unexpected argument type + return; + } + + if (reagentArgs.Source == null) return; if (Reagent == null) @@ -72,12 +79,12 @@ public override void Effect(ReagentEffectArgs args) var prototypeMan = IoCManager.Resolve(); prototypeMan.TryIndex(Reagent, out ReagentPrototype? reagentProto); - args.EntityManager.TryGetComponent(args.OrganEntity, out MetabolizerComponent? metabolizer); + args.EntityManager.TryGetComponent(reagentArgs.OrganEntity, out MetabolizerComponent? metabolizer); if (metabolizer?.MetabolismGroups is not List groups) return; - if (!ContainsPositiveAdjustEffect(prototypeMan, args.Source, groups)) + if (!ContainsPositiveAdjustEffect(prototypeMan, reagentArgs.Source, groups)) return; if (reagentProto?.Metabolisms == null) @@ -86,7 +93,6 @@ public override void Effect(ReagentEffectArgs args) FixedPoint2 totalCompensationRate = 0; foreach (var group in groups) { - // Normally, the rate should only be processed once since a reagent usually only has one group. if (!reagentProto.Metabolisms.TryGetValue(group.Id, out var reagentEffectsEntry)) continue; @@ -94,10 +100,10 @@ public override void Effect(ReagentEffectArgs args) totalCompensationRate += groupRate; } - // amount *= args.Scale; - args.Source.AddReagent(Reagent, totalCompensationRate); + reagentArgs.Source.AddReagent(Reagent, totalCompensationRate); } + protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) { if (Reagent != null && prototype.TryIndex(Reagent, out ReagentPrototype? reagentProto)) diff --git a/Content.Server/_LostParadise/CarnivoresDiet/PoorlyDigestible.cs b/Content.Server/_LostParadise/CarnivoresDiet/PoorlyDigestible.cs index e542aa8539c..d137ae9d8df 100644 --- a/Content.Server/_LostParadise/CarnivoresDiet/PoorlyDigestible.cs +++ b/Content.Server/_LostParadise/CarnivoresDiet/PoorlyDigestible.cs @@ -5,6 +5,7 @@ using Content.Shared.Tag; using Content.Shared.Whitelist; using Robust.Shared.GameObjects; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; using System; using System.Collections.Generic; @@ -49,15 +50,26 @@ public sealed partial class PoorlyDigestibleFood public bool AffectsFood(EntityUid foodEnt, IEntityManager entityManager) { - if (WhitelistTags is null) + if (WhitelistTags is null || WhitelistTags.Count == 0) return false; var tagSys = entityManager.System(); - if (BlacklistTags is not null && tagSys.HasAnyTag(foodEnt, BlacklistTags)) - return false; + var whitelistProtoIds = WhitelistTags + .Select(tag => new ProtoId(tag)) + .ToList(); + + if (BlacklistTags is not null && BlacklistTags.Count > 0) + { + var blacklistProtoIds = BlacklistTags + .Select(tag => new ProtoId(tag)) + .ToList(); + + if (tagSys.HasAnyTag(foodEnt, blacklistProtoIds)) + return false; + } - return tagSys.HasAnyTag(foodEnt, WhitelistTags); + return tagSys.HasAnyTag(foodEnt, whitelistProtoIds); } public Solution ModifySolution(Solution solution) diff --git a/Content.Server/_LostParadise/DiamondCrusher/DiamondCrusherSystem.cs b/Content.Server/_LostParadise/DiamondCrusher/DiamondCrusherSystem.cs index fe0baf51f9f..b92522fc8f9 100644 --- a/Content.Server/_LostParadise/DiamondCrusher/DiamondCrusherSystem.cs +++ b/Content.Server/_LostParadise/DiamondCrusher/DiamondCrusherSystem.cs @@ -8,6 +8,8 @@ using Content.Shared.Damage; using Content.Shared.Verbs; using Content.Shared._LostParadise.DiamondCrusher; +using Content.Shared.Power; +using Content.Shared.Whitelist; using Robust.Shared.Collections; using Robust.Shared.Random; using Robust.Shared.Timing; @@ -23,6 +25,7 @@ public sealed class DiamondCrusherSystem : SharedDiamondCrusherSystem [Dependency] private readonly DamageableSystem _damageable = default!; [Dependency] private readonly StackSystem _stack = default!; [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; /// <унаследование/> public override void Initialize() @@ -90,7 +93,7 @@ public void FinishCrushing(Entity /// Threshold for user damage. This damage has to be dealt in a single event, not over time. /// @@ -258,7 +252,6 @@ public DoAfterArgs(DoAfterArgs other) BreakOnWeightlessMove = other.BreakOnWeightlessMove; MovementThreshold = other.MovementThreshold; DistanceThreshold = other.DistanceThreshold; - BreakOnMove = other.BreakOnMove; // PE4HENIKA LOST PARADISE BreakOnDamage = other.BreakOnDamage; DamageThreshold = other.DamageThreshold; RequireCanInteract = other.RequireCanInteract; diff --git a/Content.Shared/VoiceMask/SharedVoiceMaskSystem.cs b/Content.Shared/VoiceMask/SharedVoiceMaskSystem.cs index 0c953314def..f8d70c308d9 100644 --- a/Content.Shared/VoiceMask/SharedVoiceMaskSystem.cs +++ b/Content.Shared/VoiceMask/SharedVoiceMaskSystem.cs @@ -13,13 +13,13 @@ public sealed class VoiceMaskBuiState : BoundUserInterfaceState { public readonly string Name; public readonly string? Verb; - //public readonly string Voice; // LPP-TTS + public readonly string Voice; // LPP-TTS - public VoiceMaskBuiState(string name, /*string voice, */string? verb) + public VoiceMaskBuiState(string name, string voice, string? verb) { Name = name; Verb = verb; - //Voice = voice; // LPP-TTS + Voice = voice; // LPP-TTS } } diff --git a/Content.Shared/_LostParadise/RCDFAP/Systems/RCDFAPSystem.cs b/Content.Shared/_LostParadise/RCDFAP/Systems/RCDFAPSystem.cs index 8a6ffc20bbd..973f7623819 100644 --- a/Content.Shared/_LostParadise/RCDFAP/Systems/RCDFAPSystem.cs +++ b/Content.Shared/_LostParadise/RCDFAP/Systems/RCDFAPSystem.cs @@ -181,7 +181,7 @@ private void OnAfterInteract(EntityUid uid, RCDFAPComponent component, AfterInte { BreakOnDamage = true, BreakOnHandChange = true, - BreakOnUserMove = true, + BreakOnMove = true, AttemptFrequency = AttemptFrequency.EveryTick, CancelDuplicate = false, BlockDuplicate = false