PlayerPanel Follow button (#36466)
* Follow button * remove event stuff
This commit is contained in:
@@ -19,12 +19,13 @@
|
|||||||
<Label Name="SharedConnections"/>
|
<Label Name="SharedConnections"/>
|
||||||
|
|
||||||
<BoxContainer Align="Center">
|
<BoxContainer Align="Center">
|
||||||
<GridContainer Rows="5">
|
<GridContainer Rows="6">
|
||||||
<Button Name="NotesButton" Text="{Loc player-panel-show-notes}" SetWidth="136" Disabled="True"/>
|
<Button Name="NotesButton" Text="{Loc player-panel-show-notes}" SetWidth="136" Disabled="True"/>
|
||||||
<Button Name="AhelpButton" Text="{Loc player-panel-help}" Disabled="True"/>
|
<Button Name="AhelpButton" Text="{Loc player-panel-help}" Disabled="True"/>
|
||||||
<Button Name="FreezeButton" Text = "{Loc player-panel-freeze}" Disabled="True"/>
|
<Button Name="FreezeButton" Text = "{Loc player-panel-freeze}" Disabled="True"/>
|
||||||
<controls:ConfirmButton Name="KickButton" Text="{Loc player-panel-kick}" Disabled="True"/>
|
<controls:ConfirmButton Name="KickButton" Text="{Loc player-panel-kick}" Disabled="True"/>
|
||||||
<controls:ConfirmButton Name="DeleteButton" Text="{Loc player-panel-delete}" Disabled="True"/>
|
<controls:ConfirmButton Name="DeleteButton" Text="{Loc player-panel-delete}" Disabled="True"/>
|
||||||
|
<Button Name="FollowButton" Text="{Loc player-panel-follow}"/>
|
||||||
<Button Name="ShowBansButton" Text="{Loc player-panel-show-bans}" SetWidth="136" Disabled="True"/>
|
<Button Name="ShowBansButton" Text="{Loc player-panel-show-bans}" SetWidth="136" Disabled="True"/>
|
||||||
<Button Name="LogsButton" Text="{Loc player-panel-logs}" Disabled="True"/>
|
<Button Name="LogsButton" Text="{Loc player-panel-logs}" Disabled="True"/>
|
||||||
<Button Name="FreezeAndMuteToggleButton" Text="{Loc player-panel-freeze-and-mute}" Disabled="True"/>
|
<Button Name="FreezeAndMuteToggleButton" Text="{Loc player-panel-freeze-and-mute}" Disabled="True"/>
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ using Content.Client.Administration.Managers;
|
|||||||
using Content.Client.UserInterface.Controls;
|
using Content.Client.UserInterface.Controls;
|
||||||
using Content.Shared.Administration;
|
using Content.Shared.Administration;
|
||||||
using Robust.Client.AutoGenerated;
|
using Robust.Client.AutoGenerated;
|
||||||
using Robust.Client.UserInterface;
|
|
||||||
using Robust.Client.UserInterface.XAML;
|
using Robust.Client.UserInterface.XAML;
|
||||||
using Robust.Shared.Network;
|
using Robust.Shared.Network;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
@@ -21,6 +20,7 @@ public sealed partial class PlayerPanel : FancyWindow
|
|||||||
public event Action<string?>? OnKick;
|
public event Action<string?>? OnKick;
|
||||||
public event Action<NetUserId?>? OnOpenBanPanel;
|
public event Action<NetUserId?>? OnOpenBanPanel;
|
||||||
public event Action<NetUserId?, bool>? OnWhitelistToggle;
|
public event Action<NetUserId?, bool>? OnWhitelistToggle;
|
||||||
|
public event Action? OnFollow;
|
||||||
public event Action? OnFreezeAndMuteToggle;
|
public event Action? OnFreezeAndMuteToggle;
|
||||||
public event Action? OnFreeze;
|
public event Action? OnFreeze;
|
||||||
public event Action? OnLogs;
|
public event Action? OnLogs;
|
||||||
@@ -47,6 +47,7 @@ public sealed partial class PlayerPanel : FancyWindow
|
|||||||
OnWhitelistToggle?.Invoke(TargetPlayer, _isWhitelisted);
|
OnWhitelistToggle?.Invoke(TargetPlayer, _isWhitelisted);
|
||||||
SetWhitelisted(!_isWhitelisted);
|
SetWhitelisted(!_isWhitelisted);
|
||||||
};
|
};
|
||||||
|
FollowButton.OnPressed += _ => OnFollow?.Invoke();
|
||||||
FreezeButton.OnPressed += _ => OnFreeze?.Invoke();
|
FreezeButton.OnPressed += _ => OnFreeze?.Invoke();
|
||||||
FreezeAndMuteToggleButton.OnPressed += _ => OnFreezeAndMuteToggle?.Invoke();
|
FreezeAndMuteToggleButton.OnPressed += _ => OnFreezeAndMuteToggle?.Invoke();
|
||||||
LogsButton.OnPressed += _ => OnLogs?.Invoke();
|
LogsButton.OnPressed += _ => OnLogs?.Invoke();
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ public sealed class PlayerPanelEui : BaseEui
|
|||||||
PlayerPanel.OnLogs += () => SendMessage(new PlayerPanelLogsMessage());
|
PlayerPanel.OnLogs += () => SendMessage(new PlayerPanelLogsMessage());
|
||||||
PlayerPanel.OnRejuvenate += () => SendMessage(new PlayerPanelRejuvenationMessage());
|
PlayerPanel.OnRejuvenate += () => SendMessage(new PlayerPanelRejuvenationMessage());
|
||||||
PlayerPanel.OnDelete+= () => SendMessage(new PlayerPanelDeleteMessage());
|
PlayerPanel.OnDelete+= () => SendMessage(new PlayerPanelDeleteMessage());
|
||||||
|
PlayerPanel.OnFollow += () => SendMessage(new PlayerPanelFollowMessage());
|
||||||
|
|
||||||
PlayerPanel.OnClose += () => SendMessage(new CloseEuiMessage());
|
PlayerPanel.OnClose += () => SendMessage(new CloseEuiMessage());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ using Content.Server.EUI;
|
|||||||
using Content.Shared.Administration;
|
using Content.Shared.Administration;
|
||||||
using Content.Shared.Database;
|
using Content.Shared.Database;
|
||||||
using Content.Shared.Eui;
|
using Content.Shared.Eui;
|
||||||
|
using Content.Shared.Follower;
|
||||||
using Robust.Server.Player;
|
using Robust.Server.Player;
|
||||||
using Robust.Shared.Player;
|
using Robust.Shared.Player;
|
||||||
|
|
||||||
@@ -33,11 +34,13 @@ public sealed class PlayerPanelEui : BaseEui
|
|||||||
private bool _frozen;
|
private bool _frozen;
|
||||||
private bool _canFreeze;
|
private bool _canFreeze;
|
||||||
private bool _canAhelp;
|
private bool _canAhelp;
|
||||||
|
private FollowerSystem _follower;
|
||||||
|
|
||||||
public PlayerPanelEui(LocatedPlayerData player)
|
public PlayerPanelEui(LocatedPlayerData player)
|
||||||
{
|
{
|
||||||
IoCManager.InjectDependencies(this);
|
IoCManager.InjectDependencies(this);
|
||||||
_targetPlayer = player;
|
_targetPlayer = player;
|
||||||
|
_follower = _entity.System<FollowerSystem>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Opened()
|
public override void Opened()
|
||||||
@@ -141,6 +144,16 @@ public sealed class PlayerPanelEui : BaseEui
|
|||||||
_entity.DeleteEntity(session.AttachedEntity);
|
_entity.DeleteEntity(session.AttachedEntity);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case PlayerPanelFollowMessage:
|
||||||
|
if (!_admins.HasAdminFlag(Player, AdminFlags.Admin) ||
|
||||||
|
!_player.TryGetSessionById(_targetPlayer.UserId, out session) ||
|
||||||
|
session.AttachedEntity == null ||
|
||||||
|
Player.AttachedEntity is null ||
|
||||||
|
session.AttachedEntity == Player.AttachedEntity)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_follower.StartFollowingEntity(Player.AttachedEntity.Value, session.AttachedEntity.Value);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
using Content.Shared.Eui;
|
using Content.Shared.Eui;
|
||||||
using Robust.Shared.Network;
|
using Robust.Shared.Network;
|
||||||
using Robust.Shared.Serialization;
|
using Robust.Shared.Serialization;
|
||||||
using YamlDotNet.Serialization.Callbacks;
|
|
||||||
|
|
||||||
namespace Content.Shared.Administration;
|
namespace Content.Shared.Administration;
|
||||||
|
|
||||||
[Serializable, NetSerializable]
|
[Serializable, NetSerializable]
|
||||||
public sealed class PlayerPanelEuiState(NetUserId guid,
|
public sealed class PlayerPanelEuiState(
|
||||||
|
NetUserId guid,
|
||||||
string username,
|
string username,
|
||||||
TimeSpan playtime,
|
TimeSpan playtime,
|
||||||
int? totalNotes,
|
int? totalNotes,
|
||||||
@@ -52,3 +52,6 @@ public sealed class PlayerPanelDeleteMessage : EuiMessageBase;
|
|||||||
|
|
||||||
[Serializable, NetSerializable]
|
[Serializable, NetSerializable]
|
||||||
public sealed class PlayerPanelRejuvenationMessage: EuiMessageBase;
|
public sealed class PlayerPanelRejuvenationMessage: EuiMessageBase;
|
||||||
|
|
||||||
|
[Serializable, NetSerializable]
|
||||||
|
public sealed class PlayerPanelFollowMessage: EuiMessageBase;
|
||||||
|
|||||||
@@ -21,3 +21,4 @@ player-panel-delete = Delete
|
|||||||
player-panel-rejuvenate = Rejuvenate
|
player-panel-rejuvenate = Rejuvenate
|
||||||
player-panel-false = False
|
player-panel-false = False
|
||||||
player-panel-true = True
|
player-panel-true = True
|
||||||
|
player-panel-follow = Follow
|
||||||
|
|||||||
Reference in New Issue
Block a user