Don't force bwoink window open for admins (#8066)
This commit is contained in:
@@ -5,6 +5,7 @@ using System.Linq;
|
|||||||
using Content.Client.Administration.Managers;
|
using Content.Client.Administration.Managers;
|
||||||
using Content.Client.Administration.UI;
|
using Content.Client.Administration.UI;
|
||||||
using Content.Client.Administration.UI.CustomControls;
|
using Content.Client.Administration.UI.CustomControls;
|
||||||
|
using Content.Client.HUD;
|
||||||
using Content.Shared.Administration;
|
using Content.Shared.Administration;
|
||||||
using JetBrains.Annotations;
|
using JetBrains.Annotations;
|
||||||
using Robust.Client.Graphics;
|
using Robust.Client.Graphics;
|
||||||
@@ -25,6 +26,7 @@ namespace Content.Client.Administration
|
|||||||
[Dependency] private readonly IClientAdminManager _adminManager = default!;
|
[Dependency] private readonly IClientAdminManager _adminManager = default!;
|
||||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
||||||
[Dependency] private readonly IClyde _clyde = default!;
|
[Dependency] private readonly IClyde _clyde = default!;
|
||||||
|
[Dependency] private readonly IGameHud _hud = default!;
|
||||||
|
|
||||||
private BwoinkWindow? _adminWindow;
|
private BwoinkWindow? _adminWindow;
|
||||||
private DefaultWindow? _plainWindow;
|
private DefaultWindow? _plainWindow;
|
||||||
@@ -47,7 +49,17 @@ namespace Content.Client.Administration
|
|||||||
_clyde.RequestWindowAttention();
|
_clyde.RequestWindowAttention();
|
||||||
}
|
}
|
||||||
|
|
||||||
_adminWindow?.OnBwoink(message.ChannelId);
|
// If they're not an admin force it open so they read
|
||||||
|
// If it's admin-admin messaging then eh.
|
||||||
|
if (!_adminManager.HasFlag(AdminFlags.Adminhelp))
|
||||||
|
_plainWindow?.Open();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_adminWindow?.OnBwoink(message.ChannelId);
|
||||||
|
|
||||||
|
if (_adminWindow?.IsOpen != true)
|
||||||
|
_hud.SetInfoRed(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool TryGetChannel(NetUserId ch, [NotNullWhen(true)] out BwoinkPanel? bp) => _activePanelMap.TryGetValue(ch, out bp);
|
public bool TryGetChannel(NetUserId ch, [NotNullWhen(true)] out BwoinkPanel? bp) => _activePanelMap.TryGetValue(ch, out bp);
|
||||||
@@ -64,8 +76,6 @@ namespace Content.Client.Administration
|
|||||||
_adminWindow.BwoinkArea.AddChild(existingPanel);
|
_adminWindow.BwoinkArea.AddChild(existingPanel);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!_adminWindow.IsOpen) _adminWindow.Open();
|
|
||||||
|
|
||||||
return existingPanel;
|
return existingPanel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,7 +100,6 @@ namespace Content.Client.Administration
|
|||||||
bp = (BwoinkPanel) _plainWindow.Contents.GetChild(0);
|
bp = (BwoinkPanel) _plainWindow.Contents.GetChild(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
_plainWindow.Open();
|
|
||||||
return bp;
|
return bp;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,13 +121,17 @@ namespace Content.Client.Administration
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_hud.SetInfoRed(false);
|
||||||
|
|
||||||
if (_adminManager.HasFlag(AdminFlags.Adminhelp))
|
if (_adminManager.HasFlag(AdminFlags.Adminhelp))
|
||||||
{
|
{
|
||||||
SelectChannel(channelId.Value);
|
SelectChannel(channelId.Value);
|
||||||
|
_adminWindow?.Open();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
EnsurePlain(channelId.Value);
|
EnsurePlain(channelId.Value);
|
||||||
|
_plainWindow?.Open();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Close()
|
public void Close()
|
||||||
|
|||||||
@@ -120,16 +120,8 @@ namespace Content.Client.Administration.UI
|
|||||||
|
|
||||||
public void OnBwoink(NetUserId channel)
|
public void OnBwoink(NetUserId channel)
|
||||||
{
|
{
|
||||||
var open = IsOpen;
|
|
||||||
Open();
|
|
||||||
|
|
||||||
ChannelSelector.RefreshDecorators();
|
ChannelSelector.RefreshDecorators();
|
||||||
ChannelSelector.Sort();
|
ChannelSelector.Sort();
|
||||||
|
|
||||||
if (!open)
|
|
||||||
{
|
|
||||||
SelectChannel(channel);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SelectChannel(NetUserId channel)
|
public void SelectChannel(NetUserId channel)
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ public interface IButtonBarView
|
|||||||
|
|
||||||
// Info top button
|
// Info top button
|
||||||
event Action InfoButtonPressed;
|
event Action InfoButtonPressed;
|
||||||
|
void SetInfoRed(bool value);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed partial class GameHud
|
internal sealed partial class GameHud
|
||||||
@@ -321,4 +322,12 @@ internal sealed partial class GameHud
|
|||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public event Action? InfoButtonPressed;
|
public event Action? InfoButtonPressed;
|
||||||
|
|
||||||
|
public void SetInfoRed(bool value)
|
||||||
|
{
|
||||||
|
if (value)
|
||||||
|
_buttonInfo.StyleClasses.Add(TopButton.StyleClassRedTopButton);
|
||||||
|
else
|
||||||
|
_buttonInfo.StyleClasses.Remove(TopButton.StyleClassRedTopButton);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user