mirror of
https://github.com/daffyyyy/CS2-SimpleAdmin.git
synced 2026-02-17 18:39:07 +00:00
Added Silence command in menu
This commit is contained in:
@@ -683,78 +683,87 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
if (caller!.CanTarget(player))
|
if (caller!.CanTarget(player))
|
||||||
{
|
{
|
||||||
PlayerInfo playerInfo = new PlayerInfo
|
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(),
|
||||||
|
Name = player?.PlayerName,
|
||||||
|
IpAddress = player?.IpAddress?.Split(":")[0]
|
||||||
|
};
|
||||||
|
|
||||||
|
PlayerInfo adminInfo = new PlayerInfo
|
||||||
|
{
|
||||||
|
SteamId = caller?.SteamID.ToString(),
|
||||||
|
Name = caller?.PlayerName,
|
||||||
|
IpAddress = caller?.IpAddress?.Split(":")[0]
|
||||||
|
};
|
||||||
|
|
||||||
|
Task.Run(async () =>
|
||||||
|
{
|
||||||
|
await muteManager.MutePlayer(playerInfo, adminInfo, reason, time, 2);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (TagsDetected)
|
||||||
|
Server.ExecuteCommand($"css_tag_mute {player!.SteamID}");
|
||||||
|
|
||||||
|
playerPenaltyManager.AddPenalty(player!.Slot, PenaltyType.Silence, DateTime.Now.AddMinutes(time), time);
|
||||||
|
|
||||||
|
if (time == 0)
|
||||||
|
{
|
||||||
|
if (!player!.IsBot && !player.IsHLTV)
|
||||||
|
{
|
||||||
|
using (new WithTemporaryCulture(player.GetLanguage()))
|
||||||
{
|
{
|
||||||
SteamId = player?.SteamID.ToString(),
|
player.PrintToCenter(_localizer!["sa_player_silence_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
|
||||||
Name = player?.PlayerName,
|
|
||||||
IpAddress = player?.IpAddress?.Split(":")[0]
|
|
||||||
};
|
|
||||||
|
|
||||||
PlayerInfo adminInfo = new PlayerInfo
|
|
||||||
{
|
|
||||||
SteamId = caller?.SteamID.ToString(),
|
|
||||||
Name = caller?.PlayerName,
|
|
||||||
IpAddress = caller?.IpAddress?.Split(":")[0]
|
|
||||||
};
|
|
||||||
|
|
||||||
Task.Run(async () =>
|
|
||||||
{
|
|
||||||
await _muteManager.MutePlayer(playerInfo, adminInfo, reason, time, 2);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (TagsDetected)
|
|
||||||
Server.ExecuteCommand($"css_tag_mute {player!.SteamID}");
|
|
||||||
|
|
||||||
playerPenaltyManager.AddPenalty(player!.Slot, PenaltyType.Silence, DateTime.Now.AddMinutes(time), time);
|
|
||||||
|
|
||||||
if (time == 0)
|
|
||||||
{
|
|
||||||
if (!player!.IsBot && !player.IsHLTV)
|
|
||||||
{
|
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
|
||||||
{
|
|
||||||
player.PrintToCenter(_localizer!["sa_player_silence_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
|
|
||||||
{
|
|
||||||
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
|
|
||||||
{
|
|
||||||
using (new WithTemporaryCulture(_player.GetLanguage()))
|
|
||||||
{
|
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
|
||||||
sb.Append(_localizer["sa_admin_silence_message_perm", callerName, player.PlayerName, reason]);
|
|
||||||
_player.PrintToChat(sb.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
{
|
|
||||||
if (!player!.IsBot && !player.IsHLTV)
|
|
||||||
{
|
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
|
||||||
{
|
|
||||||
player!.PrintToCenter(_localizer!["sa_player_silence_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (caller == null || caller != null && caller != null && !silentPlayers.Contains(caller.Slot))
|
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
|
||||||
|
{
|
||||||
|
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
|
||||||
|
{
|
||||||
|
using (new WithTemporaryCulture(_player.GetLanguage()))
|
||||||
{
|
{
|
||||||
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
|
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
||||||
{
|
sb.Append(_localizer["sa_admin_silence_message_perm", callerName, player.PlayerName, reason]);
|
||||||
using (new WithTemporaryCulture(_player.GetLanguage()))
|
_player.PrintToChat(sb.ToString());
|
||||||
{
|
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
|
||||||
sb.Append(_localizer["sa_admin_silence_message_time", callerName, player.PlayerName, reason, time]);
|
|
||||||
_player.PrintToChat(sb.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!player!.IsBot && !player.IsHLTV)
|
||||||
|
{
|
||||||
|
using (new WithTemporaryCulture(player.GetLanguage()))
|
||||||
|
{
|
||||||
|
player!.PrintToCenter(_localizer!["sa_player_silence_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (caller == null || caller != null && caller != null && !silentPlayers.Contains(caller.Slot))
|
||||||
|
{
|
||||||
|
foreach (CCSPlayerController _player in Helper.GetValidPlayers())
|
||||||
|
{
|
||||||
|
using (new WithTemporaryCulture(_player.GetLanguage()))
|
||||||
|
{
|
||||||
|
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
||||||
|
sb.Append(_localizer["sa_admin_silence_message_time", callerName, player.PlayerName, reason, time]);
|
||||||
|
_player.PrintToChat(sb.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[ConsoleCommand("css_addsilence")]
|
[ConsoleCommand("css_addsilence")]
|
||||||
|
|||||||
@@ -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("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("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)
|
if (hasKick)
|
||||||
@@ -185,6 +186,35 @@ namespace CS2_SimpleAdmin.Menus
|
|||||||
{
|
{
|
||||||
CS2_SimpleAdmin.Instance.Mute(admin, player, duration, reason);
|
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)
|
private static void ForceTeamMenu(CCSPlayerController admin, CCSPlayerController player)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user