Правки

This commit is contained in:
BIGZi0348
2025-02-09 19:55:39 +03:00
parent 311d43fe03
commit 309830360a
4 changed files with 21 additions and 47 deletions

View File

@@ -9,6 +9,8 @@ using Robust.Shared.Prototypes;
using static Robust.Client.UserInterface.Controls.LineEdit; using static Robust.Client.UserInterface.Controls.LineEdit;
using Content.Shared._White.Administration; using Content.Shared._White.Administration;
using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.Controls;
using System.Diagnostics.CodeAnalysis;
using Robust.Client.Graphics.Clyde;
namespace Content.Client._White.Administration.HoursPanelSystems; namespace Content.Client._White.Administration.HoursPanelSystems;
@@ -16,43 +18,35 @@ namespace Content.Client._White.Administration.HoursPanelSystems;
[UsedImplicitly] [UsedImplicitly]
public sealed partial class HoursPanel : DefaultWindow public sealed partial class HoursPanel : DefaultWindow
{ {
public HoursPanelSystem _huetaSystem;
public HoursPanel() public HoursPanel()
{ {
RobustXamlLoader.Load(this); RobustXamlLoader.Load(this);
var entityManager = IoCManager.Resolve<IEntityManager>(); var entityManager = IoCManager.Resolve<IEntityManager>();
_huetaSystem = entityManager.System<HoursPanelSystem>(); var hoursPanelSystem = entityManager.System<HoursPanelSystem>();
_huetaSystem._panel = this; hoursPanelSystem.Panel = this;
var owner = _huetaSystem;
var roles = new Dictionary<int, string>(); var roles = new Dictionary<int, string>();
PlayerNameLine.OnTextChanged += _ => OnNamesChanged(); PlayerNameLine.OnTextChanged += _ => OnNamesChanged();
PlayerNameLine.OnTextEntered += _ => OnNameSubmited(owner, roles); PlayerNameLine.OnTextEntered += _ => OnNameSubmited(hoursPanelSystem, roles);
PlayerList.OnSelectionChanged += OnPlayerSelectionChanged; PlayerList.OnSelectionChanged += OnPlayerSelectionChanged;
HourButton.OnPressed += _ => AddMinutes(60); HourButton.OnPressed += _ => AddMinutes(60);
MinutesLine.OnTextChanged += UpdateButtonsText; MinutesLine.OnTextChanged += UpdateButtonsText;
RoleOption.OnItemSelected += args => OnItemSelected(args, owner, roles); RoleOption.OnItemSelected += args => OnItemSelected(args, hoursPanelSystem, roles);
SubmitButton.OnPressed += _ => OnSubmitButtonOnPressed(roles); SubmitButton.OnPressed += _ => OnSubmitButtonOnPressed(roles, hoursPanelSystem);
SaveButton.OnPressed += _ => OnSaveButtonOnPressed(); SaveButton.OnPressed += _ => OnSaveButtonOnPressed();
OnNamesChanged(); OnNamesChanged();
InitRoleList(roles); InitRoleList(roles);
} }
public void UpdateTime(TimeSpan? time) public void UpdateTime(TimeSpan? time)
{ {
if (time == null) if (time != null)
TimeDisplayer.Text = $"Время игры: нет данных"; {
var t = (TimeSpan) time;
TimeDisplayer.Text = $"Время игры: {Math.Floor(t.TotalHours) + string.Format(" ч {0:%m} м", t)}";
}
else else
TimeDisplayer.Text = $"Время игры: {time}"; TimeDisplayer.Text = $"Время игры: нет данных";
} }
private void OnItemSelected(OptionButton.ItemSelectedEventArgs args, HoursPanelSystem owner, Dictionary<int, string> roles) private void OnItemSelected(OptionButton.ItemSelectedEventArgs args, HoursPanelSystem owner, Dictionary<int, string> roles)
@@ -128,13 +122,13 @@ public sealed partial class HoursPanel : DefaultWindow
OnNamesChanged(); OnNamesChanged();
} }
private void OnSubmitButtonOnPressed(Dictionary<int, string> roles) private void OnSubmitButtonOnPressed(Dictionary<int, string> roles, HoursPanelSystem owner)
{ {
IoCManager.Resolve<IClientConsoleHost>().ExecuteCommand( IoCManager.Resolve<IClientConsoleHost>().ExecuteCommand(
$"playtime_addrole {PlayerNameLine.Text} {roles[RoleOption.SelectedId]} {MinutesLine.Text}"); $"playtime_addrole {PlayerNameLine.Text} {roles[RoleOption.SelectedId]} {MinutesLine.Text}");
SaveButton.Disabled = false; SaveButton.Disabled = false;
_huetaSystem.SendPlayerTimeRequest(new HoursPanelMessageToServer(PlayerNameLine.Text, roles[RoleOption.SelectedId])); owner.SendPlayerTimeRequest(new HoursPanelMessageToServer(PlayerNameLine.Text, roles[RoleOption.SelectedId]));
} }
private void OnSaveButtonOnPressed() private void OnSaveButtonOnPressed()
@@ -143,10 +137,4 @@ public sealed partial class HoursPanel : DefaultWindow
$"playtime_save {PlayerNameLine.Text}"); $"playtime_save {PlayerNameLine.Text}");
SaveButton.Disabled = true; SaveButton.Disabled = true;
} }
private void GetPlayerTime()
{
if (string.IsNullOrWhiteSpace(PlayerNameLine.Text))
return;
}
} }

