diff --git a/Content.Server/ADT/Administration/Commands/SendUpdateServerCommand.cs b/Content.Server/ADT/Administration/Commands/SendUpdateServerCommand.cs
deleted file mode 100644
index 74c294afda1..00000000000
--- a/Content.Server/ADT/Administration/Commands/SendUpdateServerCommand.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using Content.Shared.Administration;
-using Robust.Shared.Console;
-using Content.Server.Administration;
-using Content.Server.ServerUpdates;
-
-namespace Content.Server.ADT.Administration.Commands;
-
-
-[AdminCommand(AdminFlags.Permissions)]
-public sealed class SendUpdateServerCommand : LocalizedCommands
-{
- [Dependency] private readonly ServerUpdateManager _serverManager = default!;
- public override string Command => "send_updateserver_devtest";
-
- public override async void Execute(IConsoleShell shell, string argStr, string[] args)
- {
- var player = shell.Player;
- if (player == null)
- {
- shell.WriteError(LocalizationManager.GetString("shell-target-player-does-not-exist"));
- return;
- }
-
- _serverManager.SendDiscordWebHookUpdateMessage();
- }
-}
diff --git a/Content.Server/ServerUpdates/ServerUpdateManager.cs b/Content.Server/ServerUpdates/ServerUpdateManager.cs
index a333a7fcccd..bf18428e25b 100644
--- a/Content.Server/ServerUpdates/ServerUpdateManager.cs
+++ b/Content.Server/ServerUpdates/ServerUpdateManager.cs
@@ -8,9 +8,6 @@
using Robust.Shared.Enums;
using Robust.Shared.Player;
using Robust.Shared.Timing;
-using Content.Shared.ADT.CCVar;
-using Content.Server.Discord;
-using Content.Server.GameTicking;
namespace Content.Server.ServerUpdates;
@@ -30,8 +27,6 @@ public sealed class ServerUpdateManager : IPostInjectInit
[Dependency] private readonly IBaseServer _server = default!;
[Dependency] private readonly IConfigurationManager _cfg = default!;
[Dependency] private readonly ILogManager _logManager = default!;
- [Dependency] private readonly DiscordWebhook _discord = default!;
- [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!;
private ISawmill _sawmill = default!;
@@ -107,7 +102,6 @@ private void WatchdogOnUpdateReceived()
_chatManager.DispatchServerAnnouncement(Loc.GetString("server-updates-received"));
_updateOnRoundEnd = true;
ServerEmptyUpdateRestartCheck("update notification");
- SendDiscordWebHookUpdateMessage(); // ADT-Tweak
}
///
@@ -154,87 +148,4 @@ void IPostInjectInit.PostInject()
{
_sawmill = _logManager.GetSawmill("restart");
}
- // ADT-Tweak-start: Отправка сообщения в Discord при обновлении сервера
- public async void SendDiscordWebHookUpdateMessage()
- {
- if (!string.IsNullOrWhiteSpace(_cfg.GetCVar(ADTDiscordWebhookCCVars.DiscordServerUpdateWebhook)))
- {
- var webhookUrl = _cfg.GetCVar(ADTDiscordWebhookCCVars.DiscordServerUpdateWebhook);
- if (webhookUrl == null)
- return;
-
- if (await _discord.GetWebhook(webhookUrl) is not { } webhookData)
- return;
-
- // Получение данных сервера
- var serverName = _cfg.GetCVar("game.hostname");
- var serverDesc = _cfg.GetCVar("game.desc");
- var engineVersion = _cfg.GetCVar("build.engine_version");
- var buildVersion = _cfg.GetCVar("build.version");
-
- // Сообщение о перезапуске сервера
- var descContent = "Обновление получено, сервер автоматически перезапустится для обновления в конце этого раунда.";
-
- // Определение состояния раунда
- var gameTicker = _entitySystemManager.GetEntitySystem();
- var roundDescription = gameTicker.RunLevel switch
- {
- GameRunLevel.PreRoundLobby => gameTicker.RoundId == 0
- ? "pre-round lobby after server restart"
- : $"pre-round lobby for round {gameTicker.RoundId + 1}",
- GameRunLevel.InRound => $"round {gameTicker.RoundId}",
- GameRunLevel.PostRound => $"post-round {gameTicker.RoundId}",
- _ => throw new ArgumentOutOfRangeException(nameof(gameTicker.RunLevel), $"{gameTicker.RunLevel} was not matched."),
- };
-
- // Формирование структуры embed
- var embed = new WebhookEmbed
- {
- Title = "Обновление пришло",
- Description = descContent,
- Color = 0x0e9c00,
- Footer = new WebhookEmbedFooter
- {
- Text = $"{serverName} ({roundDescription})"
- },
- Fields = new List()
- };
-
- // Добавление полей только если они не пустые
- AddIfNotEmpty(embed.Fields, "Название сервера", serverName);
- AddIfNotEmpty(embed.Fields, "Описание сервера", serverDesc);
- AddIfNotEmpty(embed.Fields, "RobustToolbox version", engineVersion);
- AddIfNotEmpty(embed.Fields, "Build version", buildVersion);
-
- // Формирование полезной нагрузки
- var payload = new WebhookPayload
- {
- Embeds = new List { embed },
- Username = Loc.GetString("username-webhook-update")
- };
-
- // Проверка, нужно ли добавлять пинг
- var shouldPingOnUpdate = _cfg.GetCVar(ADTDiscordWebhookCCVars.ShouldPingOnUpdate);
- if (shouldPingOnUpdate)
- {
- // Добавляем пинг в поле Content. Это будет сообщение, которое будет сверху
- payload.Content = "<@&1275740664264659017>"; // ID роли "Обновления"
- }
-
- // Отправка сообщения в Discord
- var identifier = webhookData.ToIdentifier();
- payload.AllowedMentions.AllowRoleMentions();
- await _discord.CreateMessage(identifier, payload);
- }
- }
-
- // Вспомогательный метод для добавления полей в embed
- private void AddIfNotEmpty(List fields, string fieldName, string? fieldValue)
- {
- if (!string.IsNullOrWhiteSpace(fieldValue))
- {
- fields.Add(new WebhookEmbedField { Name = fieldName, Value = fieldValue, Inline = true });
- }
- }
- // ADT-Tweak-end
}
diff --git a/Content.Shared/ADT/CCVar/CCVars.WebhookDiscord.cs b/Content.Shared/ADT/CCVar/CCVars.WebhookDiscord.cs
index e27a7c4a2ba..3924fee9abb 100644
--- a/Content.Shared/ADT/CCVar/CCVars.WebhookDiscord.cs
+++ b/Content.Shared/ADT/CCVar/CCVars.WebhookDiscord.cs
@@ -10,19 +10,5 @@ public sealed class ADTDiscordWebhookCCVars : CVars
/// URL of the Discord webhook which will relay adminwho info to the channel.
///
public static readonly CVarDef DiscordAdminwhoWebhook =
- CVarDef.Create("discord.adminwho_webhook", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL | CVar.ARCHIVE);
-
- ///
- /// This constant specifies a webhook that will send a message to Discord when a server updates.
- ///
- public static readonly CVarDef DiscordServerUpdateWebhook =
- CVarDef.Create("discord.server_update_webhook", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL | CVar.ARCHIVE);
-
- ///
- /// This constant specifies whether a ping should be sent to a specific Discord role
- /// when the server update notification is triggered. If set to true, a ping will be sent to the role.
- /// If set to false, no ping will be sent.
- ///
- public static readonly CVarDef ShouldPingOnUpdate =
- CVarDef.Create("discord.server_update_webhook_ping", true, CVar.SERVERONLY | CVar.ARCHIVE);
+ CVarDef.Create("discord.adminwho_webhook", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL);
}