From e178961cd251573362324a169713ca996eac388c Mon Sep 17 00:00:00 2001
From: Hero010h <163765999+Hero010h@users.noreply.github.com>
Date: Sat, 4 Jan 2025 22:15:12 +0300
Subject: [PATCH 1/7] =?UTF-8?q?=D0=9B=D0=BE=D0=BC=D0=B0=D0=B5=D1=82=20?=
=?UTF-8?q?=D0=BF=D0=B0=D0=BD=D0=B5=D0=BB=D1=8C=20=D0=BD=D0=B0=D0=BA=D1=80?=
=?UTF-8?q?=D1=83=D1=82=D0=BA=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../{ => HoursPanel}/HoursPanel.xaml | 1 +
.../{ => HoursPanel}/HoursPanel.xaml.cs | 36 +++++++++++++++++--
.../HoursPanel/HoursPanelSystem.cs | 23 ++++++++++++
.../HoursPanel/HoursPanelSystem.cs | 26 ++++++++++++++
.../HoursPanelSystem/HoursPanelMessage.cs | 17 +++++++++
.../SharedHoursPanelSystem.cs | 18 ++++++++++
6 files changed, 119 insertions(+), 2 deletions(-)
rename Content.Client/_White/Administration/{ => HoursPanel}/HoursPanel.xaml (96%)
rename Content.Client/_White/Administration/{ => HoursPanel}/HoursPanel.xaml.cs (73%)
create mode 100644 Content.Client/_White/Administration/HoursPanel/HoursPanelSystem.cs
create mode 100644 Content.Server/_White/Administration/HoursPanel/HoursPanelSystem.cs
create mode 100644 Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessage.cs
create mode 100644 Content.Shared/_White/Administration/HoursPanelSystem/SharedHoursPanelSystem.cs
diff --git a/Content.Client/_White/Administration/HoursPanel.xaml b/Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml
similarity index 96%
rename from Content.Client/_White/Administration/HoursPanel.xaml
rename to Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml
index 6ea7218d98..65f75b1ba6 100644
--- a/Content.Client/_White/Administration/HoursPanel.xaml
+++ b/Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml
@@ -14,6 +14,7 @@
+
diff --git a/Content.Client/_White/Administration/HoursPanel.xaml.cs b/Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml.cs
similarity index 73%
rename from Content.Client/_White/Administration/HoursPanel.xaml.cs
rename to Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml.cs
index c51cedc28d..c00cb8acbd 100644
--- a/Content.Client/_White/Administration/HoursPanel.xaml.cs
+++ b/Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml.cs
@@ -7,6 +7,8 @@ using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Prototypes;
using static Robust.Client.UserInterface.Controls.LineEdit;
+using Content.Shared._White.Administration;
+using Robust.Client.UserInterface.Controls;
namespace Content.Client._White.Administration;
@@ -16,19 +18,43 @@ public sealed partial class HoursPanel : DefaultWindow
{
public HoursPanel()
{
+ var owner = new HoursPanelSystem(this);
RobustXamlLoader.Load(this);
var roles = new Dictionary();
PlayerNameLine.OnTextChanged += _ => OnNamesChanged();
+ PlayerNameLine.OnTextEntered += _ => OnNameSubmited(owner, roles);
PlayerList.OnSelectionChanged += OnPlayerSelectionChanged;
HourButton.OnPressed += _ => AddMinutes(60);
MinutesLine.OnTextChanged += UpdateButtonsText;
- RoleOption.OnItemSelected += args => RoleOption.SelectId(args.Id);
+ RoleOption.OnItemSelected += args => OnItemSelected(args, owner, roles);
SubmitButton.OnPressed += _ => OnSubmitButtonOnPressed(roles);
SaveButton.OnPressed += _ => OnSaveButtonOnPressed();
OnNamesChanged();
InitRoleList(roles);
-
}
+
+ public void UpdateTime(TimeSpan? time)
+ {
+ if (time == null)
+ TimeDisplayer.Text = $"Время игры: нет данных";
+ else
+ TimeDisplayer.Text = $"Время игры: {time}";
+ }
+
+ private void OnItemSelected(OptionButton.ItemSelectedEventArgs args, HoursPanelSystem owner, Dictionary roles)
+ {
+ RoleOption.SelectId(args.Id);
+ OnNameSubmited(owner, roles);
+ }
+
+ private void OnNameSubmited(HoursPanelSystem owner, Dictionary roles)
+ {
+ if (string.IsNullOrWhiteSpace(PlayerNameLine.Text))
+ return;
+
+ owner.SendPlayerTimeRequest(new HoursPanelMessage(PlayerNameLine.Text, roles[RoleOption.SelectedId]));
+ }
+
private void InitRoleList(Dictionary roles)
{
var roleInd = 0;
@@ -101,4 +127,10 @@ public sealed partial class HoursPanel : DefaultWindow
$"playtime_save {PlayerNameLine.Text}");
SaveButton.Disabled = true;
}
+ private void GetPlayerTime()
+ {
+ if (string.IsNullOrWhiteSpace(PlayerNameLine.Text))
+ return;
+
+ }
}
diff --git a/Content.Client/_White/Administration/HoursPanel/HoursPanelSystem.cs b/Content.Client/_White/Administration/HoursPanel/HoursPanelSystem.cs
new file mode 100644
index 0000000000..f58f182490
--- /dev/null
+++ b/Content.Client/_White/Administration/HoursPanel/HoursPanelSystem.cs
@@ -0,0 +1,23 @@
+using Content.Shared._White.Administration;
+
+namespace Content.Client._White.Administration;
+
+public sealed class HoursPanelSystem : SharedHoursPanelSystem
+{
+ public HoursPanel Panel { get; }
+ public HoursPanelSystem(HoursPanel panel)
+ {
+ Panel = panel;
+ }
+
+ protected override void OnHoursPanelMessage(HoursPanelMessage message, EntitySessionEventArgs eventArgs)
+ {
+ if (message.Time != null)
+ Panel.UpdateTime(message.Time);
+ }
+
+ public void SendPlayerTimeRequest(HoursPanelMessage message)
+ {
+ RaiseNetworkEvent(message);
+ }
+}
diff --git a/Content.Server/_White/Administration/HoursPanel/HoursPanelSystem.cs b/Content.Server/_White/Administration/HoursPanel/HoursPanelSystem.cs
new file mode 100644
index 0000000000..0c9d20122c
--- /dev/null
+++ b/Content.Server/_White/Administration/HoursPanel/HoursPanelSystem.cs
@@ -0,0 +1,26 @@
+using Content.Shared._White.Administration;
+using Robust.Server.Player;
+using Content.Server.Players.PlayTimeTracking;
+
+namespace Content.Server._White.Administration;
+
+public sealed class HoursPanelSystem : SharedHoursPanelSystem
+{
+ [Dependency] private readonly IPlayerManager _playerManager = default!;
+ [Dependency] private readonly IPlayTimeTrackingManager _playTimeTracking = default!;
+ protected override void OnHoursPanelMessage(HoursPanelMessage message, EntitySessionEventArgs eventArgs)
+ {
+ if (message.Time != null)
+ return;
+
+ if (_playerManager.TryGetSessionByUsername(message.PlayerCKey, out var player))
+ return;
+
+ if (message.Job == "Overall")
+ {
+ var timer = _playTimeTracking.GetOverallPlaytime(player!);
+ RaiseNetworkEvent(new HoursPanelMessage(message.PlayerCKey, message.Job, timer));
+ return;
+ }
+ }
+}
diff --git a/Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessage.cs b/Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessage.cs
new file mode 100644
index 0000000000..b173469a4d
--- /dev/null
+++ b/Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessage.cs
@@ -0,0 +1,17 @@
+using Robust.Shared.Serialization;
+
+namespace Content.Shared._White.Administration;
+
+[Serializable, NetSerializable]
+public sealed class HoursPanelMessage : EntityEventArgs
+{
+ public string PlayerCKey { get; }
+ public string Job { get; }
+ public TimeSpan? Time { get; }
+ public HoursPanelMessage(string playerCKey, string job, TimeSpan? time = null)
+ {
+ PlayerCKey = playerCKey;
+ Job = job;
+ Time = time;
+ }
+}
diff --git a/Content.Shared/_White/Administration/HoursPanelSystem/SharedHoursPanelSystem.cs b/Content.Shared/_White/Administration/HoursPanelSystem/SharedHoursPanelSystem.cs
new file mode 100644
index 0000000000..95f70a71e9
--- /dev/null
+++ b/Content.Shared/_White/Administration/HoursPanelSystem/SharedHoursPanelSystem.cs
@@ -0,0 +1,18 @@
+using Robust.Shared.Network;
+using Robust.Shared.Serialization;
+
+namespace Content.Shared._White.Administration;
+
+public abstract class SharedHoursPanelSystem : EntitySystem
+{
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeNetworkEvent(OnHoursPanelMessage);
+ }
+
+ protected virtual void OnHoursPanelMessage(HoursPanelMessage message, EntitySessionEventArgs eventArgs)
+ {
+ }
+}
From d51cab46ab965ee41112bd17744e1082e4319ff5 Mon Sep 17 00:00:00 2001
From: Hero010h <163765999+Hero010h@users.noreply.github.com>
Date: Sat, 4 Jan 2025 23:04:38 +0300
Subject: [PATCH 2/7] =?UTF-8?q?=D0=92=D0=B4=D0=B2=D0=BE=D0=B9=D0=BD=D0=B5?=
=?UTF-8?q?=20=D1=81=D0=BB=D0=BE=D0=BC=D0=B0=D0=BB=D0=B8=20=D0=BF=D0=B0?=
=?UTF-8?q?=D0=BD=D0=B5=D0=BB=D1=8C=20=D0=BD=D0=B0=D0=BA=D1=80=D1=83=D1=82?=
=?UTF-8?q?=D0=BA=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../HoursPanel/HoursPanel.xaml.cs | 2 +-
.../HoursPanel/HoursPanelSystem.cs | 20 +++++++++-----
.../HoursPanel/HoursPanelSystem.cs | 27 ++++++++++++++-----
.../HoursPanelSystem/HoursPanelMessage.cs | 17 ------------
.../HoursPanelSystem/HoursPanelMessages.cs | 24 +++++++++++++++++
.../SharedHoursPanelSystem.cs | 18 -------------
6 files changed, 58 insertions(+), 50 deletions(-)
delete mode 100644 Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessage.cs
create mode 100644 Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessages.cs
delete mode 100644 Content.Shared/_White/Administration/HoursPanelSystem/SharedHoursPanelSystem.cs
diff --git a/Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml.cs b/Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml.cs
index c00cb8acbd..be42347c92 100644
--- a/Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml.cs
+++ b/Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml.cs
@@ -52,7 +52,7 @@ public sealed partial class HoursPanel : DefaultWindow
if (string.IsNullOrWhiteSpace(PlayerNameLine.Text))
return;
- owner.SendPlayerTimeRequest(new HoursPanelMessage(PlayerNameLine.Text, roles[RoleOption.SelectedId]));
+ owner.SendPlayerTimeRequest(new HoursPanelMessageToServer(PlayerNameLine.Text, roles[RoleOption.SelectedId]));
}
private void InitRoleList(Dictionary roles)
diff --git a/Content.Client/_White/Administration/HoursPanel/HoursPanelSystem.cs b/Content.Client/_White/Administration/HoursPanel/HoursPanelSystem.cs
index f58f182490..6b7e66cc22 100644
--- a/Content.Client/_White/Administration/HoursPanel/HoursPanelSystem.cs
+++ b/Content.Client/_White/Administration/HoursPanel/HoursPanelSystem.cs
@@ -2,21 +2,27 @@ using Content.Shared._White.Administration;
namespace Content.Client._White.Administration;
-public sealed class HoursPanelSystem : SharedHoursPanelSystem
+public sealed class HoursPanelSystem : EntitySystem
{
- public HoursPanel Panel { get; }
+ private HoursPanel _panel;
public HoursPanelSystem(HoursPanel panel)
{
- Panel = panel;
+ _panel = panel;
}
- protected override void OnHoursPanelMessage(HoursPanelMessage message, EntitySessionEventArgs eventArgs)
+ public override void Initialize()
{
- if (message.Time != null)
- Panel.UpdateTime(message.Time);
+ base.Initialize();
+
+ SubscribeNetworkEvent(OnHoursPanelMessage);
}
- public void SendPlayerTimeRequest(HoursPanelMessage message)
+ private void OnHoursPanelMessage(HoursPanelMessageToClient message, EntitySessionEventArgs eventArgs)
+ {
+ _panel.UpdateTime(message.Time);
+ }
+
+ public void SendPlayerTimeRequest(HoursPanelMessageToServer message)
{
RaiseNetworkEvent(message);
}
diff --git a/Content.Server/_White/Administration/HoursPanel/HoursPanelSystem.cs b/Content.Server/_White/Administration/HoursPanel/HoursPanelSystem.cs
index 0c9d20122c..697e952a59 100644
--- a/Content.Server/_White/Administration/HoursPanel/HoursPanelSystem.cs
+++ b/Content.Server/_White/Administration/HoursPanel/HoursPanelSystem.cs
@@ -2,25 +2,38 @@ using Content.Shared._White.Administration;
using Robust.Server.Player;
using Content.Server.Players.PlayTimeTracking;
+
namespace Content.Server._White.Administration;
-public sealed class HoursPanelSystem : SharedHoursPanelSystem
+public sealed class HoursPanelSystem : EntitySystem
{
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IPlayTimeTrackingManager _playTimeTracking = default!;
- protected override void OnHoursPanelMessage(HoursPanelMessage message, EntitySessionEventArgs eventArgs)
+ public override void Initialize()
{
- if (message.Time != null)
- return;
+ base.Initialize();
+ SubscribeNetworkEvent(OnHoursPanelMessage);
+ }
+ private void OnHoursPanelMessage(HoursPanelMessageToServer message, EntitySessionEventArgs eventArgs)
+ {
if (_playerManager.TryGetSessionByUsername(message.PlayerCKey, out var player))
return;
+ if (player == null)
+ return;
+
+ TimeSpan timer;
+
if (message.Job == "Overall")
{
- var timer = _playTimeTracking.GetOverallPlaytime(player!);
- RaiseNetworkEvent(new HoursPanelMessage(message.PlayerCKey, message.Job, timer));
- return;
+ timer = _playTimeTracking.GetOverallPlaytime(player!);
}
+ else
+ {
+ timer = _playTimeTracking.GetPlayTimeForTracker(player!, message.Job);
+ }
+
+ RaiseNetworkEvent(new HoursPanelMessageToClient(timer));
}
}
diff --git a/Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessage.cs b/Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessage.cs
deleted file mode 100644
index b173469a4d..0000000000
--- a/Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessage.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using Robust.Shared.Serialization;
-
-namespace Content.Shared._White.Administration;
-
-[Serializable, NetSerializable]
-public sealed class HoursPanelMessage : EntityEventArgs
-{
- public string PlayerCKey { get; }
- public string Job { get; }
- public TimeSpan? Time { get; }
- public HoursPanelMessage(string playerCKey, string job, TimeSpan? time = null)
- {
- PlayerCKey = playerCKey;
- Job = job;
- Time = time;
- }
-}
diff --git a/Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessages.cs b/Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessages.cs
new file mode 100644
index 0000000000..c1d6db0f6e
--- /dev/null
+++ b/Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessages.cs
@@ -0,0 +1,24 @@
+using Robust.Shared.Serialization;
+
+namespace Content.Shared._White.Administration;
+
+[Serializable, NetSerializable]
+public sealed class HoursPanelMessageToServer : EntityEventArgs
+{
+ public string PlayerCKey { get; }
+ public string Job { get; }
+ public HoursPanelMessageToServer(string playerCKey, string job)
+ {
+ PlayerCKey = playerCKey;
+ Job = job;
+ }
+}
+
+public sealed class HoursPanelMessageToClient : EntityEventArgs
+{
+ public TimeSpan Time { get; }
+ public HoursPanelMessageToClient(TimeSpan time)
+ {
+ Time = time;
+ }
+}
diff --git a/Content.Shared/_White/Administration/HoursPanelSystem/SharedHoursPanelSystem.cs b/Content.Shared/_White/Administration/HoursPanelSystem/SharedHoursPanelSystem.cs
deleted file mode 100644
index 95f70a71e9..0000000000
--- a/Content.Shared/_White/Administration/HoursPanelSystem/SharedHoursPanelSystem.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using Robust.Shared.Network;
-using Robust.Shared.Serialization;
-
-namespace Content.Shared._White.Administration;
-
-public abstract class SharedHoursPanelSystem : EntitySystem
-{
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeNetworkEvent(OnHoursPanelMessage);
- }
-
- protected virtual void OnHoursPanelMessage(HoursPanelMessage message, EntitySessionEventArgs eventArgs)
- {
- }
-}
From 4fc3b1cd7dfab9302e4e9621976936b457bef6e5 Mon Sep 17 00:00:00 2001
From: Hero010h <163765999+Hero010h@users.noreply.github.com>
Date: Sun, 5 Jan 2025 00:36:27 +0300
Subject: [PATCH 3/7] =?UTF-8?q?=D0=94=D0=BE=D0=BB=D0=BE=D0=BC=D0=B0=D0=BB?=
=?UTF-8?q?=D0=B8=20=D0=BF=D0=B0=D0=BD=D0=B5=D0=BB=D1=8C=20=D0=BD=D0=B0?=
=?UTF-8?q?=D0=BA=D1=80=D1=83=D1=82=D0=BA=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Content.Client/Administration/UI/Tabs/AdminTab/AdminTab.xaml | 2 +-
.../{HoursPanel => HoursPanelSystems}/HoursPanel.xaml | 0
.../{HoursPanel => HoursPanelSystems}/HoursPanel.xaml.cs | 2 +-
.../{HoursPanel => HoursPanelSystems}/HoursPanelSystem.cs | 3 ++-
.../_White/Administration/{HoursPanel => }/HoursPanelSystem.cs | 0
5 files changed, 4 insertions(+), 3 deletions(-)
rename Content.Client/_White/Administration/{HoursPanel => HoursPanelSystems}/HoursPanel.xaml (100%)
rename Content.Client/_White/Administration/{HoursPanel => HoursPanelSystems}/HoursPanel.xaml.cs (98%)
rename Content.Client/_White/Administration/{HoursPanel => HoursPanelSystems}/HoursPanelSystem.cs (81%)
rename Content.Server/_White/Administration/{HoursPanel => }/HoursPanelSystem.cs (100%)
diff --git a/Content.Client/Administration/UI/Tabs/AdminTab/AdminTab.xaml b/Content.Client/Administration/UI/Tabs/AdminTab/AdminTab.xaml
index 083d214773..acff024586 100644
--- a/Content.Client/Administration/UI/Tabs/AdminTab/AdminTab.xaml
+++ b/Content.Client/Administration/UI/Tabs/AdminTab/AdminTab.xaml
@@ -3,7 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
xmlns:at="clr-namespace:Content.Client.Administration.UI.Tabs.AdminTab"
- xmlns:wd="clr-namespace:Content.Client._White.Administration"
+ xmlns:wd="clr-namespace:Content.Client._White.Administration.HoursPanelSystems"
Margin="4"
MinSize="50 50">
diff --git a/Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml
similarity index 100%
rename from Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml
rename to Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml
diff --git a/Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml.cs b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs
similarity index 98%
rename from Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml.cs
rename to Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs
index be42347c92..acde819561 100644
--- a/Content.Client/_White/Administration/HoursPanel/HoursPanel.xaml.cs
+++ b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs
@@ -10,7 +10,7 @@ using static Robust.Client.UserInterface.Controls.LineEdit;
using Content.Shared._White.Administration;
using Robust.Client.UserInterface.Controls;
-namespace Content.Client._White.Administration;
+namespace Content.Client._White.Administration.HoursPanelSystems;
[GenerateTypedNameReferences]
[UsedImplicitly]
diff --git a/Content.Client/_White/Administration/HoursPanel/HoursPanelSystem.cs b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs
similarity index 81%
rename from Content.Client/_White/Administration/HoursPanel/HoursPanelSystem.cs
rename to Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs
index 6b7e66cc22..ac89476dc8 100644
--- a/Content.Client/_White/Administration/HoursPanel/HoursPanelSystem.cs
+++ b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs
@@ -1,6 +1,7 @@
using Content.Shared._White.Administration;
+using static Content.Client._White.Administration.HoursPanelSystems.HoursPanel;
-namespace Content.Client._White.Administration;
+namespace Content.Client._White.Administration.HoursPanelSystems;
public sealed class HoursPanelSystem : EntitySystem
{
diff --git a/Content.Server/_White/Administration/HoursPanel/HoursPanelSystem.cs b/Content.Server/_White/Administration/HoursPanelSystem.cs
similarity index 100%
rename from Content.Server/_White/Administration/HoursPanel/HoursPanelSystem.cs
rename to Content.Server/_White/Administration/HoursPanelSystem.cs
From 5c7d9dd42084b31aa42139f3710a670cb14d3df4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=86=D0=B2=D0=B0=D0=BD=20=D0=9E=D0=BD=D1=96=D1=89=D0=B5?=
=?UTF-8?q?=D0=BD=D0=BA=D0=BE?=
Date: Sun, 5 Jan 2025 07:52:11 +0300
Subject: [PATCH 4/7] =?UTF-8?q?=D0=B8=D0=BE=D0=BA=20=D0=B1=D0=B4=D1=81?=
=?UTF-8?q?=D0=BC.=20=D1=87=D0=B0=D1=81=D1=82=D1=8C=20=D0=BF=D0=B5=D0=B2?=
=?UTF-8?q?=D0=B0=D1=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../HoursPanelSystems/HoursPanel.xaml.cs | 10 +++++++-
.../HoursPanelSystems/HoursPanelSystem.cs | 24 ++++++++++++++-----
2 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs
index acde819561..45e96bc9c9 100644
--- a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs
+++ b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs
@@ -16,9 +16,17 @@ namespace Content.Client._White.Administration.HoursPanelSystems;
[UsedImplicitly]
public sealed partial class HoursPanel : DefaultWindow
{
+
+ private HoursPanelSystem _huetaSystem =new();
public HoursPanel()
{
- var owner = new HoursPanelSystem(this);
+ // var owner = new HoursPanelSystem(this);
+ var owner = _huetaSystem;
+ owner._panel = this;
+
+
+
+
RobustXamlLoader.Load(this);
var roles = new Dictionary();
PlayerNameLine.OnTextChanged += _ => OnNamesChanged();
diff --git a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs
index ac89476dc8..15b07010b9 100644
--- a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs
+++ b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs
@@ -5,16 +5,25 @@ namespace Content.Client._White.Administration.HoursPanelSystems;
public sealed class HoursPanelSystem : EntitySystem
{
- private HoursPanel _panel;
- public HoursPanelSystem(HoursPanel panel)
+ public HoursPanel? _panel;
+
+
+ public HoursPanelSystem()
{
- _panel = panel;
+
}
+ //private HoursPanel _panel;
+ //public HoursPanelSystem(HoursPanel panel)
+ //{
+ // _panel = panel;
+ //}
+
+
public override void Initialize()
{
base.Initialize();
-
+
SubscribeNetworkEvent(OnHoursPanelMessage);
}
@@ -24,7 +33,10 @@ public sealed class HoursPanelSystem : EntitySystem
}
public void SendPlayerTimeRequest(HoursPanelMessageToServer message)
- {
- RaiseNetworkEvent(message);
+ {
+ var _entityManager = IoCManager.Resolve();
+ var _che = _entityManager.System();
+ _che.SendNetMessage(message);
+ //RaiseNetworkEvent(message);
}
}
From c7e31c53ab06b4270d019632384a2cce5e6c48c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=86=D0=B2=D0=B0=D0=BD=20=D0=9E=D0=BD=D1=96=D1=89=D0=B5?=
=?UTF-8?q?=D0=BD=D0=BA=D0=BE?=
Date: Tue, 7 Jan 2025 18:27:35 +0300
Subject: [PATCH 5/7] =?UTF-8?q?=D0=A2=D0=B0=D0=B9=D0=BC=D0=B8=D0=BD=D0=B3?=
=?UTF-8?q?=D0=B8=20+=20=D1=84=D0=B8=D0=BA=D1=81=20=D0=B2=D1=81=D0=B5?=
=?UTF-8?q?=D0=B3=D0=BE.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../HoursPanelSystems/HoursPanel.xaml.cs | 24 ++++++++++++-------
.../HoursPanelSystems/HoursPanelSystem.cs | 23 ++++++++----------
.../_White/Administration/HoursPanelSystem.cs | 2 +-
.../HoursPanelSystem/HoursPanelMessages.cs | 1 +
global.json | 2 +-
5 files changed, 29 insertions(+), 23 deletions(-)
diff --git a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs
index 45e96bc9c9..f47384cd4c 100644
--- a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs
+++ b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs
@@ -17,17 +17,17 @@ namespace Content.Client._White.Administration.HoursPanelSystems;
public sealed partial class HoursPanel : DefaultWindow
{
- private HoursPanelSystem _huetaSystem =new();
+ public HoursPanelSystem _huetaSystem;
+
+
public HoursPanel()
{
- // var owner = new HoursPanelSystem(this);
- var owner = _huetaSystem;
- owner._panel = this;
-
-
-
-
RobustXamlLoader.Load(this);
+
+ var entityManager = IoCManager.Resolve();
+ _huetaSystem = entityManager.System();
+ _huetaSystem._panel = this;
+ var owner = _huetaSystem;
var roles = new Dictionary();
PlayerNameLine.OnTextChanged += _ => OnNamesChanged();
PlayerNameLine.OnTextEntered += _ => OnNameSubmited(owner, roles);
@@ -39,14 +39,20 @@ public sealed partial class HoursPanel : DefaultWindow
SaveButton.OnPressed += _ => OnSaveButtonOnPressed();
OnNamesChanged();
InitRoleList(roles);
+
+
}
+
+
public void UpdateTime(TimeSpan? time)
{
if (time == null)
TimeDisplayer.Text = $"Время игры: нет данных";
else
TimeDisplayer.Text = $"Время игры: {time}";
+
+
}
private void OnItemSelected(OptionButton.ItemSelectedEventArgs args, HoursPanelSystem owner, Dictionary roles)
@@ -127,6 +133,8 @@ public sealed partial class HoursPanel : DefaultWindow
IoCManager.Resolve().ExecuteCommand(
$"playtime_addrole {PlayerNameLine.Text} {roles[RoleOption.SelectedId]} {MinutesLine.Text}");
SaveButton.Disabled = false;
+
+ _huetaSystem.SendPlayerTimeRequest(new HoursPanelMessageToServer(PlayerNameLine.Text, roles[RoleOption.SelectedId]));
}
private void OnSaveButtonOnPressed()
diff --git a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs
index 15b07010b9..97024d80aa 100644
--- a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs
+++ b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs
@@ -8,16 +8,13 @@ public sealed class HoursPanelSystem : EntitySystem
public HoursPanel? _panel;
- public HoursPanelSystem()
- {
-
- }
+
//private HoursPanel _panel;
- //public HoursPanelSystem(HoursPanel panel)
- //{
- // _panel = panel;
- //}
+ public HoursPanelSystem()
+ {
+
+ }
public override void Initialize()
@@ -29,14 +26,14 @@ public sealed class HoursPanelSystem : EntitySystem
private void OnHoursPanelMessage(HoursPanelMessageToClient message, EntitySessionEventArgs eventArgs)
{
- _panel.UpdateTime(message.Time);
+ _panel?.UpdateTime(message.Time);
}
public void SendPlayerTimeRequest(HoursPanelMessageToServer message)
- {
- var _entityManager = IoCManager.Resolve();
- var _che = _entityManager.System();
+ {
+ var _entityManager = IoCManager.Resolve();
+ var _che = _entityManager.System();
_che.SendNetMessage(message);
- //RaiseNetworkEvent(message);
+ // RaiseNetworkEvent(message);
}
}
diff --git a/Content.Server/_White/Administration/HoursPanelSystem.cs b/Content.Server/_White/Administration/HoursPanelSystem.cs
index 697e952a59..77f9922e22 100644
--- a/Content.Server/_White/Administration/HoursPanelSystem.cs
+++ b/Content.Server/_White/Administration/HoursPanelSystem.cs
@@ -17,7 +17,7 @@ public sealed class HoursPanelSystem : EntitySystem
}
private void OnHoursPanelMessage(HoursPanelMessageToServer message, EntitySessionEventArgs eventArgs)
{
- if (_playerManager.TryGetSessionByUsername(message.PlayerCKey, out var player))
+ if (!_playerManager.TryGetSessionByUsername(message.PlayerCKey, out var player))
return;
if (player == null)
diff --git a/Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessages.cs b/Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessages.cs
index c1d6db0f6e..40062487bf 100644
--- a/Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessages.cs
+++ b/Content.Shared/_White/Administration/HoursPanelSystem/HoursPanelMessages.cs
@@ -14,6 +14,7 @@ public sealed class HoursPanelMessageToServer : EntityEventArgs
}
}
+[Serializable, NetSerializable]
public sealed class HoursPanelMessageToClient : EntityEventArgs
{
public TimeSpan Time { get; }
diff --git a/global.json b/global.json
index ed820b550b..de3fa63978 100644
--- a/global.json
+++ b/global.json
@@ -1,5 +1,5 @@
{
"sdk": {
- "version": "8.0.205"
+ "version": "8.0.202"
}
}
From 311d43fe035cd71fbc25276159c9cace1feb23fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=86=D0=B2=D0=B0=D0=BD=20=D0=9E=D0=BD=D1=96=D1=89=D0=B5?=
=?UTF-8?q?=D0=BD=D0=BA=D0=BE?=
Date: Mon, 13 Jan 2025 10:15:40 +0300
Subject: [PATCH 6/7] fixes
---
Content.Server/Content.Server.csproj | 1 +
global.json | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/Content.Server/Content.Server.csproj b/Content.Server/Content.Server.csproj
index dfbfccd5a1..1231125268 100644
--- a/Content.Server/Content.Server.csproj
+++ b/Content.Server/Content.Server.csproj
@@ -13,6 +13,7 @@
enable
true
+
diff --git a/global.json b/global.json
index de3fa63978..ed820b550b 100644
--- a/global.json
+++ b/global.json
@@ -1,5 +1,5 @@
{
"sdk": {
- "version": "8.0.202"
+ "version": "8.0.205"
}
}
From 309830360ad59d34cfa53ea34243d04442a93ce8 Mon Sep 17 00:00:00 2001
From: BIGZi0348
Date: Sun, 9 Feb 2025 19:55:39 +0300
Subject: [PATCH 7/7] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../HoursPanelSystems/HoursPanel.xaml.cs | 42 +++++++------------
.../HoursPanelSystems/HoursPanelSystem.cs | 22 ++--------
Content.Server/Content.Server.csproj | 1 -
.../_White/Administration/HoursPanelSystem.cs | 3 +-
4 files changed, 21 insertions(+), 47 deletions(-)
diff --git a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs
index f47384cd4c..46b7fea751 100644
--- a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs
+++ b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs
@@ -9,6 +9,8 @@ using Robust.Shared.Prototypes;
using static Robust.Client.UserInterface.Controls.LineEdit;
using Content.Shared._White.Administration;
using Robust.Client.UserInterface.Controls;
+using System.Diagnostics.CodeAnalysis;
+using Robust.Client.Graphics.Clyde;
namespace Content.Client._White.Administration.HoursPanelSystems;
@@ -16,43 +18,35 @@ namespace Content.Client._White.Administration.HoursPanelSystems;
[UsedImplicitly]
public sealed partial class HoursPanel : DefaultWindow
{
-
- public HoursPanelSystem _huetaSystem;
-
-
public HoursPanel()
{
RobustXamlLoader.Load(this);
var entityManager = IoCManager.Resolve();
- _huetaSystem = entityManager.System();
- _huetaSystem._panel = this;
- var owner = _huetaSystem;
+ var hoursPanelSystem = entityManager.System();
+ hoursPanelSystem.Panel = this;
var roles = new Dictionary();
PlayerNameLine.OnTextChanged += _ => OnNamesChanged();
- PlayerNameLine.OnTextEntered += _ => OnNameSubmited(owner, roles);
+ PlayerNameLine.OnTextEntered += _ => OnNameSubmited(hoursPanelSystem, roles);
PlayerList.OnSelectionChanged += OnPlayerSelectionChanged;
HourButton.OnPressed += _ => AddMinutes(60);
MinutesLine.OnTextChanged += UpdateButtonsText;
- RoleOption.OnItemSelected += args => OnItemSelected(args, owner, roles);
- SubmitButton.OnPressed += _ => OnSubmitButtonOnPressed(roles);
+ RoleOption.OnItemSelected += args => OnItemSelected(args, hoursPanelSystem, roles);
+ SubmitButton.OnPressed += _ => OnSubmitButtonOnPressed(roles, hoursPanelSystem);
SaveButton.OnPressed += _ => OnSaveButtonOnPressed();
OnNamesChanged();
InitRoleList(roles);
-
}
-
-
-
public void UpdateTime(TimeSpan? time)
{
- if (time == null)
- TimeDisplayer.Text = $"Время игры: нет данных";
+ if (time != null)
+ {
+ var t = (TimeSpan) time;
+ TimeDisplayer.Text = $"Время игры: {Math.Floor(t.TotalHours) + string.Format(" ч {0:%m} м", t)}";
+ }
else
- TimeDisplayer.Text = $"Время игры: {time}";
-
-
+ TimeDisplayer.Text = $"Время игры: нет данных";
}
private void OnItemSelected(OptionButton.ItemSelectedEventArgs args, HoursPanelSystem owner, Dictionary roles)
@@ -128,13 +122,13 @@ public sealed partial class HoursPanel : DefaultWindow
OnNamesChanged();
}
- private void OnSubmitButtonOnPressed(Dictionary roles)
+ private void OnSubmitButtonOnPressed(Dictionary roles, HoursPanelSystem owner)
{
IoCManager.Resolve().ExecuteCommand(
$"playtime_addrole {PlayerNameLine.Text} {roles[RoleOption.SelectedId]} {MinutesLine.Text}");
SaveButton.Disabled = false;
- _huetaSystem.SendPlayerTimeRequest(new HoursPanelMessageToServer(PlayerNameLine.Text, roles[RoleOption.SelectedId]));
+ owner.SendPlayerTimeRequest(new HoursPanelMessageToServer(PlayerNameLine.Text, roles[RoleOption.SelectedId]));
}
private void OnSaveButtonOnPressed()
@@ -143,10 +137,4 @@ public sealed partial class HoursPanel : DefaultWindow
$"playtime_save {PlayerNameLine.Text}");
SaveButton.Disabled = true;
}
- private void GetPlayerTime()
- {
- if (string.IsNullOrWhiteSpace(PlayerNameLine.Text))
- return;
-
- }
}
diff --git a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs
index 97024d80aa..20af3141e4 100644
--- a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs
+++ b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs
@@ -1,39 +1,25 @@
using Content.Shared._White.Administration;
-using static Content.Client._White.Administration.HoursPanelSystems.HoursPanel;
namespace Content.Client._White.Administration.HoursPanelSystems;
public sealed class HoursPanelSystem : EntitySystem
{
- public HoursPanel? _panel;
-
-
-
-
- //private HoursPanel _panel;
- public HoursPanelSystem()
- {
-
- }
-
+ public HoursPanel? Panel;
public override void Initialize()
{
base.Initialize();
-
+
SubscribeNetworkEvent(OnHoursPanelMessage);
}
private void OnHoursPanelMessage(HoursPanelMessageToClient message, EntitySessionEventArgs eventArgs)
{
- _panel?.UpdateTime(message.Time);
+ Panel?.UpdateTime(message.Time);
}
public void SendPlayerTimeRequest(HoursPanelMessageToServer message)
{
- var _entityManager = IoCManager.Resolve();
- var _che = _entityManager.System();
- _che.SendNetMessage(message);
- // RaiseNetworkEvent(message);
+ RaiseNetworkEvent(message);
}
}
diff --git a/Content.Server/Content.Server.csproj b/Content.Server/Content.Server.csproj
index 1231125268..dfbfccd5a1 100644
--- a/Content.Server/Content.Server.csproj
+++ b/Content.Server/Content.Server.csproj
@@ -13,7 +13,6 @@
enable
true
-
diff --git a/Content.Server/_White/Administration/HoursPanelSystem.cs b/Content.Server/_White/Administration/HoursPanelSystem.cs
index 77f9922e22..bedb6f1ef2 100644
--- a/Content.Server/_White/Administration/HoursPanelSystem.cs
+++ b/Content.Server/_White/Administration/HoursPanelSystem.cs
@@ -2,19 +2,20 @@ using Content.Shared._White.Administration;
using Robust.Server.Player;
using Content.Server.Players.PlayTimeTracking;
-
namespace Content.Server._White.Administration;
public sealed class HoursPanelSystem : EntitySystem
{
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IPlayTimeTrackingManager _playTimeTracking = default!;
+
public override void Initialize()
{
base.Initialize();
SubscribeNetworkEvent(OnHoursPanelMessage);
}
+
private void OnHoursPanelMessage(HoursPanelMessageToServer message, EntitySessionEventArgs eventArgs)
{
if (!_playerManager.TryGetSessionByUsername(message.PlayerCKey, out var player))