MySQL: Online
Load: Low
Sandbox: Ready

Eine Konfigurationsdatei für dein CounterStrikeSharp-Plugin

Fest eingebaute Werte reichen für einen Test, aber ein richtiges Plugin braucht Einstellungen: Nachrichten, Grenzwerte, Datenbankzugang. CounterStrikeSharp kann aus einer einfachen C#-Klasse eine JSON-Konfiguration erzeugen und einlesen.

1

Warum eine Konfiguration

Mit einer Konfiguration bearbeitet der Serverbetreiber eine Textdatei und lädt neu, statt darauf zu warten, dass du den Code änderst und eine neue Version schickst. Außerdem bleiben Geheimnisse wie Passwörter aus dem Quellcode heraus.

2

Beschreibe die Einstellungen in einer Klasse

Erstelle eine Klasse, die von BasePluginConfig erbt. Jede Eigenschaft ist eine Einstellung, und der zugewiesene Wert ist der Standard. JsonPropertyName legt den Namen in der Datei fest.

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

Verbinde sie mit dem Plugin

Lass das Plugin IPluginConfig mit deiner Konfigurationsklasse implementieren. CounterStrikeSharp liest dann die Datei und ruft OnConfigParsed vor Load auf, wobei es dir die geladenen Werte übergibt.

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

Wo die Datei angelegt wird

Beim ersten Laden des Plugins schreibt das Framework die Datei mit deinen Standardwerten nach configs/plugins, in einen Ordner mit dem Namen des Plugins. Serverbetreiber bearbeiten diese Datei.

counterstrikesharp
configs
plugins
ConfigExample
ConfigExample.json
5

Wie die Datei aussieht

Das Ergebnis ist eine einfache JSON-Datei mit einem Eintrag pro Eigenschaft. Der Betreiber kann Werte ändern und den Rest unverändert lassen.

{
  "WelcomeMessage": "Welcome to the server!",
  "MaxWarnings": 3
}
6

Nutze die Werte

Lies die Einstellungen überall im Plugin aus der Eigenschaft Config, nachdem die Konfiguration eingelesen wurde, zum Beispiel in Load oder in einem Ereignis-Handler.

Logger.LogInformation("Warnings allowed: {Max}", Config.MaxWarnings);
7

Dinge, die du beachten solltest

Änderungen an der Datei greifen, wenn das Plugin erneut geladen wird, nicht sofort. Benennst du in einer neuen Version eine Eigenschaft um oder entfernst sie, sag es deinen Nutzern, denn ihre alte Datei trägt noch die alten Namen. Und da die Konfiguration lesbarer Text ist, schreibe nichts hinein, was ein Admin nicht sehen sollte.

Ändere Eigenschaftsnamen nie ohne Hinweis zwischen Versionen. Betreiber, die aktualisieren, verlieren sonst unbemerkt ihre Einstellungen.

War diese Anleitung hilfreich?

1 Nutzer fand diese Anleitung hilfreich
Seite generiert in 0.011 Sekunden
CounterStrikeSharp Web Compiler V1.0 - Erstellt mit von RomaniaBarlap für die Community.