Dodavanje konfiguracionog fajla u vaš CounterStrikeSharp plagin
Vrednosti upisane u kod dobre su za probu, ali pravi plagin treba podešavanja: poruke, ograničenja, podatke za bazu. CounterStrikeSharp može umesto vas da napravi i pročita JSON konfiguraciju iz obične C# klase.
Zašto konfiguracija
Uz konfiguraciju, vlasnik servera uređuje tekstualni fajl i ponovo učitava, umesto da čeka da vi promenite kod i pošaljete novu verziju. Pored toga, tajne poput lozinki ostaju van izvornog koda.
Opišite podešavanja u klasi
Napravite klasu koja nasleđuje BasePluginConfig. Svako svojstvo je jedno podešavanje, a dodeljena vrednost je podrazumevana. JsonPropertyName fiksira ime koje se koristi u fajlu.
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;
}
Povežite je sa plaginom
Neka plagin implementira IPluginConfig sa vašom konfiguracionom klasom. CounterStrikeSharp tada čita fajl i poziva OnConfigParsed pre Load, predajući vam učitane vrednosti.
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; }}
Gde se fajl pravi
Prvi put kad se plagin učita, framework upisuje fajl sa vašim podrazumevanim vrednostima u configs/plugins, u folder sa imenom plagina. Vlasnici servera uređuju taj fajl.
Kako fajl izgleda
Rezultat je jednostavan JSON fajl sa po jednim unosom za svako svojstvo. Vlasnik može da menja vrednosti, a ostalo ostavi netaknutim.
{
"WelcomeMessage": "Welcome to the server!",
"MaxWarnings": 3
}
Koristite vrednosti
Čitajte podešavanja iz svojstva Config bilo gde u plaginu, nakon što je konfiguracija obrađena, na primer u Load ili u rukovaocu događaja.
Logger.LogInformation("Warnings allowed: {Max}", Config.MaxWarnings);
Stvari koje treba zapamtiti
Izmene u fajlu primenjuju se kad se plagin ponovo učita, a ne odmah. Ako u novoj verziji preimenujete ili uklonite svojstvo, obavestite korisnike, jer njihov stari fajl još ima stara imena. A pošto je konfiguracija čitljiv tekst, ne stavljajte u nju ništa što ne biste želeli da vidi admin.
Da li vam je ovaj vodič bio koristan?
Barlap za zajednicu.