diff --git a/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs b/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs index c8867744a4..3829fc34d2 100644 --- a/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs +++ b/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs @@ -30,7 +30,7 @@ public sealed class RadioDeviceSystem : EntitySystem [Dependency] private readonly SharedAppearanceSystem _appearance = default!; // Used to prevent a shitter from using a bunch of radios to spam chat. - private HashSet<(string, EntityUid)> _recentlySent = new(); + private HashSet<(string, EntityUid, RadioChannelPrototype)> _recentlySent = new(); public override void Initialize() { @@ -114,7 +114,7 @@ public sealed class RadioDeviceSystem : EntitySystem { if (args.Powered) return; - SetMicrophoneEnabled(uid, null, false, true, component); + SetMicrophoneEnabled(uid, null, false, true, component); } public void SetMicrophoneEnabled(EntityUid uid, EntityUid? user, bool enabled, bool quiet = false, RadioMicrophoneComponent? component = null) @@ -191,8 +191,9 @@ public sealed class RadioDeviceSystem : EntitySystem if (HasComp(args.Source)) return; // no feedback loops please. - if (_recentlySent.Add((args.Message, args.Source))) - _radio.SendRadioMessage(args.Source, args.Message, _protoMan.Index(component.BroadcastChannel), uid); + var channel = _protoMan.Index(component.BroadcastChannel)!; + if (_recentlySent.Add((args.Message, args.Source, channel))) + _radio.SendRadioMessage(args.Source, args.Message, channel, uid); } private void OnAttemptListen(EntityUid uid, RadioMicrophoneComponent component, ListenAttemptEvent args) @@ -279,7 +280,7 @@ public sealed class RadioDeviceSystem : EntitySystem if (TryComp(ent, out var mic)) mic.BroadcastChannel = channel; if (TryComp(ent, out var speaker)) - speaker.Channels = new(){ channel }; + speaker.Channels = new() { channel }; Dirty(ent); } }