Skip to content

Commit f6dfa51

Browse files
committed
feat: add immunity flag
1 parent 58d77be commit f6dfa51

File tree

4 files changed

+24
-4
lines changed

4 files changed

+24
-4
lines changed

PrimeManager/src/Plugin.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using CounterStrikeSharp.API.Core;
44
using CounterStrikeSharp.API.Core.Capabilities;
55
using CounterStrikeSharp.API.Core.Translations;
6+
using CounterStrikeSharp.API.Modules.Extensions;
67
using CounterStrikeSharp.API.Modules.Memory;
78
using Microsoft.Extensions.Logging;
89
using PrimeManager.API;
@@ -23,7 +24,7 @@ public struct CEconPersonaDataPublic
2324
public class Plugin : BasePlugin, IPluginConfig<PluginConfig>, IPrimeManager
2425
{
2526
public override string ModuleName => "PrimeManager";
26-
public override string ModuleVersion => "1.0.2";
27+
public override string ModuleVersion => "1.0.3";
2728
public override string ModuleAuthor => "xstage";
2829

2930
public event PersonaDataRecived? PersonaDataRecivedEvent;
@@ -93,7 +94,11 @@ public void OnConfigParsed(PluginConfig config)
9394
{
9495
if (config.Version < Config.Version)
9596
{
96-
Logger.LogError("Your plugin configuration version is outdated! (v. {old} -> v. {new})", config.Version, Config.Version);
97+
Logger.LogWarning("Your plugin configuration version is outdated! (v. {old} -> v. {new}). Updating the configuration...", config.Version, Config.Version);
98+
Config.Update();
99+
Logger.LogInformation("The configuration has been updated");
100+
101+
return;
97102
}
98103

99104
Config = config;

PrimeManager/src/PluginConfig.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System.Text.Json.Serialization;
12
using CounterStrikeSharp.API.Core;
23

34
namespace PrimeManager;
@@ -7,6 +8,10 @@ public class PluginConfig : BasePluginConfig
78
public Dictionary<string, object> ModuleSettings { get; set; } = new()
89
{
910
["tag_only_nonprime"] = true,
11+
["immunity_flag"] = "@css/generic",
1012
["flag_alert"] = "@css/ban"
1113
};
14+
15+
[JsonPropertyName("ConfigVersion")]
16+
public override int Version { get; set; } = 2;
1217
}

modules/PMBlockCommand/Plugin.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using CounterStrikeSharp.API.Core;
22
using CounterStrikeSharp.API.Core.Capabilities;
33
using CounterStrikeSharp.API.Core.Translations;
4+
using CounterStrikeSharp.API.Modules.Admin;
45
using CounterStrikeSharp.API.Modules.Commands;
56
using PrimeManager.API;
67

@@ -14,13 +15,14 @@ public class PluginConfig : BasePluginConfig
1415
public class Plugin : BasePlugin, IPluginConfig<PluginConfig>
1516
{
1617
public override string ModuleName => "[PM] BlockCommand";
17-
public override string ModuleVersion => "1.0.0";
18+
public override string ModuleVersion => "1.0.1";
1819
public override string ModuleAuthor => "xstage";
1920

2021
public static PluginCapability<IPrimeManager> PmApi { get; } = new("PrimeManager");
2122
public PluginConfig Config { get; set; } = new();
2223

2324
private IPrimeManager _api = null!;
25+
private string? _immunityFlag;
2426

2527
public override void Load(bool hotReload)
2628
{
@@ -30,6 +32,8 @@ public override void Load(bool hotReload)
3032
public override void OnAllPluginsLoaded(bool hotReload)
3133
{
3234
ArgumentNullException.ThrowIfNull(_api = PmApi.Get()!, nameof(_api));
35+
36+
_immunityFlag = _api.GetModuleSetting<string>("immunity_flag");
3337
}
3438

3539
private HookResult Command_Handler(CCSPlayerController? player, CommandInfo commandInfo)
@@ -39,6 +43,7 @@ private HookResult Command_Handler(CCSPlayerController? player, CommandInfo comm
3943
string baseCommand = commandInfo.GetArg(0);
4044

4145
if (_api.HasPrime(player)) return HookResult.Continue;
46+
if (_immunityFlag != null && AdminManager.PlayerHasPermissions(player, _immunityFlag)) return HookResult.Continue;
4247

4348
foreach (var blockCmd in Config.BlockCommands)
4449
{

modules/PMKick/Plugin.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using CounterStrikeSharp.API.Core;
22
using CounterStrikeSharp.API.Core.Capabilities;
3+
using CounterStrikeSharp.API.Modules.Admin;
34
using CounterStrikeSharp.API.ValveConstants.Protobuf;
45
using PrimeManager.API;
56

@@ -8,24 +9,28 @@ namespace PMKick;
89
public class Plugin : BasePlugin
910
{
1011
public override string ModuleName => "[PM] Kick";
11-
public override string ModuleVersion => "1.0.0";
12+
public override string ModuleVersion => "1.0.1";
1213
public override string ModuleAuthor => "xstage";
1314

1415
public static PluginCapability<IPrimeManager> PmApi { get; } = new("PrimeManager");
1516

17+
private string? _immunityFlag;
18+
1619
public override void OnAllPluginsLoaded(bool hotReload)
1720
{
1821
IPrimeManager? api = PmApi.Get();
1922

2023
if (api != null)
2124
{
2225
api.PersonaDataRecivedEvent += OnPersonaDataRecived;
26+
_immunityFlag = api.GetModuleSetting<string>("immunity_flag");
2327
}
2428
}
2529

2630
private void OnPersonaDataRecived(CCSPlayerController player, bool hasPrime)
2731
{
2832
if (!player.IsValid || hasPrime) return;
33+
if (_immunityFlag != null && AdminManager.PlayerHasPermissions(player, _immunityFlag)) return;
2934

3035
player.Disconnect(NetworkDisconnectionReason.NETWORK_DISCONNECT_CLIENT_CONSISTENCY_FAIL);
3136
}

0 commit comments

Comments
 (0)