MySQL: Online
Load: Low
Sandbox: Running

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#.

1

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.

2

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

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.

counterstrikesharp
configs
plugins
ConfigExample
ConfigExample.json
5

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
}
6

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);
7

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.

Nunca cambies el nombre de una propiedad entre versiones sin avisar. Quienes actualicen perderán sus ajustes sin darse cuenta.

¿Te ha resultado útil este tutorial?

1 usuario encontró útil este tutorial
Página generada en 0.012 segundos
CounterStrikeSharp Web Compiler V1.0 - Hecho con por RomaniaBarlap para la comunidad.