Skip to content

Commit

Permalink
Добавление кнопки открытия логов игрока в АХ (#653)
Browse files Browse the repository at this point in the history
## Описание PR
<!-- Что вы изменили в этом пулл реквесте? -->
По факту, добавил возможность в команде adminlogs возможность
предустанавливать для какого игрока фильтр.

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


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

## Медиа
<!--
Пулл реквесты, которые вносят внутриигровые изменения (добавление
одежды, предметов, новых возможностей и т.д.), должны содержать медиа,
демонстрирующие изменения.
Небольшие исправления/рефакторы не требуют медиа.

Если Вы не уверены в том, что Ваш пулл реквест требует медиа, спросите
мейнтейнера.
-->

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

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

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

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

**Чейнджлог**
<!--
Здесь Вы можете заполнить журнал изменений, который будет автоматически
добавлен в игру при мердже Вашего пулл реквест.

Чтобы игроки узнали о новых возможностях и изменениях, которые могут
повлиять на их игру, добавьте запись в журнал изменений.

Не считайте суффикс типа записи (например, add) "частью" предложения:
плохо: - add: новый инструмент для инженеров
хорошо: - add: добавлен новый инструмент для инженеров

Помещение имени после символа 🆑 изменит имя, которое будет
отображаться в журнале изменений (в противном случае будет
использоваться ваше имя пользователя GitHub).
Например: 🆑 AruMoon
-->

🆑
- add: Добавлена кнопка в АХ для открытия логов конкретного игрока.

---------

Co-authored-by: Tymur Valiiev <[email protected]>
  • Loading branch information
Mirokko and Tymur Valiiev authored Oct 26, 2024
1 parent 854eeb0 commit 491efad
Show file tree
Hide file tree
Showing 10 changed files with 54 additions and 16 deletions.
8 changes: 5 additions & 3 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
"program": "${workspaceFolder}/bin/Content.Client/Content.Client.dll",
"args": [],
"console": "internalConsole",
"stopAtEntry": false
"stopAtEntry": false,
"brokeredServicePipeName": "undefined"
},
{
"name": "Client (Compatibility renderer)",
Expand All @@ -29,7 +30,8 @@
"program": "${workspaceFolder}/bin/Content.Server/Content.Server.dll",
"args": [],
"console": "integratedTerminal",
"stopAtEntry": false
"stopAtEntry": false,
"brokeredServicePipeName": "undefined"
},
{
"name": "YAML Linter",
Expand All @@ -52,4 +54,4 @@
"preLaunchTask": "build"
}
]
}
}
3 changes: 2 additions & 1 deletion Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
<BoxContainer Orientation="Horizontal" HorizontalExpand="True">
<CheckBox Visible="True" Name="PlaySound" Access="Public" Text="{Loc 'admin-bwoink-play-sound'}" Pressed="True" />
<Control HorizontalExpand="True" MinWidth="5" />
<Button Visible="True" Name="PopOut" Access="Public" Text="{Loc 'admin-logs-pop-out'}" StyleClasses="OpenBoth" HorizontalAlignment="Left" />
<!-- <Button Visible="True" Name="PopOut" Access="Public" Text="{Loc 'admin-logs-pop-out'}" StyleClasses="OpenBoth" HorizontalAlignment="Left" /> --> <!-- ADT-Tweak -->
<Button Visible="True" Name="Logs" Access="Public" Text="{Loc 'admin-player-actions-open-logs'}" StyleClasses="OpenBoth" HorizontalAlignment="Left" /> <!-- ADT-Tweak -->
<Control HorizontalExpand="True" />
<Button Visible="False" Name="Playerpanel" Text="{Loc 'admin-player-actions-open-playerpanel'}" StyleClasses="OpenRight" /> <!-- ADT-Tweak -->
<Button Visible="False" Name="Bans" Text="{Loc 'admin-player-actions-bans'}" StyleClasses="OpenRight" />
Expand Down
12 changes: 9 additions & 3 deletions Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
using Robust.Shared.Network;
using Robust.Shared.Configuration;
using Robust.Shared.Utility;
using Content.Client.Administration.UI.Logs;
using Content.Client.Eui;

namespace Content.Client.Administration.UI.Bwoink
{
Expand Down Expand Up @@ -179,12 +181,13 @@ public BwoinkControl()
_console.ExecuteCommand($"respawn \"{_currentPlayer.Username}\"");
};

PopOut.OnPressed += _ =>
// ADT-Tweak-Start
Logs.OnPressed += _ =>
{
uiController.PopOut();
if (_currentPlayer is not null)
_console.ExecuteCommand($"adminlogs \"{_currentPlayer.Username}\"");
};

