Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 71 additions & 51 deletions Intersect.Client.Core/Interface/Game/Admin/AdminWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,15 @@ namespace Intersect.Client.Interface.Game.Admin;

public partial class AdminWindow : WindowControl
{
private readonly TextBox _textboxName;
private readonly Checkbox _checkboxChronological;
private readonly ComboBox _dropdownAccess;
private BanMuteBox? _banOrMuteWindow;
private readonly ComboBox _dropdownSprite;
public ImagePanel _spritePanel;
private readonly ComboBox _dropdownFace;
public ImagePanel _facePanel;
private readonly Checkbox _checkboxChronological;
private readonly ImagePanel _facePanel;
private readonly ImagePanel _spritePanel;
private readonly TextBox _textboxName;

private BanMuteBox? _banOrMuteWindow;
private TreeControl? _mapList;

public AdminWindow(Base gameCanvas) : base(
Expand All @@ -35,7 +36,7 @@ public AdminWindow(Base gameCanvas) : base(
nameof(AdminWindow)
)
{
DisableResizing();
IsResizable = false;
MinimumSize = new Point(320, 320);
Margin = Margin.Zero;
Padding = Padding.Zero;
Expand All @@ -53,25 +54,16 @@ public AdminWindow(Base gameCanvas) : base(
{
Text = Strings.Admin.Access,
};
_dropdownAccess = new ComboBox(this, "DropdownAccess");
_dropdownAccess = new ComboBox(this, name: nameof(_dropdownAccess));
_ = _dropdownAccess.AddItem(Strings.Admin.Access0, userData: "None");
_ = _dropdownAccess.AddItem(Strings.Admin.Access1, userData: "Moderator");
_ = _dropdownAccess.AddItem(Strings.Admin.Access2, userData: "Admin");

var buttonSetPower = new Button(this, "ButtonSetPower")
{
Text = Strings.Admin.SetPower,
};
buttonSetPower.Clicked += (s, e) =>
{
if (_textboxName.Text.Trim().Length > 0)
{
var power = _dropdownAccess.SelectedItem.UserData.ToString();
if (!string.IsNullOrEmpty(power) && power.Trim().Length > 0)
{
PacketSender.SendAdminAction(new SetAccessAction(_textboxName.Text, power));
}
}
};
buttonSetPower.Clicked += OnButtonSetPowerOnClicked;

#region Quick Admin Actions

Expand All @@ -80,9 +72,9 @@ public AdminWindow(Base gameCanvas) : base(
{
Text = Strings.Admin.Warp2Me,
};
buttonWarpToMe.Clicked += (s, e) =>
buttonWarpToMe.Clicked += (_, _) =>
{
if (_textboxName.Text.Trim().Length > 0)
if (_textboxName.Text?.Trim().Length > 0)
{
PacketSender.SendAdminAction(new WarpToMeAction(_textboxName.Text));
}
Expand All @@ -93,9 +85,9 @@ public AdminWindow(Base gameCanvas) : base(
{
Text = Strings.Admin.WarpMe2,
};
buttonWarpMeTo.Clicked += (s, e) =>
buttonWarpMeTo.Clicked += (_, _) =>
{
if (_textboxName.Text.Trim().Length > 0)
if (_textboxName.Text?.Trim().Length > 0)
{
PacketSender.SendAdminAction(new WarpMeToAction(_textboxName.Text));
}
Expand All @@ -106,7 +98,7 @@ public AdminWindow(Base gameCanvas) : base(
{
Text = Strings.Admin.OverworldReturn,
};
buttonOverworldReturn.Clicked += (s, e) =>
buttonOverworldReturn.Clicked += (_, _) =>
{
if (!string.IsNullOrEmpty(_textboxName.Text))
{
Expand All @@ -119,9 +111,9 @@ public AdminWindow(Base gameCanvas) : base(
{
Text = Strings.Admin.Kick,
};
buttonKick.Clicked += (s, e) =>
buttonKick.Clicked += (_, _) =>
{
if (_textboxName.Text.Trim().Length > 0)
if (_textboxName.Text?.Trim().Length > 0)
{
PacketSender.SendAdminAction(new KickAction(_textboxName.Text));
}
Expand All @@ -132,9 +124,9 @@ public AdminWindow(Base gameCanvas) : base(
{
Text = Strings.Admin.Kill,
};
buttonKill.Clicked += (s, e) =>
buttonKill.Clicked += (_, _) =>
{
if (_textboxName.Text.Trim().Length > 0)
if (_textboxName.Text?.Trim().Length > 0)
{
PacketSender.SendAdminAction(new KillAction(_textboxName.Text));
}
Expand All @@ -153,13 +145,13 @@ public AdminWindow(Base gameCanvas) : base(
};
buttonUnban.Clicked += (s, e) =>
{
if (_textboxName.Text.Trim().Length > 0)
if (_textboxName.Text?.Trim().Length > 0)
{
_ = new InputBox(
Strings.Admin.UnbanCaption.ToString(_textboxName.Text),
Strings.Admin.UnbanPrompt.ToString(_textboxName.Text),
InputBox.InputType.YesNo,
(s, e) => PacketSender.SendAdminAction(new UnbanAction(_textboxName.Text))
(_, _) => PacketSender.SendAdminAction(new UnbanAction(_textboxName.Text))
);
}
};
Expand All @@ -177,13 +169,13 @@ public AdminWindow(Base gameCanvas) : base(
};
buttonUnmute.Clicked += (s, e) =>
{
if (_textboxName.Text.Trim().Length > 0)
if (_textboxName.Text?.Trim().Length > 0)
{
_ = new InputBox(
Strings.Admin.UnmuteCaption.ToString(_textboxName.Text),
Strings.Admin.UnmutePrompt.ToString(_textboxName.Text),
InputBox.InputType.YesNo,
(s, e) => PacketSender.SendAdminAction(new UnmuteAction(_textboxName.Text))
(_, _) => PacketSender.SendAdminAction(new UnmuteAction(_textboxName.Text))
);
}
};
Expand Down Expand Up @@ -212,9 +204,9 @@ public AdminWindow(Base gameCanvas) : base(
{
Text = Strings.Admin.SetSprite,
};
buttonSetSprite.Clicked += (s, e) =>
buttonSetSprite.Clicked += (_, _) =>
{
if (_textboxName.Text.Trim().Length > 0)
if (_textboxName.Text?.Trim().Length > 0)
{
PacketSender.SendAdminAction(new SetSpriteAction(_textboxName.Text, _dropdownSprite.Text));
}
Expand Down Expand Up @@ -243,9 +235,9 @@ public AdminWindow(Base gameCanvas) : base(
{
Text = Strings.Admin.SetFace,
};
buttonSetFace.Clicked += (s, e) =>
buttonSetFace.Clicked += (_, _) =>
{
if (_textboxName.Text.Trim().Length > 0)
if (_textboxName.Text?.Trim().Length > 0)
{
PacketSender.SendAdminAction(new SetFaceAction(_textboxName.Text, _dropdownFace.Text));
}
Expand All @@ -263,16 +255,33 @@ public AdminWindow(Base gameCanvas) : base(
};
_checkboxChronological = new Checkbox(this, "CheckboxChronological");
_checkboxChronological.SetToolTipText(Strings.Admin.ChronologicalTip);
_checkboxChronological.CheckChanged += (s, e) => UpdateMapList();
_checkboxChronological.CheckChanged += (_, _) => UpdateMapList();
_ = new Label(this, "LabelChronological")
{
Text = Strings.Admin.Chronological,
};

LoadJsonUi(UI.InGame, Graphics.Renderer?.GetResolutionString(), true);
LoadJsonUi(UI.InGame, Graphics.Renderer?.GetResolutionString(), saveOutput: true);
UpdateMapList();
}

private void OnButtonSetPowerOnClicked(Base @base, MouseButtonState mouseButtonState)
{
var name = _textboxName.Text?.Trim();
if (name is null or { Length: < 1 })
{
return;
}

var power = _dropdownAccess.SelectedItem?.UserData.ToString()?.Trim();
if (power is null or { Length: < 1 })
{
return;
}

PacketSender.SendAdminAction(new SetAccessAction(name, power));
}

public void SetName(string name)
{
_textboxName.Text = name;
Expand All @@ -290,7 +299,7 @@ private void UpdateMapList()
Width = Width - 8,
Height = mapListHeight,
MaximumSize = new Point(4096, 999999),
Font = Current?.GetFont("sourcesansproblack", 10),
Font = Current.GetFont("sourcesansproblack", 10),
TextColorOverride = Color.White,
};
_mapList.SelectionChanged += MapList_SelectionChanged;
Expand Down Expand Up @@ -343,7 +352,7 @@ private void banButton_Clicked(Base sender, MouseButtonState arguments)
return;
}

var name = _textboxName.Text.Trim();
var name = _textboxName.Text?.Trim();
if (string.Equals(name, Globals.Me?.Name, StringComparison.CurrentCultureIgnoreCase))
{
return;
Expand All @@ -352,7 +361,7 @@ private void banButton_Clicked(Base sender, MouseButtonState arguments)
_banOrMuteWindow = new BanMuteBox(
Strings.Admin.BanCaption.ToString(name),
Strings.Admin.BanPrompt.ToString(_textboxName.Text),
(s, e) =>
(_, _) =>
{
PacketSender.SendAdminAction(
new BanAction(
Expand All @@ -375,7 +384,7 @@ private void muteButton_Clicked(Base sender, MouseButtonState arguments)
return;
}

var name = _textboxName.Text.Trim();
var name = _textboxName.Text?.Trim();
if (string.Equals(name, Globals.Me?.Name, StringComparison.CurrentCultureIgnoreCase))
{
return;
Expand All @@ -384,7 +393,7 @@ private void muteButton_Clicked(Base sender, MouseButtonState arguments)
_banOrMuteWindow = new BanMuteBox(
Strings.Admin.MuteCaption.ToString(name),
Strings.Admin.MutePrompt.ToString(_textboxName.Text),
(s, e) =>
(_, _) =>
{
PacketSender.SendAdminAction(
new MuteAction(
Expand All @@ -402,15 +411,20 @@ private void muteButton_Clicked(Base sender, MouseButtonState arguments)

private void _dropdownSprite_ItemSelected(Base sender, ItemSelectedEventArgs arguments)
{
_spritePanel.Texture = Globals.ContentManager.GetTexture(TextureType.Entity, _dropdownSprite.Text);
if (_dropdownSprite.Text is not { } spriteName)
{
return;
}

if (_spritePanel.Texture == null)
var spriteTexture = Globals.ContentManager.GetTexture(TextureType.Entity, spriteName);

if (spriteTexture == null)
{
return;
}

var textFrameWidth = _spritePanel.Texture.Width / Options.Instance.Sprites.NormalFrames;
var textFrameHeight = _spritePanel.Texture.Height / Options.Instance.Sprites.Directions;
var textFrameWidth = spriteTexture.Width / Options.Instance.Sprites.NormalFrames;
var textFrameHeight = spriteTexture.Height / Options.Instance.Sprites.Directions;
_spritePanel.SetTextureRect(
0,
0,
Expand All @@ -423,15 +437,21 @@ private void _dropdownSprite_ItemSelected(Base sender, ItemSelectedEventArgs arg

private void _dropdownFace_ItemSelected(Base sender, ItemSelectedEventArgs arguments)
{
_facePanel.Texture = Globals.ContentManager.GetTexture(TextureType.Face, _dropdownFace.Text);
if (_dropdownFace.Text is not { } faceName)
{
return;
}

var faceTexture = Globals.ContentManager.GetTexture(TextureType.Face, faceName);
_facePanel.Texture = faceTexture;

if (_facePanel.Texture == null)
if (faceTexture == null)
{
return;
}

var textFrameWidth = _facePanel.Texture.Width;
var textFrameHeight = _facePanel.Texture.Height;
var textFrameWidth = faceTexture.Width;
var textFrameHeight = faceTexture.Height;
_facePanel.SetTextureRect(
0,
0,
Expand All @@ -448,7 +468,7 @@ private void MapList_SelectionChanged(Base sender, EventArgs arguments)
{
ApplicationContext.Context.Value?.Logger.LogDebug(
"MapList selection triggered by a sender of type {SenderType} instead of a {TreeNodeType}",
sender?.GetType().GetName(qualified: true) ?? "null",
sender.GetType().GetName(qualified: true),
typeof(TreeNode).GetName(qualified: true)
);
return;
Expand Down
Loading