Aggiungere un file di configurazione al tuo plugin CounterStrikeSharp
I valori scritti nel codice vanno bene per una prova, ma un vero plugin ha bisogno di impostazioni: messaggi, limiti, dati del database. CounterStrikeSharp può creare e leggere per te una configurazione JSON a partire da una semplice classe C#.
Perché una configurazione
Con una configurazione, il proprietario del server modifica un file di testo e ricarica, invece di aspettare che tu cambi il codice e invii una nuova versione. Inoltre tiene i segreti, come le password, fuori dal codice sorgente.
Descrivi le impostazioni in una classe
Crea una classe che eredita da BasePluginConfig. Ogni proprietà è un’impostazione e il valore assegnato è quello predefinito. JsonPropertyName fissa il nome usato nel file.
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;
}
Collegala al plugin
Fai implementare al plugin IPluginConfig con la tua classe di configurazione. CounterStrikeSharp legge allora il file e chiama OnConfigParsed prima di Load, consegnandoti i valori caricati.
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; }}
Dove viene creato il file
La prima volta che il plugin si carica, il framework scrive il file con i tuoi valori predefiniti in configs/plugins, in una cartella con il nome del plugin. I proprietari del server modificano questo file.
Com’è fatto il file
Il risultato è un semplice file JSON con una voce per ogni proprietà. Il proprietario può cambiare i valori e lasciare invariato il resto.
{
"WelcomeMessage": "Welcome to the server!",
"MaxWarnings": 3
}
Usa i valori
Leggi le impostazioni dalla proprietà Config in qualsiasi punto del plugin, dopo che la configurazione è stata analizzata, per esempio in Load o in un gestore di eventi.
Logger.LogInformation("Warnings allowed: {Max}", Config.MaxWarnings);
Cose da ricordare
Le modifiche al file si applicano quando il plugin viene ricaricato, non all’istante. Se rinomini o rimuovi una proprietà in una nuova versione, avvisa gli utenti, perché il loro vecchio file ha ancora i vecchi nomi. E dato che la configurazione è testo leggibile, non metterci nulla che non vorresti far vedere a un admin.
Questo tutorial ti è stato utile?
Barlap per la comunità.