Ajouter un fichier de configuration à votre plugin CounterStrikeSharp
Des valeurs codées en dur suffisent pour un test, mais un vrai plugin a besoin de réglages : messages, limites, accès à la base de données. CounterStrikeSharp peut créer et lire pour vous une configuration JSON à partir d’une simple classe C#.
Pourquoi une configuration
Avec une configuration, le propriétaire du serveur modifie un fichier texte et recharge, au lieu d’attendre que vous changiez le code et envoyiez une nouvelle version. Cela garde aussi les secrets, comme les mots de passe, hors du code source.
Décrivez les réglages dans une classe
Créez une classe qui hérite de BasePluginConfig. Chaque propriété est un réglage, et la valeur assignée est celle par défaut. JsonPropertyName fixe le nom utilisé dans le fichier.
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;
}
Reliez-la au plugin
Faites implémenter IPluginConfig à votre plugin avec votre classe de configuration. CounterStrikeSharp lit alors le fichier et appelle OnConfigParsed avant Load, en vous transmettant les valeurs chargées.
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; }}
Où le fichier est créé
Au premier chargement du plugin, le framework écrit le fichier avec vos valeurs par défaut dans configs/plugins, dans un dossier portant le nom du plugin. Les propriétaires de serveur modifient ce fichier.
À quoi ressemble le fichier
Le résultat est un fichier JSON simple, avec une entrée par propriété. Le propriétaire peut changer des valeurs et laisser le reste intact.
{
"WelcomeMessage": "Welcome to the server!",
"MaxWarnings": 3
}
Utilisez les valeurs
Lisez les réglages depuis la propriété Config n’importe où dans le plugin, une fois la configuration analysée, par exemple dans Load ou dans un gestionnaire d’événement.
Logger.LogInformation("Warnings allowed: {Max}", Config.MaxWarnings);
À ne pas oublier
Les modifications du fichier s’appliquent au prochain chargement du plugin, pas instantanément. Si vous renommez ou supprimez une propriété dans une nouvelle version, prévenez vos utilisateurs, car leur ancien fichier garde les anciens noms. Et comme la configuration est du texte lisible, n’y mettez rien que vous ne voudriez pas qu’un admin voie.
Ce tutoriel vous a-t-il été utile ?
Barlap pour la communauté.