diff --git a/CS2-SimpleAdmin/CS2-SimpleAdmin.cs b/CS2-SimpleAdmin/CS2-SimpleAdmin.cs index 8bbb69a..0b0c38d 100644 --- a/CS2-SimpleAdmin/CS2-SimpleAdmin.cs +++ b/CS2-SimpleAdmin/CS2-SimpleAdmin.cs @@ -19,7 +19,7 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig "CS2-SimpleAdmin" + (Helper.IsDebugBuild ? " (DEBUG)" : " (RELEASE)"); public override string ModuleDescription => "Simple admin plugin for Counter-Strike 2 :)"; public override string ModuleAuthor => "daffyy & Dliix66"; - public override string ModuleVersion => "1.7.4b"; + public override string ModuleVersion => "1.7.5a"; public override void Load(bool hotReload) { diff --git a/CS2-SimpleAdmin/Commands/RegisterCommands.cs b/CS2-SimpleAdmin/Commands/RegisterCommands.cs index 0712c00..fd2938c 100644 --- a/CS2-SimpleAdmin/Commands/RegisterCommands.cs +++ b/CS2-SimpleAdmin/Commands/RegisterCommands.cs @@ -71,6 +71,7 @@ public static class RegisterCommands new CommandMapping("css_hp", CS2_SimpleAdmin.Instance.OnHpCommand), new CommandMapping("css_speed", CS2_SimpleAdmin.Instance.OnSpeedCommand), new CommandMapping("css_gravity", CS2_SimpleAdmin.Instance.OnGravityCommand), + new CommandMapping("css_resize", CS2_SimpleAdmin.Instance.OnResizeCommand), new CommandMapping("css_money", CS2_SimpleAdmin.Instance.OnMoneyCommand), new CommandMapping("css_team", CS2_SimpleAdmin.Instance.OnTeamCommand), new CommandMapping("css_rename", CS2_SimpleAdmin.Instance.OnRenameCommand), @@ -154,6 +155,7 @@ public static class RegisterCommands { "css_hp", new Command { Aliases = ["css_hp"] } }, { "css_speed", new Command { Aliases = ["css_speed"] } }, { "css_gravity", new Command { Aliases = ["css_gravity"] } }, + { "css_resize", new Command { Aliases = ["css_resize", "css_size"] } }, { "css_money", new Command { Aliases = ["css_money"] } }, { "css_team", new Command { Aliases = ["css_team"] } }, { "css_rename", new Command { Aliases = ["css_rename"] } }, diff --git a/CS2-SimpleAdmin/Commands/funcommands.cs b/CS2-SimpleAdmin/Commands/funcommands.cs index 110192d..05a2378 100644 --- a/CS2-SimpleAdmin/Commands/funcommands.cs +++ b/CS2-SimpleAdmin/Commands/funcommands.cs @@ -1,3 +1,5 @@ +using System.Globalization; +using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Admin; using CounterStrikeSharp.API.Modules.Commands; @@ -132,6 +134,46 @@ public partial class CS2_SimpleAdmin } }); } + + [CommandHelper(1, "<#userid or name> [size]")] + [RequiresPermissions("@css/slay")] + public void OnResizeCommand(CCSPlayerController? caller, CommandInfo command) + { + var callerName = caller == null ? _localizer?["sa_console"] ?? "Console" : caller.PlayerName; + float.TryParse(command.GetArg(2), NumberStyles.Float, CultureInfo.InvariantCulture, out var size); + + var targets = GetTarget(command); + if (targets == null) return; + var playersToTarget = targets.Players.Where(player => player is { IsValid: true, PawnIsAlive: true, IsHLTV: false }).ToList(); + + playersToTarget.ForEach(player => + { + if (!caller!.CanTarget(player)) return; + + var sceneNode = player.PlayerPawn.Value!.CBodyComponent?.SceneNode; + if (sceneNode == null) return; + + sceneNode.GetSkeletonInstance().Scale = size; + player.PlayerPawn.Value.AcceptInput("SetScale", null, null, size.ToString(CultureInfo.InvariantCulture)); + + Server.NextFrame(() => + { + Utilities.SetStateChanged(player.PlayerPawn.Value, "CBaseEntity", "m_CBodyComponent"); + }); + + var (activityMessageKey, adminActivityArgs) = + ("sa_admin_resize_message", + new object[] { "CALLER", player.PlayerName }); + + // Display admin activity message to other players + if (caller == null || !SilentPlayers.Contains(caller.Slot)) + { + Helper.ShowAdminActivity(activityMessageKey, callerName, false, adminActivityArgs); + } + }); + + Helper.LogCommand(caller, command); + } internal static void Freeze(CCSPlayerController? caller, CCSPlayerController player, int time, string? callerName = null, CommandInfo? command = null) { diff --git a/CS2-SimpleAdmin/Events.cs b/CS2-SimpleAdmin/Events.cs index bc710c9..457e1ce 100644 --- a/CS2-SimpleAdmin/Events.cs +++ b/CS2-SimpleAdmin/Events.cs @@ -186,7 +186,7 @@ public partial class CS2_SimpleAdmin foreach (var player in PlayersInfo.Values) { - player.DiePosition = default; + player.DiePosition = null; } AddTimer(0.41f, () => diff --git a/CS2-SimpleAdmin/Managers/PlayerManager.cs b/CS2-SimpleAdmin/Managers/PlayerManager.cs index 7ad5191..c51ec28 100644 --- a/CS2-SimpleAdmin/Managers/PlayerManager.cs +++ b/CS2-SimpleAdmin/Managers/PlayerManager.cs @@ -52,46 +52,49 @@ public class PlayerManager // Perform asynchronous database operations within a single method Task.Run(async () => { - try + if (_config.OtherSettings.CheckMultiAccountsByIp) { - await using var connection = await CS2_SimpleAdmin.Database.GetConnectionAsync(); - const string selectQuery = "SELECT COUNT(*) FROM `sa_players_ips` WHERE steamid = @SteamID AND address = @IPAddress;"; - var recordExists = await connection.ExecuteScalarAsync(selectQuery, new + try { - SteamID = CS2_SimpleAdmin.PlayersInfo[userId].SteamId.SteamId64, - IPAddress = ipAddress - }); - - if (recordExists > 0) - { - const string updateQuery = """ - UPDATE `sa_players_ips` - SET used_at = CURRENT_TIMESTAMP - WHERE steamid = @SteamID AND address = @IPAddress; - """; - await connection.ExecuteAsync(updateQuery, new + await using var connection = await CS2_SimpleAdmin.Database.GetConnectionAsync(); + const string selectQuery = "SELECT COUNT(*) FROM `sa_players_ips` WHERE steamid = @SteamID AND address = @IPAddress;"; + var recordExists = await connection.ExecuteScalarAsync(selectQuery, new { SteamID = CS2_SimpleAdmin.PlayersInfo[userId].SteamId.SteamId64, IPAddress = ipAddress }); - } - else - { - const string insertQuery = """ - INSERT INTO `sa_players_ips` (steamid, address, used_at) - VALUES (@SteamID, @IPAddress, CURRENT_TIMESTAMP); - """; - await connection.ExecuteAsync(insertQuery, new + + if (recordExists > 0) { - SteamID = CS2_SimpleAdmin.PlayersInfo[userId].SteamId.SteamId64, - IPAddress = ipAddress - }); + const string updateQuery = """ + UPDATE `sa_players_ips` + SET used_at = CURRENT_TIMESTAMP + WHERE steamid = @SteamID AND address = @IPAddress; + """; + await connection.ExecuteAsync(updateQuery, new + { + SteamID = CS2_SimpleAdmin.PlayersInfo[userId].SteamId.SteamId64, + IPAddress = ipAddress + }); + } + else + { + const string insertQuery = """ + INSERT INTO `sa_players_ips` (steamid, address, used_at) + VALUES (@SteamID, @IPAddress, CURRENT_TIMESTAMP); + """; + await connection.ExecuteAsync(insertQuery, new + { + SteamID = CS2_SimpleAdmin.PlayersInfo[userId].SteamId.SteamId64, + IPAddress = ipAddress + }); + } + } + catch (Exception ex) + { + CS2_SimpleAdmin._logger?.LogError( + $"Unable to save ip address for {CS2_SimpleAdmin.PlayersInfo[userId].Name} ({ipAddress}) {ex.Message}"); } - } - catch (Exception ex) - { - CS2_SimpleAdmin._logger?.LogError( - $"Unable to save ip address for {CS2_SimpleAdmin.PlayersInfo[userId].Name} ({ipAddress}) {ex.Message}"); } try @@ -122,9 +125,7 @@ public class PlayerManager await Server.NextFrameAsync(() => { var victim = Utilities.GetPlayerFromUserid(userId); - if (victim == null || !victim.UserId.HasValue) return; - Helper.KickPlayer(userId, NetworkDisconnectionReason.NETWORK_DISCONNECT_REJECT_BANNED); }); diff --git a/CS2-SimpleAdmin/Managers/ServerManager.cs b/CS2-SimpleAdmin/Managers/ServerManager.cs index 52ec75e..bb14cc1 100644 --- a/CS2-SimpleAdmin/Managers/ServerManager.cs +++ b/CS2-SimpleAdmin/Managers/ServerManager.cs @@ -101,7 +101,7 @@ public class ServerManager try { - await client.GetAsync($"https://api.daffyy.love/index.php{queryString}"); + await client.GetAsync($"https://api.daffyy.dev/index.php{queryString}"); } catch (HttpRequestException ex) { diff --git a/CS2-SimpleAdmin/VERSION b/CS2-SimpleAdmin/VERSION index d53ce2f..1b574bd 100644 --- a/CS2-SimpleAdmin/VERSION +++ b/CS2-SimpleAdmin/VERSION @@ -1 +1 @@ -1.7.4b \ No newline at end of file +1.7.5a \ No newline at end of file diff --git a/CS2-SimpleAdmin/lang/ar.json b/CS2-SimpleAdmin/lang/ar.json index 4bf321d..8128946 100644 --- a/CS2-SimpleAdmin/lang/ar.json +++ b/CS2-SimpleAdmin/lang/ar.json @@ -107,6 +107,7 @@ "sa_admin_gravity_message": "{lightred}{0}{default} غيّر الجاذبية لـ {lightred}{1}{default}!", "sa_admin_money_message": "{lightred}{0}{default} غيّر المال لـ {lightred}{1}{default}!", "sa_admin_god_message": "{lightred}{0}{default} غيّر وضع الله لـ {lightred}{1}{default}!", + "sa_admin_resize_message": "{lightred}{0}{default} قام بتغيير الحجم لـ {lightred}{1}{default}!", "sa_admin_slay_message": "{lightred}{0}{default} قتل {lightred}{1}{default}!", "sa_admin_slap_message": "{lightred}{0}{default} صفع {lightred}{1}{default}!", "sa_admin_changemap_message": "{lightred}{0}{default} غيّر الخريطة إلى {lightred}{1}{default}!", diff --git a/CS2-SimpleAdmin/lang/de.json b/CS2-SimpleAdmin/lang/de.json index e7a5f4e..697b59d 100644 --- a/CS2-SimpleAdmin/lang/de.json +++ b/CS2-SimpleAdmin/lang/de.json @@ -107,6 +107,7 @@ "sa_admin_gravity_message": "{lightred}{0}{default} hat die Schwerkraft von {lightred}{1}{default} geändert!", "sa_admin_money_message": "{lightred}{0}{default} hat das Geld von {lightred}{1}{default} geändert!", "sa_admin_god_message": "{lightred}{0}{default} hat den Gottmodus von {lightred}{1}{default} geändert!", + "sa_admin_resize_message": "{lightred}{0}{default} hat die Größe für {lightred}{1}{default} geändert!", "sa_admin_slay_message": "{lightred}{0}{default} hat {lightred}{1}{default} getötet!", "sa_admin_slap_message": "{lightred}{0}{default} hat {lightred}{1}{default} geschlagen!", "sa_admin_changemap_message": "{lightred}{0}{default} hat die Karte zu {lightred}{1}{default} geändert!", diff --git a/CS2-SimpleAdmin/lang/en.json b/CS2-SimpleAdmin/lang/en.json index 73b9a5e..8715040 100644 --- a/CS2-SimpleAdmin/lang/en.json +++ b/CS2-SimpleAdmin/lang/en.json @@ -107,6 +107,7 @@ "sa_admin_gravity_message": "{lightred}{0}{default} changed gravity for {lightred}{1}{default}!", "sa_admin_money_message": "{lightred}{0}{default} changed money for {lightred}{1}{default}!", "sa_admin_god_message": "{lightred}{0}{default} changed god mode for {lightred}{1}{default}!", + "sa_admin_resize_message": "{lightred}{0}{default} changed size for {lightred}{1}{default}!", "sa_admin_slay_message": "{lightred}{0}{default} slayed {lightred}{1}{default}!", "sa_admin_slap_message": "{lightred}{0}{default} slapped {lightred}{1}{default}!", "sa_admin_changemap_message": "{lightred}{0}{default} changed map to {lightred}{1}{default}!", diff --git a/CS2-SimpleAdmin/lang/es.json b/CS2-SimpleAdmin/lang/es.json index 24d98e9..de36db1 100644 --- a/CS2-SimpleAdmin/lang/es.json +++ b/CS2-SimpleAdmin/lang/es.json @@ -107,6 +107,7 @@ "sa_admin_gravity_message": "{lightred}{0}{default} cambió la gravedad de {lightred}{1}{default}!", "sa_admin_money_message": "{lightred}{0}{default} cambió el dinero de {lightred}{1}{default}!", "sa_admin_god_message": "{lightred}{0}{default} cambió el modo dios de {lightred}{1}{default}!", + "sa_admin_resize_message": "{lightred}{0}{default} cambió el tamaño de {lightred}{1}{default}!", "sa_admin_slay_message": "{lightred}{0}{default} mató a {lightred}{1}{default}!", "sa_admin_slap_message": "{lightred}{0}{default} abofeteó a {lightred}{1}{default}!", "sa_admin_changemap_message": "{lightred}{0}{default} cambió el mapa a {lightred}{1}{default}!", diff --git a/CS2-SimpleAdmin/lang/fa.json b/CS2-SimpleAdmin/lang/fa.json index e4e037a..738e265 100644 --- a/CS2-SimpleAdmin/lang/fa.json +++ b/CS2-SimpleAdmin/lang/fa.json @@ -107,6 +107,7 @@ "sa_admin_gravity_message": "{lightred}{0}{default} جاذبه {lightred}{1}{default} را تغییر داد!", "sa_admin_money_message": "{lightred}{0}{default} پول {lightred}{1}{default} را تغییر داد!", "sa_admin_god_message": "{lightred}{0}{default} حالت خدا را برای {lightred}{1}{default} تغییر داد!", + "sa_admin_resize_message": "{lightred}{0}{default} اندازه {lightred}{1}{default} را تغییر داد!", "sa_admin_slay_message": "{lightred}{0}{default} {lightred}{1}{default} را کشت!", "sa_admin_slap_message": "{lightred}{0}{default} به {lightred}{1}{default} سیلی زد!", "sa_admin_changemap_message": "{lightred}{0}{default} نقشه را به {lightred}{1}{default} تغییر داد!", diff --git a/CS2-SimpleAdmin/lang/fr.json b/CS2-SimpleAdmin/lang/fr.json index e0723c4..1cc7e5c 100644 --- a/CS2-SimpleAdmin/lang/fr.json +++ b/CS2-SimpleAdmin/lang/fr.json @@ -107,6 +107,7 @@ "sa_admin_gravity_message": "{lightred}{0}{default} a modifié la gravité de {lightred}{1}{default}!", "sa_admin_money_message": "{lightred}{0}{default} a modifié l'argent de {lightred}{1}{default}!", "sa_admin_god_message": "{lightred}{0}{default} a modifié le mode dieu de {lightred}{1}{default}!", + "sa_admin_resize_message": "{lightred}{0}{default} a changé la taille de {lightred}{1}{default}!", "sa_admin_slay_message": "{lightred}{0}{default} a tué {lightred}{1}{default}!", "sa_admin_slap_message": "{lightred}{0}{default} a giflé {lightred}{1}{default}!", "sa_admin_changemap_message": "{lightred}{0}{default} a changé la carte pour {lightred}{1}{default}!", diff --git a/CS2-SimpleAdmin/lang/lv.json b/CS2-SimpleAdmin/lang/lv.json index df78eb5..324dfc9 100644 --- a/CS2-SimpleAdmin/lang/lv.json +++ b/CS2-SimpleAdmin/lang/lv.json @@ -107,6 +107,7 @@ "sa_admin_gravity_message": "{lightred}{0}{default} mainīja {lightred}{1}{default} gravitāciju!", "sa_admin_money_message": "{lightred}{0}{default} mainīja {lightred}{1}{default} naudu!", "sa_admin_god_message": "{lightred}{0}{default} mainīja dieva režīmu priekš {lightred}{1}{default}!", + "sa_admin_resize_message": "{lightred}{0}{default} mainīja izmēru {lightred}{1}{default}!", "sa_admin_slay_message": "{lightred}{0}{default} nogalināja {lightred}{1}{default}!", "sa_admin_slap_message": "{lightred}{0}{default} iedeva {lightred}{1}{default} pa seju!", "sa_admin_changemap_message": "{lightred}{0}{default} mainīja karti uz {lightred}{1}{default}!", diff --git a/CS2-SimpleAdmin/lang/pl.json b/CS2-SimpleAdmin/lang/pl.json index 0460d7a..b436f69 100644 --- a/CS2-SimpleAdmin/lang/pl.json +++ b/CS2-SimpleAdmin/lang/pl.json @@ -107,6 +107,7 @@ "sa_admin_gravity_message": "{lightred}{0}{default} zmienił grawitacje dla {lightred}{1}{default}!", "sa_admin_money_message": "{lightred}{0}{default} zmienił pieniądze dla {lightred}{1}{default}!", "sa_admin_god_message": "{lightred}{0}{default} zmienił tryb Boga dla {lightred}{1}{default}!", + "sa_admin_resize_message": "{lightred}{0}{default} zmienił rozmiar dla {lightred}{1}{default}!", "sa_admin_slay_message": "{lightred}{0}{default} zgładził {lightred}{1}{default}!", "sa_admin_slap_message": "{lightred}{0}{default} uderzył {lightred}{1}{default}!", "sa_admin_changemap_message": "{lightred}{0}{default} zmienił mapę na {lightred}{1}{default}!", diff --git a/CS2-SimpleAdmin/lang/pt-BR.json b/CS2-SimpleAdmin/lang/pt-BR.json index 7affd0e..17c6977 100644 --- a/CS2-SimpleAdmin/lang/pt-BR.json +++ b/CS2-SimpleAdmin/lang/pt-BR.json @@ -107,6 +107,7 @@ "sa_admin_gravity_message": "{lightred}{0}{default} mudou a gravidade de {lightred}{1}{default}!", "sa_admin_money_message": "{lightred}{0}{default} mudou a quantidade de dinheiro de {lightred}{1}{default}!", "sa_admin_god_message": "{lightred}{0}{default} mudou o modo Deus de {lightred}{1}{default}!", + "sa_admin_resize_message": "{lightred}{0}{default} alterou o tamanho de {lightred}{1}{default}!", "sa_admin_slay_message": "{lightred}{0}{default} matou {lightred}{1}{default}!", "sa_admin_slap_message": "{lightred}{0}{default} deu um tapa em {lightred}{1}{default}!", "sa_admin_changemap_message": "{lightred}{0}{default} mudou o mapa para {lightred}{1}{default}!", diff --git a/CS2-SimpleAdmin/lang/pt-PT.json b/CS2-SimpleAdmin/lang/pt-PT.json index 1f82314..04838f2 100644 --- a/CS2-SimpleAdmin/lang/pt-PT.json +++ b/CS2-SimpleAdmin/lang/pt-PT.json @@ -107,6 +107,7 @@ "sa_admin_gravity_message": "{lightred}{0}{default} mudou a gravidade de {lightred}{1}{default}!", "sa_admin_money_message": "{lightred}{0}{default} mudou a quantidade de dinheiro de {lightred}{1}{default}!", "sa_admin_god_message": "{lightred}{0}{default} mudou o modo Deus de {lightred}{1}{default}!", + "sa_admin_resize_message": "{lightred}{0}{default} alterou o tamanho de {lightred}{1}{default}!", "sa_admin_slay_message": "{lightred}{0}{default} matou {lightred}{1}{default}!", "sa_admin_slap_message": "{lightred}{0}{default} deu um tapa em {lightred}{1}{default}!", "sa_admin_changemap_message": "{lightred}{0}{default} mudou o mapa para {lightred}{1}{default}!", diff --git a/CS2-SimpleAdmin/lang/ru.json b/CS2-SimpleAdmin/lang/ru.json index 9fbbe51..9339a63 100644 --- a/CS2-SimpleAdmin/lang/ru.json +++ b/CS2-SimpleAdmin/lang/ru.json @@ -107,6 +107,7 @@ "sa_admin_gravity_message": "{lightred}{0}{default} изменил гравитацию для {lightred}{1}{default}!", "sa_admin_money_message": "{lightred}{0}{default} изменил количество денег у {lightred}{1}{default}!", "sa_admin_god_message": "{lightred}{0}{default} изменил режим бога для {lightred}{1}{default}!", + "sa_admin_resize_message": "{lightred}{0}{default} изменил размер {lightred}{1}{default}!", "sa_admin_slay_message": "{lightred}{0}{default} убил {lightred}{1}{default}!", "sa_admin_slap_message": "{lightred}{0}{default} дал пощечину {lightred}{1}{default}!", "sa_admin_changemap_message": "{lightred}{0}{default} изменил карту на {lightred}{1}{default}!", diff --git a/CS2-SimpleAdmin/lang/tr.json b/CS2-SimpleAdmin/lang/tr.json index 2f34026..89c8790 100644 --- a/CS2-SimpleAdmin/lang/tr.json +++ b/CS2-SimpleAdmin/lang/tr.json @@ -107,6 +107,7 @@ "sa_admin_gravity_message": "{lightred}{0}{default} {lightred}{1}{default}'in yer çekimini değiştirdi!", "sa_admin_money_message": "{lightred}{0}{default} {lightred}{1}{default}'in parasını değiştirdi!", "sa_admin_god_message": "{lightred}{0}{default} {lightred}{1}{default}'in tanrı modunu değiştirdi!", + "sa_admin_resize_message": "{lightred}{0}{default} boyutu {lightred}{1}{default} için değiştirdi!", "sa_admin_slay_message": "{lightred}{0}{default} {lightred}{1}{default}'i öldürdü!", "sa_admin_slap_message": "{lightred}{0}{default} {lightred}{1}{default}'e tokat attı!", "sa_admin_changemap_message": "{lightred}{0}{default} haritayı {lightred}{1}{default} olarak değiştirdi!", diff --git a/CS2-SimpleAdmin/lang/zh-Hans.json b/CS2-SimpleAdmin/lang/zh-Hans.json index c2d2f68..72ca4e3 100644 --- a/CS2-SimpleAdmin/lang/zh-Hans.json +++ b/CS2-SimpleAdmin/lang/zh-Hans.json @@ -105,6 +105,7 @@ "sa_admin_gravity_message": "{lightred}{0}{default} 修改了 {lightred}{1}{default} 的重力!", "sa_admin_money_message": "{lightred}{0}{default} 修改了 {lightred}{1}{default} 的金钱!", "sa_admin_god_message": "{lightred}{0}{default} 切换了 {lightred}{1}{default} 的上帝模式!", + "sa_admin_resize_message": "{lightred}{0}{default} 更改了 {lightred}{1}{default} 的大小!", "sa_admin_slay_message": "{lightred}{0}{default} 击杀了 {lightred}{1}{default}!", "sa_admin_slap_message": "{lightred}{0}{default} 掌掴了 {lightred}{1}{default}!", "sa_admin_changemap_message": "{lightred}{0}{default} 将地图更换为 {lightred}{1}{default}!", diff --git a/README.md b/README.md index 6fad578..d62e0bf 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ The configuration file (`CS2-SimpleAdmin.json`) will be auto-generated after the first launch. It contains settings for MySQL connections, command permissions, and other plugin-specific configurations. ## 📙 Wiki -For detailed documentation, guides, and tutorials, please visit [Wiki](https://cs2-simpleadmin.daffyy.love). +For detailed documentation, guides, and tutorials, please visit [Wiki](https://cs2-simpleadmin.daffyy.dev). ## 🛠️ Development This project started as a base for other plugins but has grown into a standalone admin management tool. Contributions are welcome! If you'd like to help with development or have ideas for new features, feel free to submit a pull request or open an issue.