diff --git a/CS2-SimpleAdmin.cs b/CS2-SimpleAdmin.cs index 37d2b0c..9d347b1 100644 --- a/CS2-SimpleAdmin.cs +++ b/CS2-SimpleAdmin.cs @@ -54,6 +54,7 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig KickReasons { get; set; } = + [ + "Voice Abuse", + "Chat Abuse", + "Admin disrespect", + "Other" + ]; + + [JsonPropertyName("WarnReasons")] + public List WarnReasons { get; set; } = [ "Voice Abuse", "Chat Abuse", diff --git a/Menus/CustomCommandsMenu.cs b/Menus/CustomCommandsMenu.cs index 75dc0a0..ed820e8 100644 --- a/Menus/CustomCommandsMenu.cs +++ b/Menus/CustomCommandsMenu.cs @@ -8,7 +8,7 @@ namespace CS2_SimpleAdmin.Menus { public static void OpenMenu(CCSPlayerController admin) { - if (admin == null || admin.IsValid == false) + if (admin.IsValid == false) return; var localizer = CS2_SimpleAdmin._localizer; diff --git a/Menus/ManagePlayersMenu.cs b/Menus/ManagePlayersMenu.cs index 93b4411..e10f1fe 100644 --- a/Menus/ManagePlayersMenu.cs +++ b/Menus/ManagePlayersMenu.cs @@ -40,7 +40,10 @@ namespace CS2_SimpleAdmin.Menus } if (hasKick) + { options.Add(new ChatMenuOptionData(localizer?["sa_kick"] ?? "Kick", () => PlayersMenu.OpenMenu(admin, localizer?["sa_kick"] ?? "Kick", KickMenu))); + options.Add(new ChatMenuOptionData(localizer?["sa_warn"] ?? "Warn", () => PlayersMenu.OpenRealPlayersMenu(admin, localizer?["sa_warn"] ?? "Warn", (admin, player) => DurationMenu.OpenMenu(admin, $"{localizer?["sa_warn"] ?? "Warn"}: {player.PlayerName}", player, WarnMenu)))); + } if (hasBan) options.Add(new ChatMenuOptionData(localizer?["sa_ban"] ?? "Ban", () => PlayersMenu.OpenRealPlayersMenu(admin, localizer?["sa_ban"] ?? "Ban", (admin, player) => DurationMenu.OpenMenu(admin, $"{localizer?["sa_ban"] ?? "Ban"}: {player.PlayerName}", player, BanMenu)))); @@ -123,7 +126,7 @@ namespace CS2_SimpleAdmin.Menus if (player is not { IsValid: true }) return; CS2_SimpleAdmin.Instance.Kick(admin, player, reason); - } + } private static void BanMenu(CCSPlayerController admin, CCSPlayerController? player, int duration) { @@ -147,6 +150,29 @@ namespace CS2_SimpleAdmin.Menus CS2_SimpleAdmin.Instance.Ban(admin, player, duration, reason); } + + private static void WarnMenu(CCSPlayerController admin, CCSPlayerController? player, int duration) + { + var menu = AdminMenu.CreateMenu($"{CS2_SimpleAdmin._localizer?["sa_warn"] ?? "Warn"}: {player?.PlayerName}"); + + foreach (var option in CS2_SimpleAdmin.Instance.Config.MenuConfigs.BanReasons) + { + menu.AddMenuOption(option, (_, _) => + { + if (player is { IsValid: true }) + Warn(admin, player, duration, option); + }); + } + + AdminMenu.OpenMenu(admin, menu); + } + + private static void Warn(CCSPlayerController admin, CCSPlayerController? player, int duration, string reason) + { + if (player is not { IsValid: true }) return; + + CS2_SimpleAdmin.Instance.Warn(admin, player, duration, reason); + } private static void GagMenu(CCSPlayerController admin, CCSPlayerController? player, int duration) { diff --git a/lang/ar.json b/lang/ar.json index 5a86a88..06bea32 100644 --- a/lang/ar.json +++ b/lang/ar.json @@ -37,6 +37,7 @@ "sa_gag": "كتم", "sa_mute": "كتم", "sa_silence": "صمت", + "sa_warn": "تحذير", "sa_team_force": "فرض الفريق", "sa_menu_custom_commands": "الأوامر المخصصة", diff --git a/lang/de.json b/lang/de.json index ba0607f..56cb5e3 100644 --- a/lang/de.json +++ b/lang/de.json @@ -37,6 +37,7 @@ "sa_gag": "Chat stummschalten", "sa_mute": "Sprachchat stummschalten", "sa_silence": "Komplett stummschalten", + "sa_warn": "Warnen", "sa_team_force": "Team zuweisen", "sa_menu_custom_commands": "Eigene Befehle", diff --git a/lang/en.json b/lang/en.json index 1eb3088..4e1a91b 100644 --- a/lang/en.json +++ b/lang/en.json @@ -37,6 +37,7 @@ "sa_gag": "Gag", "sa_mute": "Mute", "sa_silence": "Silence", + "sa_warn": "Warn", "sa_team_force": "Force Team", "sa_menu_custom_commands": "Custom Commands", diff --git a/lang/es.json b/lang/es.json index 3900d39..a520e14 100644 --- a/lang/es.json +++ b/lang/es.json @@ -37,6 +37,7 @@ "sa_gag": "Callar", "sa_mute": "Silenciar", "sa_silence": "Silencio", + "sa_warn": "Advertencia", "sa_team_force": "Forzar Equipo", "sa_menu_custom_commands": "Comandos Personalizados", diff --git a/lang/fa.json b/lang/fa.json index 7d8aa0f..dc7250f 100644 --- a/lang/fa.json +++ b/lang/fa.json @@ -37,6 +37,7 @@ "sa_gag": "بی‌صدا کردن", "sa_mute": "بی‌صدا کردن", "sa_silence": "سکوت", + "sa_warn": "هشدار", "sa_team_force": "اجبار تیم", "sa_menu_custom_commands": "دستورات سفارشی", diff --git a/lang/fr.json b/lang/fr.json index e48db1d..5d9f00e 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -37,6 +37,7 @@ "sa_gag": "Réduire au silence", "sa_mute": "Muter", "sa_silence": "Silence", + "sa_warn": "Avertir", "sa_team_force": "Forcer l'équipe", "sa_menu_custom_commands": "Commandes personnalisées", diff --git a/lang/lv.json b/lang/lv.json index ddb7a99..649727c 100644 --- a/lang/lv.json +++ b/lang/lv.json @@ -37,6 +37,7 @@ "sa_gag": "Izslēgt runu", "sa_mute": "Noklusināt", "sa_silence": "Klusums", + "sa_warn": "Brīdināt", "sa_team_force": "Spēka komanda", "sa_menu_custom_commands": "Pielāgotās komandas", diff --git a/lang/pl.json b/lang/pl.json index f5ff6ac..8248087 100644 --- a/lang/pl.json +++ b/lang/pl.json @@ -37,6 +37,7 @@ "sa_gag": "Zaknebluj", "sa_mute": "Wycisz", "sa_silence": "Ucisz", + "sa_warn": "Ostrzeżenie", "sa_team_force": "Wymuś drużynę", "sa_menu_custom_commands": "Komendy niestandardowe", diff --git a/lang/pt-BR.json b/lang/pt-BR.json index 2b9c3de..a8a8230 100644 --- a/lang/pt-BR.json +++ b/lang/pt-BR.json @@ -37,6 +37,7 @@ "sa_gag": "Silenciar", "sa_mute": "Mutar", "sa_silence": "Silêncio", + "sa_warn": "Aviso", "sa_team_force": "Forçar Time", "sa_menu_custom_commands": "Comandos Personalizados", diff --git a/lang/ru.json b/lang/ru.json index 32ca79d..0b70ea7 100644 --- a/lang/ru.json +++ b/lang/ru.json @@ -37,6 +37,7 @@ "sa_gag": "Заглушить", "sa_mute": "Отключить звук", "sa_silence": "Тишина", + "sa_warn": "Предупреждение", "sa_team_force": "Принудить к команде", "sa_menu_custom_commands": "Пользовательские команды", diff --git a/lang/tr.json b/lang/tr.json index 672119d..8190f4f 100644 --- a/lang/tr.json +++ b/lang/tr.json @@ -37,6 +37,7 @@ "sa_gag": "Ağzını Kapat", "sa_mute": "Sustur", "sa_silence": "Sessizlik", + "sa_warn": "Uyarı", "sa_team_force": "Takımı Zorla", "sa_menu_custom_commands": "Özel Komutlar", diff --git a/lang/zh-Hans.json b/lang/zh-Hans.json index d7a3ae7..38d6f39 100644 --- a/lang/zh-Hans.json +++ b/lang/zh-Hans.json @@ -37,6 +37,7 @@ "sa_gag": "禁言", "sa_mute": "静音", "sa_silence": "沉默", + "sa_warn": "警告", "sa_team_force": "强制队伍", "sa_menu_custom_commands": "自定义命令",