Konfigurációs fájl hozzáadása a CounterStrikeSharp-bővítményedhez
A kódba égetett értékek egy teszthez jók, de egy igazi bővítménynek beállításokra van szüksége: üzenetekre, korlátokra, adatbázis-hozzáférésre. A CounterStrikeSharp egy egyszerű C#-osztályból létre tud hozni és be tud olvasni egy JSON-konfigurációt.
Miért kell konfiguráció
Konfigurációval a szerver üzemeltetője egy szövegfájlt szerkeszt, és újratölt, ahelyett hogy arra várna, hogy te megváltoztasd a kódot, és új verziót küldj. Emellett a titkok, például a jelszavak, kimaradnak a forráskódból.
Írd le a beállításokat egy osztályban
Hozz létre egy osztályt, amely a BasePluginConfigból származik. Minden tulajdonság egy beállítás, a hozzárendelt érték pedig az alapértelmezés. A JsonPropertyName rögzíti a fájlban használt nevet.
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;
}
Kösd a bővítményhez
Valósítsa meg a bővítmény az IPluginConfig-ot a konfigurációs osztályoddal. A CounterStrikeSharp ezután beolvassa a fájlt, és a Load előtt meghívja az OnConfigParsed-ot, átadva a betöltött értékeket.
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; }}
Hol jön létre a fájl
A bővítmény első betöltésekor a keretrendszer az alapértelmezett értékeiddel megírja a fájlt a configs/plugins alatt, a bővítmény nevét viselő mappában. A szerver üzemeltetői ezt a fájlt szerkesztik.
Hogyan néz ki a fájl
Az eredmény egy egyszerű JSON-fájl, tulajdonságonként egy bejegyzéssel. Az üzemeltető megváltoztathatja az értékeket, a többit pedig érintetlenül hagyhatja.
{
"WelcomeMessage": "Welcome to the server!",
"MaxWarnings": 3
}
Használd az értékeket
A beállításokat a Config tulajdonságból olvasd a bővítmény bármely pontján, a konfiguráció feldolgozása után, például a Load-ban vagy egy eseménykezelőben.
Logger.LogInformation("Warnings allowed: {Max}", Config.MaxWarnings);
Amit érdemes észben tartani
A fájlban végzett módosítások a bővítmény újratöltésekor érvényesülnek, nem azonnal. Ha egy új verzióban átnevezel vagy eltávolítasz egy tulajdonságot, értesítsd a felhasználókat, mert a régi fájljukban még a régi nevek szerepelnek. És mivel a konfiguráció olvasható szöveg, ne tegyél bele semmit, amit nem szeretnél, hogy egy admin lásson.
Hasznos volt ez az útmutató?
Barlap a közösségért.