Page 1 of 1

CSSHARP Clientprefs 1.0.6

Posted: Tue Feb 24, 2026 8:33 pm
by greenie
Caracteristici principale
Plugin-ul expune o serie de functii native care permit developerilor sa salveze datele jucatorilor in SQLite sau MySQL fara a include cod SQL direct in plugin-ul lor. Oferind un layer intermediar, plugin-ul faciliteaza stocarea simpla a cookie-urilor si a altor date ale jucatorilor in baza de date.


Exemplu de folosire
using Clientprefs.API;

private readonly PluginCapability<IClientprefsApi> g_PluginCapability = new("Clientprefs");
private IClientprefsApi? ClientprefsApi;
private int g_iCookieID = 0;
private Dictionary<CCSPlayerController, string> playerCookie = new();

public override void Unload(bool hotReload)
{
base.Unload(hotReload);

if (ClientprefsApi == null) return;

ClientprefsApi.OnDatabaseLoaded -= OnClientprefDatabaseReady;
ClientprefsApi.OnPlayerCookiesCached -= OnPlayerCookiesCached;
}

public override void OnAllPluginsLoaded(bool hotReload)
{
ClientprefsApi = g_PluginCapability.Get();

if (ClientprefsApi == null) return;

ClientprefsApi.OnDatabaseLoaded += OnClientprefDatabaseReady;
ClientprefsApi.OnPlayerCookiesCached += OnPlayerCookiesCached;

if (hotReload)
{
if (ClientprefsApi == null || g_iCookieID == -1) return;

foreach (var player in Utilities.GetPlayers().Where(p => !p.IsBot))
{
if (!ClientprefsApi.ArePlayerCookiesCached(player)) continue;
playerCookie[player] = ClientprefsApi.GetPlayerCookie(player, g_iCookieID);
}
}
}

public void OnClientprefDatabaseReady()
{
if (ClientprefsApi == null) return;

g_iCookieID = ClientprefsApi.RegPlayerCookie("example_cookie", "Example cookie description", CookieAccess.CookieAccess_Public);

if(g_iCookieID == -1)
{
Logger.LogError("[Clientprefs-Example] Failed to register/load cookie 1");
return;
}

Logger.LogInformation($"[Clientprefs-Example] Registered/Loaded cookie with ID: {g_iCookieID}"); // ID: 1
}

public void OnPlayerCookiesCached(CCSPlayerController player)
{
if (ClientprefsApi == null || g_iCookieID == -1) return;

playerCookie[player] = ClientprefsApi.GetPlayerCookie(player, g_iCookieID);

Logger.LogInformation($"[Clientprefs-Example] Cookie value: {cookieValue}");
}

[ConsoleCommand("css_clientprefs_example", "Saves example clientprefs cookie value")]
public void OnExampleCommand(CCSPlayerController? caller, CommandInfo _)
{
if (caller == null || !caller.IsValid || ClientprefsApi == null || g_iCookieID == -1)
{
return;
}

ClientprefsApi.SetPlayerCookie(caller, g_iCookieID, playerCookie[player]);
}
Fisier de configurare
{
"TableName": "css_cookies",
"TableNamePlayerData": "css_cookies_playerdata",
"DatabaseType": "sqlite",
"DatabaseHost": "",
"DatabaseName": "",
"DatabaseUsername": "",
"DatabasePassword": "",
"DatabasePort": 3306,
"DatabaseSslmode": "",
"Debug": false,
"ConfigVersion": 1
}
Cerinte de compatibilitate
Counter-Strike 2
CounterStrikeSharp
Metamod

Instructiuni de instalare
Descarcati ultima versiune a plugin-ului folosind butonul de Download
Extrageti folderul Clientprefs in /csgo/addons/metamod/counterstrikesharp/plugins
Extrageti folderul ClientprefsApi in /csgo/addons/metamod/counterstrikesharp/shared
Schimbati harta sau reporniti server-ul pentru a incarca plugin-ul

https://laleagane.ro/forum/resources/cl ... 1/download