Cum adaugi un fișier de configurare pluginului tău CounterStrikeSharp
Valorile scrise direct în cod merg pentru un test, dar un plugin adevărat are nevoie de setări: mesaje, limite, date de conectare la baza de date. CounterStrikeSharp poate crea și citi pentru tine un fișier JSON de configurare, pornind de la o simplă clasă C#.
De ce o configurare
Cu un fișier de configurare, proprietarul serverului editează un fișier text și reîncarcă pluginul, în loc să aștepte să schimbi tu codul și să trimiți o versiune nouă. Totodată ține secretele, precum parolele, în afara codului sursă.
Descrie setările într-o clasă
Creează o clasă care moștenește BasePluginConfig. Fiecare proprietate este o setare, iar valoarea atribuită este cea implicită. JsonPropertyName fixează numele folosit în fișier.
using System.Text.Json.Serialization;
using CounterStrikeSharp.API.Core;
public class MyConfig : BasePluginConfig
{
[JsonPropertyName("WelcomeMessage")]
public string WelcomeMessage { get; set; } = "Welcome to the server!";
[JsonPropertyName("MaxWarnings")]
public int MaxWarnings { get; set; } = 3;
}
Leag-o de plugin
Fă pluginul să implementeze IPluginConfig cu clasa ta de configurare. CounterStrikeSharp citește apoi fișierul și apelează OnConfigParsed înainte de Load, dându-ți valorile încărcate.
public class MyPlugin : BasePlugin, IPluginConfig<MyConfig>{
public override string ModuleName => "Config Example";
public override string ModuleVersion => "1.0.0";
public MyConfig Config { get; set; } = new();
public void OnConfigParsed(MyConfig config) { Config = config; }}
Unde se creează fișierul
Prima dată când se încarcă pluginul, framework-ul scrie fișierul cu valorile tale implicite în configs/plugins, într-un folder cu numele pluginului. Proprietarii de server editează acest fișier.
Cum arată fișierul
Rezultatul este un fișier JSON simplu, cu câte o intrare pentru fiecare proprietate. Proprietarul poate schimba valorile și le lasă pe celelalte neatinse.
{
"WelcomeMessage": "Welcome to the server!",
"MaxWarnings": 3
}
Folosește valorile
Citește setările din proprietatea Config oriunde în plugin, după ce configurarea a fost procesată, de exemplu în Load sau într-un handler de eveniment.
Logger.LogInformation("Warnings allowed: {Max}", Config.MaxWarnings);
Lucruri de reținut
Modificările din fișier se aplică când pluginul este încărcat din nou, nu instantaneu. Dacă redenumești sau ștergi o proprietate într-o versiune nouă, anunță utilizatorii, pentru că fișierul lor vechi are încă numele vechi. Iar configurarea fiind text lizibil, nu pune acolo nimic ce nu ai vrea să vadă un admin.
A fost util acest tutorial?
Barlap pentru comunitate.