diff --git a/Content.Server/VoiceMask/VoiceMaskSystem.Equip.cs b/Content.Server/VoiceMask/VoiceMaskSystem.Equip.cs index 47786b5cb3..74c7b3b77e 100644 --- a/Content.Server/VoiceMask/VoiceMaskSystem.Equip.cs +++ b/Content.Server/VoiceMask/VoiceMaskSystem.Equip.cs @@ -18,7 +18,12 @@ public sealed partial class VoiceMaskSystem private void OnEquip(EntityUid uid, VoiceMaskerComponent component, GotEquippedEvent args) { - var comp = EnsureComp(args.Equipee); + var user = args.Equipee; + // have to be wearing the mask to use it, duh. + if (!_inventory.TryGetSlotEntity(user, MaskSlot, out var maskEntity) || maskEntity != uid) + return; + + var comp = EnsureComp(user); comp.VoiceName = component.LastSetName; if (!_prototypeManager.TryIndex(component.Action, out var action)) @@ -26,7 +31,7 @@ public sealed partial class VoiceMaskSystem throw new ArgumentException("Could not get voice masking prototype."); } - _actions.AddAction(args.Equipee, (InstantAction) action.Clone(), uid); + _actions.AddAction(user, (InstantAction) action.Clone(), uid); } private void OnUnequip(EntityUid uid, VoiceMaskerComponent compnent, GotUnequippedEvent args)