- Added `css_rename`
- Added `css_silence`
- Added `css_addsilence`
- Added `css_unsilence`
- PlayerPenaltyManager class
- Fix for invalid players

New commands localized only for `pl` and `en`, if u can please make pr for other languages
This commit is contained in:
Dawid Bepierszcz
2024-02-11 03:24:27 +01:00
parent 01ceb104c5
commit 79bbe0f4c5
9 changed files with 793 additions and 194 deletions

View File

@@ -2,9 +2,12 @@
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Entities;
using CounterStrikeSharp.API.Modules.Memory;
using CounterStrikeSharp.API.Modules.Menu;
using CounterStrikeSharp.API.Modules.Utils;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Text;
using System.Text.RegularExpressions;
namespace CS2_SimpleAdmin
@@ -33,6 +36,12 @@ namespace CS2_SimpleAdmin
);
}
public static List<CCSPlayerController> GetValidPlayers()
{
return Utilities.GetPlayers().FindAll(p => p != null && p.IsValid && p.SteamID.ToString().Length == 17 && p.Connected == PlayerConnectedState.PlayerConnected && !p.IsBot && !p.IsHLTV);
}
public static bool IsValidSteamID64(string input)
{
string pattern = @"^\d{17}$";
@@ -154,4 +163,27 @@ namespace CS2_SimpleAdmin
}
}
}
public class SchemaString<SchemaClass> : NativeObject where SchemaClass : NativeObject
{
public SchemaString(SchemaClass instance, string member) : base(Schema.GetSchemaValue<nint>(instance.Handle, typeof(SchemaClass).Name!, member))
{ }
public unsafe void Set(string str)
{
byte[] bytes = this.GetStringBytes(str);
for (int i = 0; i < bytes.Length; i++)
{
Unsafe.Write((void*)(this.Handle.ToInt64() + i), bytes[i]);
}
Unsafe.Write((void*)(this.Handle.ToInt64() + bytes.Length), 0);
}
private byte[] GetStringBytes(string str)
{
return Encoding.ASCII.GetBytes(str);
}
}
}