Fun commands done

This commit is contained in:
Valentin Barat
2024-02-12 22:01:09 +01:00
parent 8750a66eef
commit eb9519c156
2 changed files with 63 additions and 12 deletions

View File

@@ -9,6 +9,7 @@ using CounterStrikeSharp.API.Modules.Memory;
using CounterStrikeSharp.API.Modules.Utils;
using System.Collections.Concurrent;
using System.Text;
using CounterStrikeSharp.API.Modules.Entities.Constants;
namespace CS2_SimpleAdmin
{
@@ -108,21 +109,36 @@ namespace CS2_SimpleAdmin
if (!player.IsBot && player.SteamID.ToString().Length != 17)
return;
player.GiveNamedItem(weaponName);
GiveWeapon(caller, player, weaponName, callerName);
});
}
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
public void GiveWeapon(CCSPlayerController? caller, CCSPlayerController player, CsItem weapon, string callerName = null)
{
player.GiveNamedItem(weapon);
SubGiveWeapon(caller, player, weapon.ToString(), callerName);
}
public void GiveWeapon(CCSPlayerController? caller, CCSPlayerController player, string weaponName, string callerName = null)
{
player.GiveNamedItem(weaponName);
SubGiveWeapon(caller, player, weaponName, callerName);
}
public void SubGiveWeapon(CCSPlayerController? caller, CCSPlayerController player, string weaponName, string callerName = null)
{
callerName ??= caller == null ? "Console" : caller.PlayerName;
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
{
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
{
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
using (new WithTemporaryCulture(_player.GetLanguage()))
{
using (new WithTemporaryCulture(_player.GetLanguage()))
{
StringBuilder sb = new(_localizer!["sa_prefix"]);
sb.Append(_localizer["sa_admin_give_message", callerName, player.PlayerName, weaponName]);
_player.PrintToChat(sb.ToString());
}
StringBuilder sb = new(_localizer!["sa_prefix"]);
sb.Append(_localizer["sa_admin_give_message", callerName, player.PlayerName, weaponName]);
_player.PrintToChat(sb.ToString());
}
}
});
}
}
[ConsoleCommand("css_strip")]

View File

@@ -1,11 +1,32 @@
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Entities.Constants;
using CounterStrikeSharp.API.Modules.Menu;
namespace CS2_SimpleAdmin.Menus
{
public static class FunActionsMenu
{
private static Dictionary<int, CsItem> _weaponsCache = null;
private static Dictionary<int, CsItem> GetWeaponsCache
{
get
{
if (_weaponsCache == null)
{
Array weaponsArray = Enum.GetValues(typeof(CsItem));
// avoid duplicates in the menu
_weaponsCache = new();
foreach (CsItem item in weaponsArray)
{
_weaponsCache[(int)item] = item;
}
}
return _weaponsCache;
}
}
public static void OpenMenu(CCSPlayerController admin)
{
if (admin == null || admin.IsValid == false)
@@ -71,7 +92,21 @@ namespace CS2_SimpleAdmin.Menus
private static void GiveWeaponMenu(CCSPlayerController admin, CCSPlayerController player)
{
// TODO: show weapon menu
BaseMenu menu = AdminMenu.CreateMenu("Give Weapon");
foreach (KeyValuePair<int, CsItem> weapon in GetWeaponsCache)
{
menu.AddMenuOption(weapon.Value.ToString(), (_, _) => { GiveWeapon(admin, player, weapon.Value); });
}
AdminMenu.OpenMenu(admin, menu);
}
private static void GiveWeapon(CCSPlayerController admin, CCSPlayerController player, CsItem weaponValue)
{
CS2_SimpleAdmin.Instance.GiveWeapon(admin, player, weaponValue);
}
private static void StripWeapons(CCSPlayerController admin, CCSPlayerController player)
@@ -128,7 +163,7 @@ namespace CS2_SimpleAdmin.Menus
new Tuple<string, float>("1", 1),
new Tuple<string, float>("2", 2),
new Tuple<string, float>("3", 3),
new Tuple<string, float>("4", 4),
new Tuple<string, float>("4", 4)
};
BaseMenu menu = AdminMenu.CreateMenu("Set Speed");