MySQL: Online
Load: High
Sandbox: Ready

Adicionando um arquivo de configuração ao seu plugin do CounterStrikeSharp

Valores fixos no código servem para um teste, mas um plugin de verdade precisa de configurações: mensagens, limites, dados do banco. O CounterStrikeSharp pode criar e ler para você uma configuração JSON a partir de uma simples classe C#.

1

Por que usar uma configuração

Com uma configuração, o dono do servidor edita um arquivo de texto e recarrega, em vez de esperar você mudar o código e enviar uma nova versão. Ela também mantém segredos, como senhas, fora do código-fonte.

2

Descreva as configurações numa classe

Crie uma classe que herda de BasePluginConfig. Cada propriedade é uma configuração, e o valor atribuído é o padrão. JsonPropertyName fixa o nome usado no arquivo.

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

Conecte-a ao plugin

Faça o plugin implementar IPluginConfig com a sua classe de configuração. O CounterStrikeSharp então lê o arquivo e chama OnConfigParsed antes de Load, entregando os valores carregados.

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

Onde o arquivo é criado

Na primeira vez que o plugin carrega, o framework grava o arquivo com seus valores padrão em configs/plugins, numa pasta com o nome do plugin. Os donos do servidor editam esse arquivo.

counterstrikesharp
configs
plugins
ConfigExample
ConfigExample.json
5

Como o arquivo fica

O resultado é um arquivo JSON simples com uma entrada por propriedade. O dono pode alterar valores e deixar o resto como está.

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

Use os valores

Leia as configurações pela propriedade Config em qualquer lugar do plugin, depois que a configuração for processada, por exemplo em Load ou num manipulador de evento.

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

Coisas para lembrar

As mudanças no arquivo valem quando o plugin é carregado de novo, não instantaneamente. Se você renomear ou remover uma propriedade numa nova versão, avise os usuários, porque o arquivo antigo deles ainda tem os nomes antigos. E como a configuração é texto legível, não coloque nada que um admin não deva ver.

Nunca mude o nome de uma propriedade entre versões sem avisar. Quem atualizar perde as configurações sem perceber.

Este tutorial foi útil?

1 utilizador achou este tutorial útil
Página gerada em 0.011 segundos
CounterStrikeSharp Web Compiler V1.0 - Feito com por RomaniaBarlap para a comunidade.