Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 11 additions & 6 deletions Content.Client/Administration/UI/Tabs/ServerTab.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,15 @@ SPDX-License-Identifier: MIT
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
Margin="4"
MinSize="50 50">
<GridContainer
Columns="4" >
<controls:ConfirmButton Name="ServerShutdownButton" Text="{Loc server-shutdown}" />
<cc:CommandButton Name="SetOocButton" Command="setooc" Text="{Loc server-ooc-toggle}" ToggleMode="True" />
<cc:CommandButton Name="SetLoocButton" Command="setlooc" Text="{Loc server-looc-toggle}" ToggleMode="True" />
</GridContainer>
<BoxContainer Orientation="Vertical">
<GridContainer
Columns="4" >
<controls:ConfirmButton Name="ServerShutdownButton" Text="{Loc server-shutdown}" />
<cc:CommandButton Name="SetOocButton" Command="setooc" Text="{Loc server-ooc-toggle}" ToggleMode="True" />
<cc:CommandButton Name="SetLoocButton" Command="setlooc" Text="{Loc server-looc-toggle}" ToggleMode="True" />
</GridContainer>
<GridContainer Columns="3">
<cc:CommandButton Command="setdchat" Text="{Loc rmc-ui-toggle-dchat}" />
</GridContainer>
</BoxContainer>
</Control>
16 changes: 16 additions & 0 deletions Content.Server/Chat/Systems/ChatSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@
using Robust.Shared.Random;
using Robust.Shared.Replays;
using Robust.Shared.Utility;
using Content.Shared._RMC14.CCVar;

namespace Content.Server.Chat.Systems;

Expand Down Expand Up @@ -206,6 +207,7 @@ public sealed partial class ChatSystem : SharedChatSystem
private bool _loocEnabled = true;
private bool _deadLoocEnabled;
private bool _critLoocEnabled;
private bool _DeadchatEnabled; // RMC14
private readonly bool _adminLoocEnabled = true;

public override void Initialize()
Expand All @@ -215,6 +217,7 @@ public override void Initialize()
Subs.CVar(_configurationManager, CCVars.LoocEnabled, OnLoocEnabledChanged, true);
Subs.CVar(_configurationManager, CCVars.DeadLoocEnabled, OnDeadLoocEnabledChanged, true);
Subs.CVar(_configurationManager, CCVars.CritLoocEnabled, OnCritLoocEnabledChanged, true);
Subs.CVar(_configurationManager, RMCCVars.RMCDeadChatEnabled, OnDeadChatEnabledChanged, true); // RMC14

SubscribeLocalEvent<GameRunLevelChangedEvent>(OnGameChange);
}
Expand Down Expand Up @@ -247,6 +250,16 @@ private void OnCritLoocEnabledChanged(bool val)
Loc.GetString(val ? "chat-manager-crit-looc-chat-enabled-message" : "chat-manager-crit-looc-chat-disabled-message"));
}

private void OnDeadChatEnabledChanged(bool val)
{
if (_DeadchatEnabled == val)
return;

_DeadchatEnabled = val;
_chatManager.DispatchServerAnnouncement(
Loc.GetString(val ? "set-dchat-command-dchat-enabled" : "set-dchat-command-dchat-disabled"));
}

private void OnGameChange(GameRunLevelChangedEvent ev)
{
switch (ev.New)
Expand Down Expand Up @@ -985,6 +998,9 @@ private void SendDeadChat(EntityUid source, ICommonSession player, string messag

var speech = GetSpeechVerb(source, message); // Goobstation - Dead chat verbs

if (!_adminManager.IsAdmin(player) && !_DeadchatEnabled) // RMC14 - Check the status of the "rmc.dead_chat_enabled" CCvar before continuing.
return;

if (_adminManager.IsAdmin(player))
{
wrappedMessage = Loc.GetString("chat-manager-send-admin-dead-chat-wrap-message",
Expand Down
42 changes: 42 additions & 0 deletions Content.Server/_RMC14/Chat/Commands/SetDChatCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
using Content.Server.Administration;
using Content.Shared.Administration;
using Content.Shared._RMC14.CCVar;
using Robust.Shared.Configuration;
using Robust.Shared.Console;

namespace Content.Server._RMC14.Chat.Commands;

[AdminCommand(AdminFlags.Admin)]
public sealed class SetDchatCommand : IConsoleCommand
{
public string Command => "setdchat";
public string Description => Loc.GetString("set-dchat-command-description");
public string Help => Loc.GetString("set-dchat-command-help");
public void Execute(IConsoleShell shell, string argStr, string[] args)
{
var cfg = IoCManager.Resolve<IConfigurationManager>();

if (args.Length > 1)
{
shell.WriteError(Loc.GetString("set-dchat-command-too-many-arguments-error"));
return;
}

var dchat = cfg.GetCVar(RMCCVars.RMCDeadChatEnabled);

if (args.Length == 0)
{
dchat = !dchat;
}

if (args.Length == 1 && !bool.TryParse(args[0], out dchat))
{
shell.WriteError(Loc.GetString("set-dchat-command-invalid-argument-error"));
return;
}

cfg.SetCVar(RMCCVars.RMCDeadChatEnabled, dchat);

shell.WriteLine(Loc.GetString(dchat ? "set-dchat-command-dchat-enabled" : "set-dchat-command-dchat-disabled"));
}
}
11 changes: 11 additions & 0 deletions Content.Shared/_RMC14/CCVar/RMCCVars.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using Robust.Shared;
using Robust.Shared.Configuration;

namespace Content.Shared._RMC14.CCVar;

[CVarDefs]
public sealed partial class RMCCVars : CVars
{
public static readonly CVarDef<bool> RMCDeadChatEnabled =
CVarDef.Create("rmc.dead_chat_enabled", true, CVar.SERVER | CVar.NOTIFY | CVar.REPLICATED);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
set-dchat-command-description = Allows you to enable or disable Dead Chat.
set-dchat-command-help = Usage: setdchat OR setdchat [value]
set-dchat-command-too-many-arguments-error = Too many arguments.
set-dchat-command-invalid-argument-error = Invalid argument.
set-dchat-command-dchat-enabled = Dead chat has been enabled.
set-dchat-command-dchat-disabled = Dead chat has been disabled.
rmc-ui-toggle-dchat = Toggle Dead Chat
Loading