using Content.Client.UserInterface.Controls;
using System.Threading;
+using Content.Shared.CCVar;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.XAML;
+using Robust.Shared.Configuration;
using Robust.Shared.Utility;
using Timer = Robust.Shared.Timing.Timer;
private CommunicationsConsoleBoundUserInterface Owner { get; set; }
private readonly CancellationTokenSource _timerCancelTokenSource = new();
+ [Dependency] private readonly IConfigurationManager _cfg = default!;
+
public CommunicationsConsoleMenu(CommunicationsConsoleBoundUserInterface owner)
{
IoCManager.InjectDependencies(this);
var loc = IoCManager.Resolve<ILocalizationManager>();
MessageInput.Placeholder = new Rope.Leaf(loc.GetString("comms-console-menu-announcement-placeholder"));
+ var maxAnnounceLength = _cfg.GetCVar(CCVars.ChatMaxAnnouncementLength);
+ MessageInput.OnTextChanged += (args) =>
+ {
+ if (args.Control.TextLength > maxAnnounceLength)
+ {
+ AnnounceButton.Disabled = true;
+ AnnounceButton.ToolTip = Loc.GetString("comms-console-message-too-long");
+ }
+ else
+ {
+ AnnounceButton.Disabled = !owner.CanAnnounce;
+ AnnounceButton.ToolTip = null;
+
+ }
+ };
+
AnnounceButton.OnPressed += (_) => Owner.AnnounceButtonPressed(Rope.Collapse(MessageInput.TextRope));
AnnounceButton.Disabled = !owner.CanAnnounce;
-# User interface
+# User interface
comms-console-menu-title = Communications Console
comms-console-menu-announcement-placeholder = Announcement text...
comms-console-menu-announcement-button = Announce
# Popup
comms-console-permission-denied = Permission denied
comms-console-shuttle-unavailable = Shuttle is currently unavailable
+comms-console-message-too-long = Message is too long
# Placeholder values
comms-console-announcement-sent-by = Sent by