mirror of
https://github.com/daffyyyy/CS2-SimpleAdmin.git
synced 2026-03-07 15:37:17 +00:00
Improved player selection in menus
This commit is contained in:
@@ -24,9 +24,9 @@ namespace CS2_SimpleAdmin.Menus
|
|||||||
// TODO: Localize options
|
// TODO: Localize options
|
||||||
// options added in order
|
// options added in order
|
||||||
|
|
||||||
options.Add(new ChatMenuOptionData("Add Admin", () => PlayersMenu.OpenAliveMenu(admin, "Add Admin", AddAdminMenu)));
|
options.Add(new ChatMenuOptionData("Add Admin", () => PlayersMenu.OpenRealPlayersMenu(admin, "Add Admin", AddAdminMenu)));
|
||||||
options.Add(new ChatMenuOptionData("Remove Admin", () => PlayersMenu.OpenAliveMenu(admin, "Remove Admin", RemoveAdmin, player => player != admin && admin.CanTarget(player))));
|
options.Add(new ChatMenuOptionData("Remove Admin", () => PlayersMenu.OpenAdminPlayersMenu(admin, "Remove Admin", RemoveAdmin, player => player != admin && admin.CanTarget(player))));
|
||||||
options.Add(new ChatMenuOptionData("Reload Admins", ReloadAdmins));
|
options.Add(new ChatMenuOptionData("Reload Admins", () => ReloadAdmins(admin)));
|
||||||
|
|
||||||
foreach (ChatMenuOptionData menuOptionData in options)
|
foreach (ChatMenuOptionData menuOptionData in options)
|
||||||
{
|
{
|
||||||
@@ -77,9 +77,9 @@ namespace CS2_SimpleAdmin.Menus
|
|||||||
CS2_SimpleAdmin.Instance.RemoveAdmin(admin, player.SteamID.ToString());
|
CS2_SimpleAdmin.Instance.RemoveAdmin(admin, player.SteamID.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void ReloadAdmins()
|
private static void ReloadAdmins(CCSPlayerController admin)
|
||||||
{
|
{
|
||||||
CS2_SimpleAdmin.Instance.ReloadAdmins();
|
CS2_SimpleAdmin.Instance.ReloadAdmins(admin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -44,14 +44,14 @@ namespace CS2_SimpleAdmin.Menus
|
|||||||
|
|
||||||
if (hasBan)
|
if (hasBan)
|
||||||
{
|
{
|
||||||
options.Add(new ChatMenuOptionData("Ban", () => PlayersMenu.OpenMenu(admin, "Ban", (admin, player) => DurationMenu.OpenMenu(admin, $"Ban: {player.PlayerName}", player, BanMenu))));
|
options.Add(new ChatMenuOptionData("Ban", () => PlayersMenu.OpenRealPlayersMenu(admin, "Ban", (admin, player) => DurationMenu.OpenMenu(admin, $"Ban: {player.PlayerName}", player, BanMenu))));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasChat)
|
if (hasChat)
|
||||||
{
|
{
|
||||||
options.Add(new ChatMenuOptionData("Gag", () => PlayersMenu.OpenMenu(admin, "Gag", (admin, player) => DurationMenu.OpenMenu(admin, $"Gag: {player.PlayerName}", player, GagMenu))));
|
options.Add(new ChatMenuOptionData("Gag", () => PlayersMenu.OpenRealPlayersMenu(admin, "Gag", (admin, player) => DurationMenu.OpenMenu(admin, $"Gag: {player.PlayerName}", player, GagMenu))));
|
||||||
options.Add(new ChatMenuOptionData("Mute", () => PlayersMenu.OpenMenu(admin, "Mute", (admin, player) => DurationMenu.OpenMenu(admin, $"Mute: {player.PlayerName}", player, MuteMenu))));
|
options.Add(new ChatMenuOptionData("Mute", () => PlayersMenu.OpenRealPlayersMenu(admin, "Mute", (admin, player) => DurationMenu.OpenMenu(admin, $"Mute: {player.PlayerName}", player, MuteMenu))));
|
||||||
options.Add(new ChatMenuOptionData("Silence", () => PlayersMenu.OpenMenu(admin, "Silence", (admin, player) => DurationMenu.OpenMenu(admin, $"Silence: {player.PlayerName}", player, SilenceMenu))));
|
options.Add(new ChatMenuOptionData("Silence", () => PlayersMenu.OpenRealPlayersMenu(admin, "Silence", (admin, player) => DurationMenu.OpenMenu(admin, $"Silence: {player.PlayerName}", player, SilenceMenu))));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasKick)
|
if (hasKick)
|
||||||
|
|||||||
@@ -1,10 +1,21 @@
|
|||||||
using CounterStrikeSharp.API.Core;
|
using CounterStrikeSharp.API.Core;
|
||||||
|
using CounterStrikeSharp.API.Modules.Admin;
|
||||||
using CounterStrikeSharp.API.Modules.Menu;
|
using CounterStrikeSharp.API.Modules.Menu;
|
||||||
|
|
||||||
namespace CS2_SimpleAdmin.Menus
|
namespace CS2_SimpleAdmin.Menus
|
||||||
{
|
{
|
||||||
public static class PlayersMenu
|
public static class PlayersMenu
|
||||||
{
|
{
|
||||||
|
public static void OpenRealPlayersMenu(CCSPlayerController admin, string menuName, Action<CCSPlayerController, CCSPlayerController> onSelectAction, Func<CCSPlayerController, bool>? enableFilter = null)
|
||||||
|
{
|
||||||
|
OpenMenu(admin, menuName, onSelectAction, p => p.IsBot == false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void OpenAdminPlayersMenu(CCSPlayerController admin, string menuName, Action<CCSPlayerController, CCSPlayerController> onSelectAction, Func<CCSPlayerController, bool>? enableFilter = null)
|
||||||
|
{
|
||||||
|
OpenMenu(admin, menuName, onSelectAction, p => AdminManager.GetPlayerAdminData(p)?.Flags?.Count > 0);
|
||||||
|
}
|
||||||
|
|
||||||
public static void OpenAliveMenu(CCSPlayerController admin, string menuName, Action<CCSPlayerController, CCSPlayerController> onSelectAction, Func<CCSPlayerController, bool>? enableFilter = null)
|
public static void OpenAliveMenu(CCSPlayerController admin, string menuName, Action<CCSPlayerController, CCSPlayerController> onSelectAction, Func<CCSPlayerController, bool>? enableFilter = null)
|
||||||
{
|
{
|
||||||
OpenMenu(admin, menuName, onSelectAction, p => p.PawnIsAlive);
|
OpenMenu(admin, menuName, onSelectAction, p => p.PawnIsAlive);
|
||||||
@@ -23,9 +34,10 @@ namespace CS2_SimpleAdmin.Menus
|
|||||||
foreach (CCSPlayerController player in players)
|
foreach (CCSPlayerController player in players)
|
||||||
{
|
{
|
||||||
string optionName = player.PlayerName;
|
string optionName = player.PlayerName;
|
||||||
bool enabled = admin.CanTarget(player);
|
|
||||||
if (enableFilter != null && enableFilter(player) == false)
|
if (enableFilter != null && enableFilter(player) == false)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
bool enabled = admin.CanTarget(player);
|
||||||
menu.AddMenuOption(optionName, (_, _) => { onSelectAction?.Invoke(admin, player); }, enabled == false);
|
menu.AddMenuOption(optionName, (_, _) => { onSelectAction?.Invoke(admin, player); }, enabled == false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user