Вдвойне сломали панель накрутки
This commit is contained in:
@@ -52,7 +52,7 @@ public sealed partial class HoursPanel : DefaultWindow
|
|||||||
if (string.IsNullOrWhiteSpace(PlayerNameLine.Text))
|
if (string.IsNullOrWhiteSpace(PlayerNameLine.Text))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
owner.SendPlayerTimeRequest(new HoursPanelMessage(PlayerNameLine.Text, roles[RoleOption.SelectedId]));
|
owner.SendPlayerTimeRequest(new HoursPanelMessageToServer(PlayerNameLine.Text, roles[RoleOption.SelectedId]));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InitRoleList(Dictionary<int, string> roles)
|
private void InitRoleList(Dictionary<int, string> roles)
|
||||||
|
|||||||
@@ -2,21 +2,27 @@ using Content.Shared._White.Administration;
|
|||||||
|
|
||||||
namespace Content.Client._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)
|
public HoursPanelSystem(HoursPanel panel)
|
||||||
{
|
{
|
||||||
Panel = panel;
|
_panel = panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnHoursPanelMessage(HoursPanelMessage message, EntitySessionEventArgs eventArgs)
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
if (message.Time != null)
|
base.Initialize();
|
||||||
Panel.UpdateTime(message.Time);
|
|
||||||
|
SubscribeNetworkEvent<HoursPanelMessageToClient>(OnHoursPanelMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendPlayerTimeRequest(HoursPanelMessage message)
|
private void OnHoursPanelMessage(HoursPanelMessageToClient message, EntitySessionEventArgs eventArgs)
|
||||||
|
{
|
||||||
|
_panel.UpdateTime(message.Time);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SendPlayerTimeRequest(HoursPanelMessageToServer message)
|
||||||
{
|
{
|
||||||
RaiseNetworkEvent(message);
|
RaiseNetworkEvent(message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,25 +2,38 @@ 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 : SharedHoursPanelSystem
|
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!;
|
||||||
protected override void OnHoursPanelMessage(HoursPanelMessage message, EntitySessionEventArgs eventArgs)
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
if (message.Time != null)
|
base.Initialize();
|
||||||
return;
|
|
||||||
|
|
||||||
|
SubscribeNetworkEvent<HoursPanelMessageToServer>(OnHoursPanelMessage);
|
||||||
|
}
|
||||||
|
private void OnHoursPanelMessage(HoursPanelMessageToServer message, EntitySessionEventArgs eventArgs)
|
||||||
|
{
|
||||||
if (_playerManager.TryGetSessionByUsername(message.PlayerCKey, out var player))
|
if (_playerManager.TryGetSessionByUsername(message.PlayerCKey, out var player))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (player == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
TimeSpan timer;
|
||||||
|
|
||||||
if (message.Job == "Overall")
|
if (message.Job == "Overall")
|
||||||
{
|
{
|
||||||
var timer = _playTimeTracking.GetOverallPlaytime(player!);
|
timer = _playTimeTracking.GetOverallPlaytime(player!);
|
||||||
RaiseNetworkEvent(new HoursPanelMessage(message.PlayerCKey, message.Job, timer));
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
timer = _playTimeTracking.GetPlayTimeForTracker(player!, message.Job);
|
||||||
|
}
|
||||||
|
|
||||||
|
RaiseNetworkEvent(new HoursPanelMessageToClient(timer));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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<HoursPanelMessage>(OnHoursPanelMessage);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected virtual void OnHoursPanelMessage(HoursPanelMessage message, EntitySessionEventArgs eventArgs)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user