// ADT-Tweak-Start
Playerpanel.OnPressed += _ =>
{
if (_currentPlayer is not null)
Expand Down Expand Up @@ -240,6 +243,9 @@ public void UpdateButtons()
Follow.Disabled = !Follow.Visible || disabled;

// ADT-Tweak-Start
Logs.Visible = _adminManager.HasFlag(AdminFlags.Logs);
Logs.Disabled = !Logs.Visible || disabled;

Playerpanel.Visible = _adminManager.HasFlag(AdminFlags.Ban);
Playerpanel.Disabled = !Playerpanel.Visible || disabled;
// ADT-Tweak-End
Expand Down
11 changes: 9 additions & 2 deletions Content.Client/Administration/UI/Logs/AdminLogsControl.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public AdminLogsControl()

public HashSet<LogType> SelectedTypes { get; } = new();

public HashSet<Guid> SelectedPlayers { get; } = new();
public HashSet<Guid> SelectedPlayers { get; set; } = new(); // ADT-Tweak

public HashSet<LogImpact> SelectedImpacts { get; } = new();

Expand Down Expand Up @@ -210,6 +210,13 @@ public void SetTypesSelection(HashSet<LogType> selectedTypes, bool invert = fals
UpdateLogs();
}

// ADT-Tweak-Start
public void SetPlayersSelection(HashSet<Guid> selectedPlayers)
{
SelectedPlayers = selectedPlayers;
}
// ADT-Tweak-End

public void UpdateTypes()
{
foreach (var control in TypesContainer.Children)
Expand Down Expand Up @@ -441,7 +448,7 @@ public void SetPlayers(Dictionary<Guid, string> players)
var button = new AdminLogPlayerButton(id)
{
Text = name,
Pressed = allSelected
Pressed = SelectedPlayers.Contains(id), // ADT-Tweak
};

if (allSelected)
Expand Down
12 changes: 10 additions & 2 deletions Content.Client/Administration/UI/Logs/AdminLogsEui.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,14 +115,18 @@ public override void HandleState(EuiStateBase state)
return;
}

var oldSelection = new HashSet<Guid>(LogsControl.SelectedPlayers); // ADT-Tweak
LogsControl.SetCurrentRound(s.RoundId);
LogsControl.SetPlayers(s.Players);
LogsControl.UpdateCount(round: s.RoundLogs);

// ADT-Tweak-Start
if (!FirstState)
{
return;
}

if (oldSelection.Count() > 0)
LogsControl.SetPlayersSelection(oldSelection);
// ADT-Tweak-End

FirstState = false;
LogsControl.SetRoundSpinBox(s.RoundId);
Expand Down Expand Up @@ -155,6 +159,10 @@ public override void HandleMessage(EuiMessageBase msg)
if (setLogFilter.Types != null)
LogsControl.SetTypesSelection(setLogFilter.Types, setLogFilter.InvertTypes);

// ADT-Tweak-Start
if (setLogFilter.SelectedPlayers != null)
LogsControl.SetPlayersSelection(setLogFilter.SelectedPlayers);
// ADT-Tweak-End
break;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,8 +240,8 @@ public void PopOut()
helper.WindowRoot = _uiManager.CreateWindowRoot(helper.ClydeWindow);
helper.WindowRoot.AddChild(helper.Control);

helper.Control.PopOut.Disabled = true;
helper.Control.PopOut.Visible = false;
// helper.Control.PopOut.Disabled = true; //ADT-Tweak
// helper.Control.PopOut.Visible = false; //ADT-Tweak
}

private void UnreadAHelpReceived()
Expand Down
10 changes: 10 additions & 0 deletions Content.Server/Administration/Commands/OpenAdminLogsCommand.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Content.Server.Administration.Logs;
using Content.Server.EUI;
using Content.Shared.Administration;
using Robust.Server.Player;
using Robust.Shared.Console;

namespace Content.Server.Administration.Commands;
Expand All @@ -23,5 +24,14 @@ public void Execute(IConsoleShell shell, string argStr, string[] args)
var eui = IoCManager.Resolve<EuiManager>();
var ui = new AdminLogsEui();
eui.OpenEui(ui, player);

// ADT-Tweak-Start
if (args.Length == 1)
{
var pm = IoCManager.Resolve<IPlayerManager>();
if (pm.TryGetPlayerDataByUsername(args[0], out var playerData))
ui.SetLogFilter(selectedPlayers: [playerData.UserId.UserId]);
}
// ADT-Tweak-End
}
}
5 changes: 3 additions & 2 deletions Content.Server/Administration/Logs/AdminLogsEui.cs
Original file line number Diff line number Diff line change
Expand Up @@ -142,12 +142,13 @@ public override async void HandleMessage(EuiMessageBase msg)
}
}

public void SetLogFilter(string? search = null, bool invertTypes = false, HashSet<LogType>? types = null)
public void SetLogFilter(string? search = null, bool invertTypes = false, HashSet<LogType>? types = null, HashSet<Guid>? selectedPlayers = null) // ADT-Tweak
{
var message = new SetLogFilter(
search,
invertTypes,
types);
types,
selectedPlayers); // ADT-Tweak

SendMessage(message);
}
Expand Down
4 changes: 3 additions & 1 deletion Content.Shared/Administration/Logs/AdminLogsEuiState.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,18 @@ public static class AdminLogsEuiMsg
[Serializable, NetSerializable]
public sealed class SetLogFilter : EuiMessageBase
{
public SetLogFilter(string? search = null, bool invertTypes = false, HashSet<LogType>? types = null)
public SetLogFilter(string? search = null, bool invertTypes = false, HashSet<LogType>? types = null, HashSet<Guid>? selectedPlayers = null) // ADT-Tweak
{
Search = search;
InvertTypes = invertTypes;
Types = types;
SelectedPlayers = selectedPlayers; // ADT-Tweak
}

public string? Search { get; set; }
public bool InvertTypes { get; set; }
public HashSet<LogType>? Types { get; set; }
public HashSet<Guid>? SelectedPlayers { get; set; } // ADT-Tweak
}

[Serializable, NetSerializable]
Expand Down
1 change: 1 addition & 0 deletions Resources/Locale/ru-RU/ADT/administration/ui/actions.ftl
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
admin-player-actions-open-playerpanel = Панель
admin-player-actions-open-logs = Логи

0 comments on commit 491efad

Please sign in to comment.