Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Config.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ public class BaseConfigs : BasePluginConfig
[JsonPropertyName("CommandCooldownSeconds")]
public int CommandCooldownSeconds { get; set; } = 120;

[JsonPropertyName("DontCountAdmins")]
public bool DontCountAdmins { get; set; } = false;

[JsonPropertyName("AdminBypassFlag")]
public string AdminBypassFlag { get; set; } = "@css/generic";

[JsonPropertyName("Command")]
public List<string> Command { get; set; } = new List<string> { "css_need", ".need" };

Expand Down
27 changes: 24 additions & 3 deletions NeedSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
using CounterStrikeSharp.API.Modules.Commands;
using CounterStrikeSharp.API.Modules.Cvars;
using CounterStrikeSharp.API.Core.Attributes;
using CounterStrikeSharp.API.Modules.Utils;
using CounterStrikeSharp.API.Modules.Admin;

namespace NeedSystem;

Expand All @@ -17,7 +19,7 @@ public class NeedSystemBase : BasePlugin, IPluginConfig<BaseConfigs>
private Translator _translator;

public override string ModuleName => "NeedSystem";
public override string ModuleVersion => "1.1.5";
public override string ModuleVersion => "1.1.6";
public override string ModuleAuthor => "luca.uy";
public override string ModuleDescription => "Allows players to send a message to discord requesting players.";

Expand Down Expand Up @@ -146,7 +148,25 @@ private bool CheckCommandCooldown(out int secondsRemaining)
public int GetNumberOfPlayers()
{
var players = Utilities.GetPlayers();
return players.Count(p => !p.IsBot && !p.IsHLTV);
return players.Where(p => !p.IsBot && !p.IsHLTV && ShouldShowPlayerInList(p)).Count();
}

private bool ShouldShowPlayerInList(CCSPlayerController player)
{
if (!Config.DontCountAdmins || string.IsNullOrEmpty(Config.AdminBypassFlag))
return true;

try
{
if (!AdminManager.PlayerHasPermissions(player, Config.AdminBypassFlag))
return true;

return player.Team == CsTeam.Terrorist || player.Team == CsTeam.CounterTerrorist;
}
catch
{
return true;
}
}

private int ConvertHexToColor(string hex)
Expand All @@ -172,6 +192,7 @@ public void NeedCommand(CCSPlayerController? caller, string clientName)
{
var players = Utilities.GetPlayers()
.Where(p => !p.IsBot && !p.IsHLTV && p.Connected == PlayerConnectedState.PlayerConnected)
.Where(ShouldShowPlayerInList)
.Select(p => new { p.PlayerName, p.SteamID })
.ToList();

Expand Down Expand Up @@ -294,7 +315,7 @@ private async Task SendEmbedToDiscord(object embed)

var payload = new
{
content = content,
content,
embeds = new[] { embed }
};

Expand Down