Skip to content

Commit ac8f60c

Browse files
authored
0.6
1 parent 81c9f97 commit ac8f60c

File tree

6 files changed

+26
-6
lines changed

6 files changed

+26
-6
lines changed

AnyBaseLib.dll

2 KB
Binary file not shown.

PlayerSettings/CPlayerSettings.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using CounterStrikeSharp.API.Core;
1+
using CounterStrikeSharp.API;
2+
using CounterStrikeSharp.API.Core;
23
using System;
34
using System.Collections.Generic;
45
using System.Linq;
@@ -48,14 +49,15 @@ public bool EqualPlayer(CCSPlayerController _player)
4849
return player == _player;
4950
}
5051

51-
internal void ParseLoadedSettings(List<List<string>> rows)
52+
internal void ParseLoadedSettings(List<List<string>> rows, List<Action<CCSPlayerController>> actions)
5253
{
5354
foreach (var row in rows)
5455
{
5556
cached_values[row[0]] = row[1];
5657
}
58+
foreach (var action in actions)
59+
Server.NextFrameAsync(() => action(player));
5760
}
5861

59-
6062
}
6163
}

PlayerSettings/Main.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace PlayerSettings;
1212
public class PlayerSettingsCore : BasePlugin
1313
{
1414
public override string ModuleName => "PlayerSettings [Core]";
15-
public override string ModuleVersion => "0.5";
15+
public override string ModuleVersion => "0.6";
1616
public override string ModuleAuthor => "Nick Fox";
1717
public override string ModuleDescription => "One storage for player's settings (aka ClientCookies)";
1818

PlayerSettings/SettingsApi.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,23 @@ namespace PlayerSettings
1111

1212
internal class SettingsApi : ISettingsApi
1313
{
14-
CPlayerSettings[] settings;
14+
private CPlayerSettings[] settings;
15+
internal List<Action<CCSPlayerController>> actions;
1516
public SettingsApi()
1617
{
1718
settings = Array.Empty<CPlayerSettings>();
1819
}
1920

21+
public void AddHook(Action<CCSPlayerController> action)
22+
{
23+
actions.Add(action);
24+
}
25+
26+
public void RemHook(Action<CCSPlayerController> action)
27+
{
28+
actions.RemoveAll(x => x == action);
29+
}
30+
2031
private CPlayerSettings FindUser(CCSPlayerController player)
2132
{
2233
foreach (var item in this.settings)
@@ -54,7 +65,7 @@ internal void LoadOnConnect(CCSPlayerController player)
5465
{
5566
var user = FindUser(player);
5667

57-
Storage.LoadSettings(user.UserId(), user.ParseLoadedSettings);
68+
Storage.LoadSettings(user.UserId(), (vars) => user.ParseLoadedSettings(vars, actions));
5869
}
5970

6071
}

PlayerSettings/Storage.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ public static void SetUserSettingValue(int userid, string param, string value)
7575
db.QueryAsync("update \"settings_values\" set \"value\" = \"{ARG}\" where \"user_id\" = {ARG} and \"param\" = \"{ARG}\"", new List<string>([value, userid.ToString(), param]), null, true);
7676
}
7777

78+
public static void Close()
79+
{
80+
db.Close();
81+
}
82+
7883

7984

8085

PlayerSettingsApi/ISettingsApi.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,7 @@ public interface ISettingsApi
1111
{
1212
public string GetPlayerSettingsValue(CCSPlayerController player, string param, string default_value);
1313
public void SetPlayerSettingsValue(CCSPlayerController player, string param, string value);
14+
public void AddHook(Action<CCSPlayerController> action);
15+
public void RemHook(Action<CCSPlayerController> action);
1416
}
1517
}

0 commit comments

Comments
 (0)