Skip to content

Commit

Permalink
[ADMIN] Новые фичи Adminwho диса (#843)
Browse files Browse the repository at this point in the history
## Описание PR
<!-- Что вы изменили в этом пулл реквесте? -->
Скрины


## Почему / Баланс
<!-- Почему оно было изменено? Ссылайтесь на любые обсуждения или
вопросы здесь. Пожалуйста, обсудите, как это повлияет на игровой баланс.
-->
**Ссылка на публикацию в Discord**
<!-- Укажите ссылки на соответствующие обсуждения, проблемы, баги,
заказы в разработку или предложения
- [Технические проблемы](ссылка)
- [Баги](ссылка)
- [Заказы-разработка](ссылка)
- [Предложения](ссылка)
- [Перенос контента](ссылка)-->

## Техническая информация
<!-- Если речь идет об изменении кода, кратко изложите на высоком уровне
принцип работы нового кода. Это облегчает рецензирование.- -->

## Медиа

![image](https://github.com/user-attachments/assets/09c3e840-9c43-4537-8bce-df984b557bd7)

![image](https://github.com/user-attachments/assets/01238757-e042-4ca9-934d-a503083122f8)


## Требования
<!--
В связи с наплывом ПР'ов нам необходимо убедиться, что ПР'ы следуют
правильным рекомендациям.

Пожалуйста, уделите время прочтению, если делаете пулл реквест (ПР)
впервые.

Отметьте поля ниже, чтобы подтвердить, что Вы действительно видели их
(поставьте X в скобках, например [X]):
-->
- [x] Я прочитал(а) и следую [Руководство по созданию пулл
реквестов](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html).
Я понимаю, что в противном случае мой ПР может быть закрыт по усмотрению
мейнтейнера.
- [x] Я добавил скриншоты/видео к этому пулл реквесту, демонстрирующие
его изменения в игре, **или** этот пулл реквест не требует демонстрации
в игре

## Критические изменения
<!--
Перечислите все критические изменения, включая изменения пространства
имён, публичных классов/методов/полей, переименования прототипов, и
предоставьте инструкции по их исправлению.
-->

**Чейнджлог**
No cl. No fun.
  • Loading branch information
Schrodinger71 authored Nov 27, 2024
1 parent dd45fb6 commit 6377514
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
using Content.Server.Afk;
using Content.Shared.Ghost;
using Content.Shared.GameTicking;
using Robust.Server.Player;
using Content.Server.Maps;


namespace Content.Server.ADT.Discord.Adminwho;

Expand All @@ -21,6 +24,9 @@ public sealed class DiscordAdminInfoSenderSystem : EntitySystem
[Dependency] private readonly IGameTiming _time = default!;
[Dependency] private readonly IEntitySystemManager _entitySystemManager = default!;
[Dependency] private readonly IEntityManager _entities = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IGameMapManager _gameMapManager = default!;
[Dependency] private readonly GameTicker _gameTicker = default!;

private TimeSpan _nextSendTime = TimeSpan.MinValue;
private readonly TimeSpan _delayInterval = TimeSpan.FromMinutes(15);
Expand Down Expand Up @@ -76,6 +82,9 @@ private async void SendAdminInfoToDiscord()
sb.AppendLine();
}

if (sb.Length == 0)
sb.Append("Null админов");

var serverName = _cfg.GetCVar(CCVars.GameHostName);

var gameTicker = _entitySystemManager.GetEntitySystem<GameTicker>();
Expand All @@ -90,6 +99,11 @@ private async void SendAdminInfoToDiscord()
$"{gameTicker.RunLevel} was not matched."),
};

var countPlayer = _playerManager.PlayerCount;
var countPlayerMax = _cfg.GetCVar(CCVars.SoftMaxPlayers);
var mapName = _gameMapManager.GetSelectedMap();
var selectGameRule = _gameTicker.CurrentPreset;

var embed = new WebhookEmbed
{
Title = Loc.GetString("title-embed-webhook-adminwho"),
Expand All @@ -102,6 +116,12 @@ private async void SendAdminInfoToDiscord()
},
};

embed.Fields.Add(new WebhookEmbedField { Name = "Player", Value = $"{countPlayer}/{countPlayerMax}", Inline = true });
if (mapName != null)
embed.Fields.Add(new WebhookEmbedField { Name = "Карта", Value = mapName.MapName, Inline = true });
if (selectGameRule != null)
embed.Fields.Add(new WebhookEmbedField { Name = "Режим", Value = Loc.GetString(selectGameRule.ModeTitle), Inline = true });

var payload = new WebhookPayload
{
Embeds = new List<WebhookEmbed> { embed },
Expand Down
2 changes: 2 additions & 0 deletions Content.Server/ServerUpdates/ServerUpdateManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ 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!;

Check failure on line 30 in Content.Server/ServerUpdates/ServerUpdateManager.cs

View workflow job for this annotation

GitHub Actions / Test Packaging

The type or namespace name 'DiscordWebhook' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 30 in Content.Server/ServerUpdates/ServerUpdateManager.cs

View workflow job for this annotation

GitHub Actions / Test Packaging

The type or namespace name 'DiscordWebhook' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 30 in Content.Server/ServerUpdates/ServerUpdateManager.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

The type or namespace name 'DiscordWebhook' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 30 in Content.Server/ServerUpdates/ServerUpdateManager.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

The type or namespace name 'DiscordWebhook' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 30 in Content.Server/ServerUpdates/ServerUpdateManager.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

The type or namespace name 'DiscordWebhook' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 30 in Content.Server/ServerUpdates/ServerUpdateManager.cs

View workflow job for this annotation

GitHub Actions / build (ubuntu-latest)

The type or namespace name 'DiscordWebhook' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 30 in Content.Server/ServerUpdates/ServerUpdateManager.cs

View workflow job for this annotation

GitHub Actions / YAML Linter

The type or namespace name 'DiscordWebhook' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 30 in Content.Server/ServerUpdates/ServerUpdateManager.cs

View workflow job for this annotation

GitHub Actions / YAML Linter

The type or namespace name 'DiscordWebhook' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 30 in Content.Server/ServerUpdates/ServerUpdateManager.cs

View workflow job for this annotation

GitHub Actions / build

The type or namespace name 'DiscordWebhook' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 30 in Content.Server/ServerUpdates/ServerUpdateManager.cs

View workflow job for this annotation

GitHub Actions / build

The type or namespace name 'DiscordWebhook' could not be found (are you missing a using directive or an assembly reference?)
[Dependency] private readonly IEntitySystemManager _entitySystemManager = default!;

private ISawmill _sawmill = default!;

Expand Down
1 change: 1 addition & 0 deletions Resources/Locale/ru-RU/ADT/Discord/discord-update.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
username-webhook-update = Loremaster build`s update

0 comments on commit 6377514

Please sign in to comment.