Skip to content

Commit

Permalink
[Admin] Синхронизация цвета имени администратора с настройками OOC ча…
Browse files Browse the repository at this point in the history
…та (#929)

## Описание PR
Теперь в админ-ахелпе и OOC чате используется одинаковый цвет для имени
администратора, который был установлен через команду `setadminooc`. Цвет
имени администратора в чате теперь синхронизирован с цветом, заданным в
настройках OOC.

## Почему / Баланс
Это изменение улучшает визуальное восприятие администраторов в игре.
Ранее, имя администратора в админ-ахелпе не использовало его
индивидуальный цвет, установленный в `setadminooc`.

## Техническая информация
Внесены изменения в код для синхронизации цвета имени администратора в
админ-ахелпе с настройкой цвета, установленной через команду
`setadminooc`. Цвет теперь задается с учетом предпочтений
администратора, и если цвет не установлен, применяется стандартный
красный.

## Медиа

![image](https://github.com/user-attachments/assets/0fc778f3-a0dc-4fcd-bd9a-613f17d185c4)

![image](https://github.com/user-attachments/assets/2a104f59-620b-4c90-b12e-0ef06b46c8b0)

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

## Критические изменения
- Нет критических изменений.
`Content.Server\Administration\Systems\BwoinkSystem.cs`
затронут только этот файл, все изменения подписаны.

**Чейнджлог**
:cl: Шрёдька
- add: Теперь используется цвет, установленный для администратора через
команду setadminooc, для его ника в админ-ахелпе.
  • Loading branch information
Schrodinger71 authored Jan 1, 2025
1 parent c7eeba8 commit 06a7f81
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion Content.Server/Administration/Systems/BwoinkSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
using Robust.Shared.Player;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
using Content.Server.Preferences.Managers;

namespace Content.Server.Administration.Systems
{
Expand All @@ -43,6 +44,7 @@ public sealed partial class BwoinkSystem : SharedBwoinkSystem
[Dependency] private readonly IAfkManager _afkManager = default!;
[Dependency] private readonly IServerDbManager _dbManager = default!;
[Dependency] private readonly PlayerRateLimitManager _rateLimit = default!;
[Dependency] private readonly IServerPreferencesManager _preferencesManager = default!;

[GeneratedRegex(@"^https://discord\.com/api/webhooks/(\d+)/((?!.*/).*)$")]
private static partial Regex DiscordRegex();
Expand Down Expand Up @@ -669,7 +671,24 @@ protected override void OnBwoinkTextMessage(BwoinkTextMessage message, EntitySes
}
else if (senderAdmin is not null && senderAdmin.HasFlag(AdminFlags.Adminhelp))
{
bwoinkText = $"[color=red]{adminPrefix}{senderSession.Name}[/color]";
// ADT-Tweak-Start: Теперь цвета установленные setadminooc также будут красить ник с префиксом в ф1
Color? colorOverride = null;
var prefs = _preferencesManager.GetPreferences(senderSession.UserId);
colorOverride = prefs.AdminOOCColor;
if (colorOverride.HasValue)
{
var colorString = $"#"
+ $"{(int)(colorOverride.Value.R * 255):X2}"
+ $"{(int)(colorOverride.Value.G * 255):X2}"
+ $"{(int)(colorOverride.Value.B * 255):X2}"
+ $"{(int)(colorOverride.Value.A * 255):X2}"; // Color -> переводим в #RGBAFORMAT
bwoinkText = $"[color={colorString}]{adminPrefix}{senderSession.Name}[/color]";
}
else
{
bwoinkText = $"[color=red]{adminPrefix}{senderSession.Name}[/color]";
}
// ADT-Tweak-End
}
else
{
Expand Down

0 comments on commit 06a7f81

Please sign in to comment.