mirror of
https://github.com/daffyyyy/CS2-SimpleAdmin.git
synced 2026-02-23 12:07:31 +00:00
1.5.2b
- Fix for command overrides in menu - Fix for kick with banid when player disconnected
This commit is contained in:
@@ -41,7 +41,7 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig<CS2_SimpleAdmin
|
|||||||
public override string ModuleName => "CS2-SimpleAdmin" + (Helper.IsDebugBuild ? " (DEBUG)" : " (RELEASE)");
|
public override string ModuleName => "CS2-SimpleAdmin" + (Helper.IsDebugBuild ? " (DEBUG)" : " (RELEASE)");
|
||||||
public override string ModuleDescription => "Simple admin plugin for Counter-Strike 2 :)";
|
public override string ModuleDescription => "Simple admin plugin for Counter-Strike 2 :)";
|
||||||
public override string ModuleAuthor => "daffyy & Dliix66";
|
public override string ModuleAuthor => "daffyy & Dliix66";
|
||||||
public override string ModuleVersion => "1.5.2a";
|
public override string ModuleVersion => "1.5.2b";
|
||||||
|
|
||||||
public CS2_SimpleAdminConfig Config { get; set; } = new();
|
public CS2_SimpleAdminConfig Config { get; set; } = new();
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public partial class CS2_SimpleAdmin
|
|||||||
|
|
||||||
if (player.PawnIsAlive)
|
if (player.PawnIsAlive)
|
||||||
{
|
{
|
||||||
player.Pawn.Value!.Freeze();
|
player.Pawn.Value?.Freeze();
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerInfo playerInfo = new()
|
PlayerInfo playerInfo = new()
|
||||||
@@ -81,11 +81,7 @@ public partial class CS2_SimpleAdmin
|
|||||||
banManager ??= new BanManager(_database, Config);
|
banManager ??= new BanManager(_database, Config);
|
||||||
await banManager.BanPlayer(playerInfo, adminInfo, reason, time);
|
await banManager.BanPlayer(playerInfo, adminInfo, reason, time);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (player.UserId.HasValue)
|
|
||||||
AddTimer(Config.KickTime, () => Helper.KickPlayer(player.UserId.Value),
|
|
||||||
CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
|
|
||||||
|
|
||||||
if (playerInfo.IpAddress != null && !BannedPlayers.Contains(playerInfo.IpAddress))
|
if (playerInfo.IpAddress != null && !BannedPlayers.Contains(playerInfo.IpAddress))
|
||||||
BannedPlayers.Add(playerInfo.IpAddress);
|
BannedPlayers.Add(playerInfo.IpAddress);
|
||||||
if (!BannedPlayers.Contains(player.SteamID.ToString()))
|
if (!BannedPlayers.Contains(player.SteamID.ToString()))
|
||||||
@@ -133,6 +129,14 @@ public partial class CS2_SimpleAdmin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (player.UserId.HasValue)
|
||||||
|
AddTimer(Config.KickTime, () =>
|
||||||
|
{
|
||||||
|
if (player is null || !player.IsValid || !player.UserId.HasValue) return;
|
||||||
|
|
||||||
|
Helper.KickPlayer(player.UserId.Value);
|
||||||
|
}, CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
|
||||||
|
|
||||||
if (UnlockedCommands)
|
if (UnlockedCommands)
|
||||||
Server.ExecuteCommand($"banid 2 {new SteamID(player.SteamID).SteamId3}");
|
Server.ExecuteCommand($"banid 2 {new SteamID(player.SteamID).SteamId3}");
|
||||||
@@ -190,14 +194,10 @@ public partial class CS2_SimpleAdmin
|
|||||||
command.ReplyToCommand($"{player.PlayerName} is more powerful than you!");
|
command.ReplyToCommand($"{player.PlayerName} is more powerful than you!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
player.Pawn.Value!.Freeze();
|
|
||||||
if (player.UserId.HasValue)
|
|
||||||
AddTimer(Config.KickTime, () => Helper.KickPlayer(player.UserId.Value), CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
|
|
||||||
|
|
||||||
if (time == 0)
|
if (time == 0)
|
||||||
{
|
{
|
||||||
if (!player.IsBot && !player.IsHLTV)
|
if (player is { IsBot: false, IsHLTV: false })
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
using (new WithTemporaryCulture(player.GetLanguage()))
|
||||||
{
|
{
|
||||||
player.PrintToCenter(_localizer!["sa_player_ban_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
|
player.PrintToCenter(_localizer!["sa_player_ban_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
|
||||||
@@ -237,8 +237,17 @@ public partial class CS2_SimpleAdmin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
player.Pawn.Value?.Freeze();
|
||||||
|
if (player.UserId.HasValue)
|
||||||
|
AddTimer(Config.KickTime, () =>
|
||||||
|
{
|
||||||
|
if (player is null || !player.IsValid || !player.UserId.HasValue) return;
|
||||||
|
|
||||||
|
Helper.KickPlayer(player.UserId.Value);
|
||||||
|
}, CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
Helper.SendDiscordPenaltyMessage(caller, player, reason, time, Helper.PenaltyType.Ban, _localizer);
|
Helper.SendDiscordPenaltyMessage(caller, player, reason, time, Helper.PenaltyType.Ban, _localizer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -350,12 +359,12 @@ public partial class CS2_SimpleAdmin
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (player.UserId.HasValue)
|
if (player.UserId.HasValue)
|
||||||
{
|
|
||||||
AddTimer(Config.KickTime, () =>
|
AddTimer(Config.KickTime, () =>
|
||||||
{
|
{
|
||||||
Helper.KickPlayer(player.UserId.Value, "Banned");
|
if (player is null || !player.IsValid || !player.UserId.HasValue) return;
|
||||||
|
|
||||||
|
Helper.KickPlayer(player.UserId.Value);
|
||||||
}, CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
|
}, CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Helper.SendDiscordPenaltyMessage(caller, player, reason, time, Helper.PenaltyType.Ban, _localizer);
|
Helper.SendDiscordPenaltyMessage(caller, player, reason, time, Helper.PenaltyType.Ban, _localizer);
|
||||||
@@ -384,13 +393,11 @@ public partial class CS2_SimpleAdmin
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (duration > Config.MaxBanDuration && canPermBan == false)
|
if (duration <= Config.MaxBanDuration || canPermBan) return true;
|
||||||
{
|
|
||||||
caller.PrintToChat($"{_localizer!["sa_prefix"]} {_localizer["sa_ban_max_duration_exceeded", Config.MaxBanDuration]}");
|
caller.PrintToChat($"{_localizer!["sa_prefix"]} {_localizer["sa_ban_max_duration_exceeded", Config.MaxBanDuration]}");
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[ConsoleCommand("css_unban")]
|
[ConsoleCommand("css_unban")]
|
||||||
|
|||||||
@@ -439,7 +439,7 @@ namespace CS2_SimpleAdmin
|
|||||||
|
|
||||||
Helper.LogCommand(caller, command);
|
Helper.LogCommand(caller, command);
|
||||||
|
|
||||||
var playersToTarget = targets.Players.Where(player => player is { IsValid: true, IsHLTV: false }).ToList();
|
var playersToTarget = targets.Players.Where(player => player is { IsValid: true, IsBot: false }).ToList();
|
||||||
|
|
||||||
if (playersToTarget.Count > 1)
|
if (playersToTarget.Count > 1)
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -49,8 +49,11 @@ namespace CS2_SimpleAdmin.Menus
|
|||||||
List<ChatMenuOptionData> options = [];
|
List<ChatMenuOptionData> options = [];
|
||||||
|
|
||||||
// permissions
|
// permissions
|
||||||
var hasCheats = AdminManager.PlayerHasPermissions(admin, "@css/cheats");
|
var hasCheats = AdminManager.CommandIsOverriden("css_godmode") ? AdminManager.PlayerHasPermissions(admin, AdminManager.GetPermissionOverrides("css_godmode")) : AdminManager.PlayerHasPermissions(admin, "@css/cheats");
|
||||||
var hasSlay = AdminManager.PlayerHasPermissions(admin, "@css/slay");
|
var hasSlay = AdminManager.CommandIsOverriden("css_slay") ? AdminManager.PlayerHasPermissions(admin, AdminManager.GetPermissionOverrides("css_slay")) : AdminManager.PlayerHasPermissions(admin, "@css/slay");
|
||||||
|
|
||||||
|
//var hasCheats = AdminManager.PlayerHasPermissions(admin, "@css/cheats");
|
||||||
|
//var hasSlay = AdminManager.PlayerHasPermissions(admin, "@css/slay");
|
||||||
|
|
||||||
// options added in order
|
// options added in order
|
||||||
|
|
||||||
|
|||||||
@@ -25,10 +25,10 @@ namespace CS2_SimpleAdmin.Menus
|
|||||||
List<ChatMenuOptionData> options = [];
|
List<ChatMenuOptionData> options = [];
|
||||||
|
|
||||||
// permissions
|
// permissions
|
||||||
var hasSlay = AdminManager.PlayerHasPermissions(admin, "@css/slay");
|
var hasSlay = AdminManager.CommandIsOverriden("css_slay") ? AdminManager.PlayerHasPermissions(admin, AdminManager.GetPermissionOverrides("css_slay")) : AdminManager.PlayerHasPermissions(admin, "@css/slay");
|
||||||
var hasKick = AdminManager.PlayerHasPermissions(admin, "@css/kick");
|
var hasKick = AdminManager.CommandIsOverriden("css_kick") ? AdminManager.PlayerHasPermissions(admin, AdminManager.GetPermissionOverrides("css_kick")) : AdminManager.PlayerHasPermissions(admin, "@css/kick");
|
||||||
var hasBan = AdminManager.PlayerHasPermissions(admin, "@css/ban");
|
var hasBan = AdminManager.CommandIsOverriden("css_ban") ? AdminManager.PlayerHasPermissions(admin, AdminManager.GetPermissionOverrides("css_ban")) : AdminManager.PlayerHasPermissions(admin, "@css/ban");
|
||||||
var hasChat = AdminManager.PlayerHasPermissions(admin, "@css/chat");
|
var hasChat = AdminManager.CommandIsOverriden("css_gag") ? AdminManager.PlayerHasPermissions(admin, AdminManager.GetPermissionOverrides("css_gag")) : AdminManager.PlayerHasPermissions(admin, "@css/chat");
|
||||||
|
|
||||||
// TODO: Localize options
|
// TODO: Localize options
|
||||||
// options added in order
|
// options added in order
|
||||||
@@ -42,21 +42,36 @@ namespace CS2_SimpleAdmin.Menus
|
|||||||
if (hasKick)
|
if (hasKick)
|
||||||
{
|
{
|
||||||
options.Add(new ChatMenuOptionData(localizer?["sa_kick"] ?? "Kick", () => PlayersMenu.OpenMenu(admin, localizer?["sa_kick"] ?? "Kick", KickMenu)));
|
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 (AdminManager.CommandIsOverriden("css_warn")
|
||||||
|
? AdminManager.PlayerHasPermissions(admin, AdminManager.GetPermissionOverrides("css_warn"))
|
||||||
|
: AdminManager.PlayerHasPermissions(admin, "@css/kick"))
|
||||||
|
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)
|
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))));
|
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))));
|
||||||
|
|
||||||
if (hasChat)
|
if (hasChat)
|
||||||
{
|
{
|
||||||
options.Add(new ChatMenuOptionData(localizer?["sa_gag"] ?? "Gag", () => PlayersMenu.OpenRealPlayersMenu(admin, localizer?["sa_gag"] ?? "Gag", (admin, player) => DurationMenu.OpenMenu(admin, $"{localizer?["sa_gag"] ?? "Gag"}: {player.PlayerName}", player, GagMenu))));
|
if (AdminManager.CommandIsOverriden("css_gag")
|
||||||
options.Add(new ChatMenuOptionData(localizer?["sa_mute"] ?? "Mute", () => PlayersMenu.OpenRealPlayersMenu(admin, localizer?["sa_mute"] ?? "Mute", (admin, player) => DurationMenu.OpenMenu(admin, $"{localizer?["sa_mute"] ?? "Mute"}: {player.PlayerName}", player, MuteMenu))));
|
? AdminManager.PlayerHasPermissions(admin, AdminManager.GetPermissionOverrides("css_gag"))
|
||||||
options.Add(new ChatMenuOptionData(localizer?["sa_silence"] ?? "Silence", () => PlayersMenu.OpenRealPlayersMenu(admin, localizer?["sa_silence"] ?? "Silence", (admin, player) => DurationMenu.OpenMenu(admin, $"{localizer?["sa_silence"] ?? "Silence"}: {player.PlayerName}", player, SilenceMenu))));
|
: AdminManager.PlayerHasPermissions(admin, "@css/chat"))
|
||||||
|
options.Add(new ChatMenuOptionData(localizer?["sa_gag"] ?? "Gag", () => PlayersMenu.OpenRealPlayersMenu(admin, localizer?["sa_gag"] ?? "Gag", (admin, player) => DurationMenu.OpenMenu(admin, $"{localizer?["sa_gag"] ?? "Gag"}: {player.PlayerName}", player, GagMenu))));
|
||||||
|
if (AdminManager.CommandIsOverriden("css_mute")
|
||||||
|
? AdminManager.PlayerHasPermissions(admin, AdminManager.GetPermissionOverrides("css_mute"))
|
||||||
|
: AdminManager.PlayerHasPermissions(admin, "@css/chat"))
|
||||||
|
options.Add(new ChatMenuOptionData(localizer?["sa_mute"] ?? "Mute", () => PlayersMenu.OpenRealPlayersMenu(admin, localizer?["sa_mute"] ?? "Mute", (admin, player) => DurationMenu.OpenMenu(admin, $"{localizer?["sa_mute"] ?? "Mute"}: {player.PlayerName}", player, MuteMenu))));
|
||||||
|
if (AdminManager.CommandIsOverriden("css_silence")
|
||||||
|
? AdminManager.PlayerHasPermissions(admin, AdminManager.GetPermissionOverrides("css_silence"))
|
||||||
|
: AdminManager.PlayerHasPermissions(admin, "@css/chat"))
|
||||||
|
options.Add(new ChatMenuOptionData(localizer?["sa_silence"] ?? "Silence", () => PlayersMenu.OpenRealPlayersMenu(admin, localizer?["sa_silence"] ?? "Silence", (admin, player) => DurationMenu.OpenMenu(admin, $"{localizer?["sa_silence"] ?? "Silence"}: {player.PlayerName}", player, SilenceMenu))));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasKick)
|
if (AdminManager.CommandIsOverriden("css_team")
|
||||||
options.Add(new ChatMenuOptionData(localizer?["sa_team_force"] ?? "Force Team", () => PlayersMenu.OpenMenu(admin, localizer?["sa_team_force"] ?? "Force Team", ForceTeamMenu)));
|
? AdminManager.PlayerHasPermissions(admin, AdminManager.GetPermissionOverrides("css_team"))
|
||||||
|
: AdminManager.PlayerHasPermissions(admin, "@css/kick"))
|
||||||
|
options.Add(new ChatMenuOptionData(localizer?["sa_team_force"] ?? "Force Team", () => PlayersMenu.OpenMenu(admin, localizer?["sa_team_force"] ?? "Force Team", ForceTeamMenu)));
|
||||||
|
|
||||||
foreach (var menuOptionData in options)
|
foreach (var menuOptionData in options)
|
||||||
{
|
{
|
||||||
@@ -155,7 +170,7 @@ namespace CS2_SimpleAdmin.Menus
|
|||||||
{
|
{
|
||||||
var menu = AdminMenu.CreateMenu($"{CS2_SimpleAdmin._localizer?["sa_warn"] ?? "Warn"}: {player?.PlayerName}");
|
var menu = AdminMenu.CreateMenu($"{CS2_SimpleAdmin._localizer?["sa_warn"] ?? "Warn"}: {player?.PlayerName}");
|
||||||
|
|
||||||
foreach (var option in CS2_SimpleAdmin.Instance.Config.MenuConfigs.BanReasons)
|
foreach (var option in CS2_SimpleAdmin.Instance.Config.MenuConfigs.WarnReasons)
|
||||||
{
|
{
|
||||||
menu.AddMenuOption(option, (_, _) =>
|
menu.AddMenuOption(option, (_, _) =>
|
||||||
{
|
{
|
||||||
@@ -176,7 +191,6 @@ namespace CS2_SimpleAdmin.Menus
|
|||||||
|
|
||||||
private static void GagMenu(CCSPlayerController admin, CCSPlayerController? player, int duration)
|
private static void GagMenu(CCSPlayerController admin, CCSPlayerController? player, int duration)
|
||||||
{
|
{
|
||||||
// TODO: Localize and make options in config?
|
|
||||||
var menu = AdminMenu.CreateMenu($"{CS2_SimpleAdmin._localizer?["sa_gag"] ?? "Gag"}: {player?.PlayerName}");
|
var menu = AdminMenu.CreateMenu($"{CS2_SimpleAdmin._localizer?["sa_gag"] ?? "Gag"}: {player?.PlayerName}");
|
||||||
|
|
||||||
foreach (var option in CS2_SimpleAdmin.Instance.Config.MenuConfigs.MuteReasons)
|
foreach (var option in CS2_SimpleAdmin.Instance.Config.MenuConfigs.MuteReasons)
|
||||||
|
|||||||
@@ -23,8 +23,11 @@ namespace CS2_SimpleAdmin.Menus
|
|||||||
var menu = AdminMenu.CreateMenu(localizer?["sa_menu_server_manage"] ?? "Server Manage");
|
var menu = AdminMenu.CreateMenu(localizer?["sa_menu_server_manage"] ?? "Server Manage");
|
||||||
List<ChatMenuOptionData> options = [];
|
List<ChatMenuOptionData> options = [];
|
||||||
|
|
||||||
|
|
||||||
// permissions
|
// permissions
|
||||||
bool hasMap = AdminManager.PlayerHasPermissions(admin, "@css/changemap");
|
var hasMap = AdminManager.CommandIsOverriden("css_map") ? AdminManager.PlayerHasPermissions(admin, AdminManager.GetPermissionOverrides("css_map")) : AdminManager.PlayerHasPermissions(admin, "@css/changemap");
|
||||||
|
|
||||||
|
//bool hasMap = AdminManager.PlayerHasPermissions(admin, "@css/changemap");
|
||||||
|
|
||||||
// options added in order
|
// options added in order
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user