Added Silence command in menu

This commit is contained in:
Valentin Barat
2024-02-12 15:15:49 +01:00
parent a3ebcccb6f
commit ae8d9db5e4
2 changed files with 104 additions and 65 deletions

View File

@@ -683,6 +683,17 @@ namespace CS2_SimpleAdmin
{
if (caller!.CanTarget(player))
{
Silence(caller, player, time, reason, callerName, _muteManager, playerPenaltyManager);
}
});
}
internal void Silence(CCSPlayerController? caller, CCSPlayerController player, int time, string reason, string callerName = null, MuteManager muteManager = null, PlayerPenaltyManager playerPenaltyManager = null)
{
callerName ??= caller == null ? "Console" : caller.PlayerName;
muteManager ??= new MuteManager(_database);
playerPenaltyManager ??= new PlayerPenaltyManager();
PlayerInfo playerInfo = new PlayerInfo
{
SteamId = player?.SteamID.ToString(),
@@ -699,7 +710,7 @@ namespace CS2_SimpleAdmin
Task.Run(async () =>
{
await _muteManager.MutePlayer(playerInfo, adminInfo, reason, time, 2);
await muteManager.MutePlayer(playerInfo, adminInfo, reason, time, 2);
});
if (TagsDetected)
@@ -754,8 +765,6 @@ namespace CS2_SimpleAdmin
}
}
}
});
}
[ConsoleCommand("css_addsilence")]
[RequiresPermissions("@css/chat")]

View File

@@ -51,6 +51,7 @@ namespace CS2_SimpleAdmin.Menus
{
options.Add(new ChatMenuOptionData("Gag", () => PlayersMenu.OpenMenu(admin, "Gag", (admin, player) => DurationMenu.OpenMenu(admin, "Gag", player, GagMenu))));
options.Add(new ChatMenuOptionData("Mute", () => PlayersMenu.OpenMenu(admin, "Mute", (admin, player) => DurationMenu.OpenMenu(admin, "Mute", player, MuteMenu))));
options.Add(new ChatMenuOptionData("Silence", () => PlayersMenu.OpenMenu(admin, "Silence", (admin, player) => DurationMenu.OpenMenu(admin, "Silence", player, SilenceMenu))));
}
if (hasKick)
@@ -186,6 +187,35 @@ namespace CS2_SimpleAdmin.Menus
CS2_SimpleAdmin.Instance.Mute(admin, player, duration, reason);
}
private static void SilenceMenu(CCSPlayerController admin, CCSPlayerController player, int duration)
{
// TODO: Localize and make options in config?
CenterHtmlMenu menu = new CenterHtmlMenu($"Silence {player.PlayerName}");
List<string> options = new()
{
"Shouting",
"Playing music",
"Advertising",
"Spamming",
"Spectator camera abuse",
"Hate",
"Admin disrespect",
"Other"
};
foreach (string option in options)
{
menu.AddMenuOption(option, (_, _) => { Silence(admin, player, duration, option); });
}
MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu);
}
private static void Silence(CCSPlayerController admin, CCSPlayerController player, int duration, string reason)
{
CS2_SimpleAdmin.Instance.Silence(admin, player, duration, reason);
}
private static void ForceTeamMenu(CCSPlayerController admin, CCSPlayerController player)
{
// TODO: Localize