circle-info
alpha version all features and options may change dramatically or disappear

Plugin_config

📄 PluginConfig.cs – centralna konfiguracja wtyczki

🎯 Cel

PluginConfig przechowuje wszystkie ustawienia, które są ładowane z pliku config.yml i używane przez pozostałe komponenty wtyczki. Obejmuje:

  • aktywację poszczególnych funkcji,

  • parametry czasowe (np. interwały),

  • listę efektów aktywowanych przez system monetek,

  • mechanizmy walidacji i domyślnych wartości.


🧱 Struktura klasy

public class PluginConfig
  • Każda właściwość odpowiada jednemu wpisowi w pliku config.yml

  • Domyślne wartości są określone przy deklaracji (= true, = 60, itp.)


🔗 Sekcje konfiguracji

🔘 Ogólne

public bool IsEnabled { get; set; } = true;
  • Aktywacja lub dezaktywacja całej wtyczki


🗣️ LosoweKomunikaty.cs

  • Umożliwia kontrolę częstotliwości komunikatów systemowych od C.A.S.S.I.E.


🚪 OkresoweZamykanieDrzwi.cs

  • Określa, czy lockdown drzwi ma działać oraz jego harmonogram.


LateJoinSystem.cs

  • Steruje dopuszczaniem graczy do rundy po jej rozpoczęciu.


🪙 Monetki.cs

  • Lista przełączników aktywujących konkretne efekty monet.

  • Dobrze przemyślana architektura pozwala dynamicznie budować listę efektów w runtime.


🧍 Lobby.cs

  • Włącza lub wyłącza pre-game lobby.


📜 DefaultConfigTemplate – automatyczny YAML z komentarzami

  • Gotowy do zapisania na dysku jako config.yml

  • Zawiera opisy i domyślne wartości każdej opcji

  • Idealne jako plik wyjściowy przy pierwszym uruchomieniu


🛠️ CreateDefault() – domyślna konfiguracja w kodzie

Zwraca nowy obiekt PluginConfig z wartościami domyślnymi. Używane np. w sytuacjach, gdy plik konfiguracyjny nie istnieje lub nie można go sparsować.


🧪 ValidateAndFix() – walidacja konfiguracji

  • Sprawdza poprawność wartości (np. Max >= Min, > 0, itp.)

  • Zwraca poprawioną kopię konfiguracji + listę ostrzeżeń

  • Zapobiega crashom lub błędnemu zachowaniu pluginu w przypadku złej konfiguracji YAML

Last updated