为你的 CounterStrikeSharp 插件添加配置文件
写死在代码里的数值用来测试没问题,但一个真正的插件需要各种设置:消息、上限、数据库连接信息。CounterStrikeSharp 可以根据一个普通的 C# 类,为你自动生成并读取 JSON 配置。
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 会读取文件,并在 Load 之前调用 OnConfigParsed,把已加载的值交给你。
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
文件会生成在哪里
插件第一次加载时,框架会把带有你默认值的文件写入 configs/plugins 下以插件名命名的文件夹。服主编辑的就是这个文件。
counterstrikesharp
configs
plugins
ConfigExample
ConfigExample.json
5
文件是什么样子
结果是一个简单的 JSON 文件,每个属性对应一项。服主可以修改其中的值,其余保持不变。
{
"WelcomeMessage": "Welcome to the server!",
"MaxWarnings": 3
}
6
使用这些值
配置解析完成后,你可以在插件的任何地方(例如 Load 或事件处理程序中)通过 Config 属性读取设置。
Logger.LogInformation("Warnings allowed: {Max}", Config.MaxWarnings);
7
需要记住的事
文件的改动会在插件重新加载时生效,而不是立即生效。如果在新版本中重命名或移除了某个属性,请告知用户,因为他们旧的文件里还是旧的名称。另外,配置是可读的文本,不要把不想让管理员看到的内容放进去。
不同版本之间不要在不通知的情况下更改属性名称,否则升级的服主会在毫无察觉的情况下丢失自己的设置。
这篇教程对你有帮助吗?
有 1 位用户觉得这篇教程有用
页面生成耗时 0.015 秒
CounterStrikeSharp Web Compiler V1.0 - 制作工具
由
Barlap 为社区打造。
Barlap 为社区打造。