MySQL: Online
Load: Low
Sandbox: Running

Как да добавите конфигурационен файл към плъгина си за CounterStrikeSharp

Стойностите, вписани в кода, стигат за тест, но истинският плъгин се нуждае от настройки: съобщения, ограничения, данни за базата. CounterStrikeSharp може да създава и чете вместо вас JSON конфигурация от обикновен C# клас.

1

Защо конфигурация

С конфигурация собственикът на сървъра редактира текстов файл и презарежда, вместо да чака вие да промените кода и да изпратите нова версия. Освен това тайните, като паролите, остават извън изходния код.

2

Опишете настройките в клас

Създайте клас, който наследява BasePluginConfig. Всяко свойство е настройка, а зададената стойност е стойността по подразбиране. JsonPropertyName фиксира името, ползвано във файла.

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;
}
3

Свържете го с плъгина

Накарайте плъгина да имплементира IPluginConfig с вашия конфигурационен клас. След това CounterStrikeSharp чете файла и извиква OnConfigParsed преди Load, като ви подава заредените стойности.

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;    }}
4

Къде се създава файлът

При първото зареждане на плъгина framework-ът записва файла с вашите стойности по подразбиране в configs/plugins, в папка с името на плъгина. Собствениците на сървъри редактират този файл.

counterstrikesharp
configs
plugins
ConfigExample
ConfigExample.json
5

Как изглежда файлът

Резултатът е прост JSON файл с по един запис за всяко свойство. Собственикът може да променя стойностите и да оставя останалите непокътнати.

{
  "WelcomeMessage": "Welcome to the server!",
  "MaxWarnings": 3
}
6

Ползвайте стойностите

Четете настройките от свойството Config навсякъде в плъгина, след като конфигурацията е обработена, например в Load или в обработчик на събитие.

Logger.LogInformation("Warnings allowed: {Max}", Config.MaxWarnings);
7

Неща, които да помните

Промените във файла се прилагат, когато плъгинът се зареди отново, а не веднага. Ако преименувате или премахнете свойство в нова версия, предупредете потребителите, защото старият им файл все още има старите имена. А понеже конфигурацията е четим текст, не слагайте там нищо, което не искате админ да вижда.

Никога не променяйте име на свойство между версиите, без да предупредите. Собствениците, които обновяват, ще загубят настройките си, без да забележат.

Беше ли полезно това ръководство?

1 потребител намери това ръководство за полезно
Страницата е генерирана за 0.015 секунди
CounterStrikeSharp Web Compiler V1.0 - Направено с от RomaniaBarlap за общността.