View File

@@ -1,39 +1,25 @@
using Content.Shared._White.Administration; using Content.Shared._White.Administration;
using static Content.Client._White.Administration.HoursPanelSystems.HoursPanel;
namespace Content.Client._White.Administration.HoursPanelSystems; namespace Content.Client._White.Administration.HoursPanelSystems;
public sealed class HoursPanelSystem : EntitySystem public sealed class HoursPanelSystem : EntitySystem
{ {
public HoursPanel? _panel; public HoursPanel? Panel;
//private HoursPanel _panel;
public HoursPanelSystem()
{
}
public override void Initialize() public override void Initialize()
{ {
base.Initialize(); base.Initialize();
SubscribeNetworkEvent<HoursPanelMessageToClient>(OnHoursPanelMessage); SubscribeNetworkEvent<HoursPanelMessageToClient>(OnHoursPanelMessage);
} }
private void OnHoursPanelMessage(HoursPanelMessageToClient message, EntitySessionEventArgs eventArgs) private void OnHoursPanelMessage(HoursPanelMessageToClient message, EntitySessionEventArgs eventArgs)
{ {
_panel?.UpdateTime(message.Time); Panel?.UpdateTime(message.Time);
} }
public void SendPlayerTimeRequest(HoursPanelMessageToServer message) public void SendPlayerTimeRequest(HoursPanelMessageToServer message)
{ {
var _entityManager = IoCManager.Resolve<EntityManager>(); RaiseNetworkEvent(message);
var _che = _entityManager.System<CheZaHuetaSystem>();
_che.SendNetMessage(message);
// RaiseNetworkEvent(message);
} }
} }

View File

@@ -13,7 +13,6 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ServerGarbageCollection>true</ServerGarbageCollection> <ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'" />
<ItemGroup> <ItemGroup>
<PackageReference Include="JetBrains.Annotations" PrivateAssets="All" /> <PackageReference Include="JetBrains.Annotations" PrivateAssets="All" />
<PackageReference Include="NetCoreServer" /> <PackageReference Include="NetCoreServer" />

View File

@@ -2,19 +2,20 @@ using Content.Shared._White.Administration;
using Robust.Server.Player; using Robust.Server.Player;
using Content.Server.Players.PlayTimeTracking; using Content.Server.Players.PlayTimeTracking;
namespace Content.Server._White.Administration; namespace Content.Server._White.Administration;
public sealed class HoursPanelSystem : EntitySystem public sealed class HoursPanelSystem : EntitySystem
{ {
[Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IPlayTimeTrackingManager _playTimeTracking = default!; [Dependency] private readonly IPlayTimeTrackingManager _playTimeTracking = default!;
public override void Initialize() public override void Initialize()
{ {
base.Initialize(); base.Initialize();
SubscribeNetworkEvent<HoursPanelMessageToServer>(OnHoursPanelMessage); SubscribeNetworkEvent<HoursPanelMessageToServer>(OnHoursPanelMessage);
} }
private void OnHoursPanelMessage(HoursPanelMessageToServer message, EntitySessionEventArgs eventArgs) private void OnHoursPanelMessage(HoursPanelMessageToServer message, EntitySessionEventArgs eventArgs)
{ {
if (!_playerManager.TryGetSessionByUsername(message.PlayerCKey, out var player)) if (!_playerManager.TryGetSessionByUsername(message.PlayerCKey, out var player))