CounterStrikeSharp eklentinize yapılandırma dosyası ekleme
Koda gömülü değerler bir deneme için yeterlidir ama gerçek bir eklenti ayara ihtiyaç duyar: mesajlar, sınırlar, veritabanı bilgileri. CounterStrikeSharp, düz bir C# sınıfından sizin için JSON yapılandırması oluşturup okuyabilir.
Neden yapılandırma
Yapılandırmayla sunucu sahibi bir metin dosyasını düzenleyip yeniden yükler; sizin kodu değiştirip yeni sürüm göndermenizi beklemez. Ayrıca parola gibi sırlar kaynak kodun dışında kalır.
Ayarları bir sınıfta tanımlayın
BasePluginConfig’ten türeyen bir sınıf oluşturun. Her özellik bir ayardır ve atadığınız değer varsayılandır. JsonPropertyName dosyada kullanılacak adı sabitler.
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;
}
Eklentiye bağlayın
Eklentinin, yapılandırma sınıfınızla IPluginConfig uygulamasını sağlayın. CounterStrikeSharp bu durumda dosyayı okur ve Load’dan önce OnConfigParsed’ı çağırarak yüklenen değerleri size verir.
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; }}
Dosya nerede oluşur
Eklenti ilk kez yüklendiğinde framework, varsayılan değerlerinizle dosyayı configs/plugins içinde, eklentinin adını taşıyan bir klasöre yazar. Sunucu sahipleri bu dosyayı düzenler.
Dosya nasıl görünür
Sonuç, her özellik için bir kayıt içeren basit bir JSON dosyasıdır. Sahip değerleri değiştirebilir, gerisini olduğu gibi bırakabilir.
{
"WelcomeMessage": "Welcome to the server!",
"MaxWarnings": 3
}
Değerleri kullanın
Yapılandırma ayrıştırıldıktan sonra eklentinin herhangi bir yerinde, örneğin Load içinde ya da bir olay işleyicisinde, ayarları Config özelliğinden okuyun.
Logger.LogInformation("Warnings allowed: {Max}", Config.MaxWarnings);
Akılda tutulacaklar
Dosyadaki değişiklikler anında değil, eklenti yeniden yüklendiğinde uygulanır. Yeni bir sürümde bir özelliği yeniden adlandırır ya da kaldırırsanız kullanıcılarınızı uyarın; çünkü eski dosyalarında hâlâ eski adlar vardır. Yapılandırma okunabilir metin olduğundan, bir adminin görmesini istemeyeceğiniz hiçbir şeyi oraya koymayın.
Bu rehber işinize yaradı mı?
Barlap topluluk için.