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
Fisier de configurareusing 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]);
}
Cerinte de compatibilitate{
"TableName": "css_cookies",
"TableNamePlayerData": "css_cookies_playerdata",
"DatabaseType": "sqlite",
"DatabaseHost": "",
"DatabaseName": "",
"DatabaseUsername": "",
"DatabasePassword": "",
"DatabasePort": 3306,
"DatabaseSslmode": "",
"Debug": false,
"ConfigVersion": 1
}
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

