Añadir un archivo de configuración a tu plugin de CounterStrikeSharp
Los valores escritos a fuego sirven para una prueba, pero un plugin de verdad necesita ajustes: mensajes, límites, datos de la base de datos. CounterStrikeSharp puede crear y leer por ti una configuración JSON a partir de una simple clase C#.
Por qué usar una configuración
Con una configuración, el dueño del servidor edita un archivo de texto y recarga, en vez de esperar a que cambies el código y envíes una versión nueva. Además mantiene los secretos, como las contraseñas, fuera del código fuente.
Describe los ajustes en una clase
Crea una clase que herede de BasePluginConfig. Cada propiedad es un ajuste y el valor asignado es el predeterminado. JsonPropertyName fija el nombre que se usa en el archivo.
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;
}
Conéctala con el plugin
Haz que el plugin implemente IPluginConfig con tu clase de configuración. CounterStrikeSharp lee entonces el archivo y llama a OnConfigParsed antes de Load, entregándote los valores cargados.
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; }}
Dónde se crea el archivo
La primera vez que se carga el plugin, el framework escribe el archivo con tus valores predeterminados en configs/plugins, dentro de una carpeta con el nombre del plugin. Los dueños del servidor editan ese archivo.
Cómo es el archivo
El resultado es un archivo JSON sencillo con una entrada por propiedad. El dueño puede cambiar los valores y dejar el resto igual.
{
"WelcomeMessage": "Welcome to the server!",
"MaxWarnings": 3
}
Usa los valores
Lee los ajustes desde la propiedad Config en cualquier punto del plugin, una vez analizada la configuración, por ejemplo en Load o en un manejador de eventos.
Logger.LogInformation("Warnings allowed: {Max}", Config.MaxWarnings);
Cosas que debes recordar
Los cambios en el archivo se aplican cuando el plugin se vuelve a cargar, no al instante. Si renombras o eliminas una propiedad en una versión nueva, avisa a tus usuarios, porque su archivo antiguo conserva los nombres viejos. Y como la configuración es texto legible, no pongas nada que no quieras que vea un admin.
¿Te ha resultado útil este tutorial?
Barlap para la comunidad.