mirror of
https://github.com/space-syndicate/space-station-14.git
synced 2026-10-09 10:21:18 +03:00
Show fuckrules usage to admins (#42988)
* fuck rules * extreme * update comment --------- Co-authored-by: ScarKy0 <scarky0@onet.eu>
This commit is contained in:
parent
3cbe2103f6
commit
7e10c3eebf
4 changed files with 24 additions and 8 deletions
|
|
@ -22,7 +22,7 @@ public sealed partial class RulesPopup : Control
|
|||
}
|
||||
|
||||
public event Action? OnQuitPressed;
|
||||
public event Action? OnAcceptPressed;
|
||||
public event Action<bool>? OnAcceptPressed;
|
||||
|
||||
public RulesPopup()
|
||||
{
|
||||
|
|
@ -39,7 +39,7 @@ public sealed partial class RulesPopup : Control
|
|||
|
||||
private void OnAcceptButtonPressed(BaseButton.ButtonEventArgs obj)
|
||||
{
|
||||
OnAcceptPressed?.Invoke();
|
||||
OnAcceptPressed?.Invoke(false);
|
||||
}
|
||||
|
||||
protected override void FrameUpdate(FrameEventArgs args)
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public sealed class InfoUIController : UIController, IOnStateExited<GameplayStat
|
|||
"",
|
||||
(_, _, _) =>
|
||||
{
|
||||
OnAcceptPressed();
|
||||
OnAcceptPressed(true);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -79,9 +79,10 @@ public sealed class InfoUIController : UIController, IOnStateExited<GameplayStat
|
|||
_consoleHost.ExecuteCommand("quit");
|
||||
}
|
||||
|
||||
private void OnAcceptPressed()
|
||||
private void OnAcceptPressed(bool fuckRules)
|
||||
{
|
||||
_netManager.ClientSendMessage(new RulesAcceptedMessage());
|
||||
var message = new RulesAcceptedMessage() { FuckRules = fuckRules };
|
||||
_netManager.ClientSendMessage(message);
|
||||
|
||||
_rulesPopup?.Orphan();
|
||||
_rulesPopup = null;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using System.Net;
|
||||
using Content.Server.Administration.Logs;
|
||||
using Content.Server.Database;
|
||||
using Content.Shared.CCVar;
|
||||
using Content.Shared.Database;
|
||||
using Content.Shared.Info;
|
||||
using Robust.Server.Player;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Network;
|
||||
|
||||
|
|
@ -12,6 +15,8 @@ public sealed class RulesManager
|
|||
[Dependency] private readonly IServerDbManager _dbManager = default!;
|
||||
[Dependency] private readonly INetManager _netManager = default!;
|
||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||
[Dependency] private readonly IAdminLogManager _adminLog = default!;
|
||||
[Dependency] private readonly IPlayerManager _player = default!;
|
||||
|
||||
private static DateTime LastValidReadTime => DateTime.UtcNow - TimeSpan.FromDays(60);
|
||||
|
||||
|
|
@ -24,8 +29,8 @@ public sealed class RulesManager
|
|||
|
||||
private async void OnConnected(object? sender, NetChannelArgs e)
|
||||
{
|
||||
var isLocalhost = IPAddress.IsLoopback(e.Channel.RemoteEndPoint.Address) &&
|
||||
_cfg.GetCVar(CCVars.RulesExemptLocal);
|
||||
var isLocalhost = IPAddress.IsLoopback(e.Channel.RemoteEndPoint.Address) &&
|
||||
_cfg.GetCVar(CCVars.RulesExemptLocal);
|
||||
|
||||
var lastRead = await _dbManager.GetLastReadRules(e.Channel.UserId);
|
||||
var hasCooldown = lastRead > LastValidReadTime;
|
||||
|
|
@ -43,5 +48,7 @@ public sealed class RulesManager
|
|||
{
|
||||
var date = DateTime.UtcNow;
|
||||
await _dbManager.SetLastReadRules(message.MsgChannel.UserId, date);
|
||||
if (message.FuckRules && _player.TryGetSessionById(message.MsgChannel.UserId, out var session))
|
||||
_adminLog.Add(LogType.Connection, LogImpact.Extreme, $"Player {session} used the fuckrules command.");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using Lidgren.Network;
|
||||
using Lidgren.Network;
|
||||
using Robust.Shared.Network;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
|
|
@ -35,13 +35,21 @@ public sealed class SendRulesInformationMessage : NetMessage
|
|||
/// </summary>
|
||||
public sealed class RulesAcceptedMessage : NetMessage
|
||||
{
|
||||
/// <summary>
|
||||
/// Whether or not the player used the "fuckrules" command to skip the rules window countdown.
|
||||
/// If true this will create an admin log and a warning the for the admins to see.
|
||||
/// </summary>
|
||||
public bool FuckRules;
|
||||
|
||||
public override MsgGroups MsgGroup => MsgGroups.Command;
|
||||
|
||||
public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer)
|
||||
{
|
||||
FuckRules = buffer.ReadBoolean();
|
||||
}
|
||||
|
||||
public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer)
|
||||
{
|
||||
buffer.Write(FuckRules);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue