mirror of
https://github.com/DeltaV-Station/Delta-v.git
synced 2026-10-04 05:17:28 +00:00
Show fuckrules usage to admins (#42988)
* fuck rules * extreme * update comment --------- Co-authored-by: ScarKy0 <scarky0@onet.eu>
This commit is contained in:
committed by
Coryler
co-authored by
ScarKy0
parent
86b53d7270
commit
31d6da207a
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user