nyaUpdate (#754)

This commit is contained in:
haiwwkes
2024-10-28 17:57:05 +05:00
committed by GitHub
parent dd11e6f774
commit 71ba4c0ccc
3 changed files with 46 additions and 9 deletions

View File

@@ -25,8 +25,7 @@ public sealed class NyaCheckClientSystem : EntitySystem
"Content.Shared.Database",
"Robust.Client",
"Robust.Shared",
"Robust.Server",
"Content.Anticheat",
"Robust.Server"
];
public override void Initialize()
@@ -66,7 +65,7 @@ public sealed class NyaCheckClientSystem : EntitySystem
private bool FoundExtraTypesIReflection([NotNullWhen(true)] out string? offender)
{
offender = null;
string[] typenames = ["SubverterPatch", "MarseyPatch", "MarseyEntry", "Sedition"];
string[] typenames = ["SubverterPatch", "MarseyPatch", "MarseyEntry", "Sedition", "Ware"];
var types = _reflection.FindAllTypes();
@@ -168,9 +167,11 @@ public sealed class NyaCheckClientSystem : EntitySystem
string[] keywords =
[
"aimbot",
"visuals",
"esp",
"noslip",
"exploit",
"fun"
];
offend = null;

View File

@@ -40,7 +40,7 @@ public sealed class ExpectedReplySystem : EntitySystem
{
if (_pendingReplies.ContainsKey(e.Session))
{
var warningMsg = $"Игрок отключился во время ожидания ответа!";
var warningMsg = $"Игрок отключился во время ожидания ответа! Nya должен был получить: {_pendingReplies[e.Session].Request.ExpectedReplyType}.";
SendSuspiciousActivityAlert(e.Session, warningMsg, 80);
_pendingReplies.Remove(e.Session);
}
@@ -114,7 +114,7 @@ public sealed class ExpectedReplySystem : EntitySystem
private void HandleTimeout(ICommonSession player)
{
var warningMsg = $"Не получен ответ в течение {ReplyTimeoutSeconds} секунд";
var warningMsg = $"Не получен ответ в течение {ReplyTimeoutSeconds} секунд. Будьте бдительны с этим игроком! Nya советует использовать nyagrab!";
SendSuspiciousActivityAlert(player, warningMsg, 65);
}

View File

@@ -16,7 +16,6 @@ public sealed class CheatCheckSystem : EntitySystem
[Dependency] private readonly IChatManager _chatManager = default!;
[Dependency] private readonly IConfigurationManager _configuration = default!;
private readonly HttpClient _httpClient = new();
private string _webhookUrl = "";
@@ -76,7 +75,44 @@ public sealed class CheatCheckSystem : EntitySystem
detections.Add(("UI вмешательство", $"Неразрешенное окно: {ev.WindowOffender}", 65));
if (detections.Count == 0)
{
var cleanMsg = $"✅ **Античит завершил проверку**\n\n" +
$"**Игрок:** {args.SenderSession.Name}\n" +
$"**IP:** {args.SenderSession.Channel.RemoteEndPoint}\n" +
$"**Результат:** Нарушений не выявлено";
var cleanEmbed = new
{
title = "✅ Проверка завершена",
description = cleanMsg,
color = 0x00FF00, // Зеленый
timestamp = DateTime.UtcNow.ToString("o")
};
var cleanPayload = new
{
embeds = new[] { cleanEmbed }
};
var json = JsonSerializer.Serialize(cleanPayload);
var content = new StringContent(json, Encoding.UTF8, "application/json");
try
{
await _httpClient.PostAsync(_webhookUrl, content);
}
catch (Exception e)
{
Log.Error($"Failed to send Discord webhook: {e}");
}
var cleanInGameMsg = $"[Anticheat] Проверка завершена\n" +
$"Игрок: {args.SenderSession.Name}\n" +
$"Результат: Нарушений не выявлено";
_chatManager.SendAdminAnnouncement(cleanInGameMsg);
return;
}
var maxSeverity = detections.Max(d => d.Severity);
var avgSeverity = detections.Average(d => d.Severity);
@@ -113,12 +149,12 @@ public sealed class CheatCheckSystem : EntitySystem
embeds = new[] { embed }
};
var json = JsonSerializer.Serialize(payload);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var jsonA = JsonSerializer.Serialize(payload);
var contentA = new StringContent(jsonA, Encoding.UTF8, "application/json");
try
{
await _httpClient.PostAsync(_webhookUrl, content);
await _httpClient.PostAsync(_webhookUrl, contentA);
}
catch (Exception e)
{