BukkitWiki

Welcome to the BukkitWiki!

This Wiki is home to Bukkit's documentation and regulations surrounding the Bukkit Project and it's services. Want to help out? We would love to have you! Signup to get started!

READ MORE

BukkitWiki
(Translated first part and the whole structure for further updates)
 
m (Removed broken table)
Line 1: Line 1:
<html><table width="100%" style="border: 0; background-color: #ffffff" cellpadding="0" cellspacing="3">
 
<tbody><tr>
 
<td style="width: 100%; vertical-align: top; border:1px solid #ccc; background-color: #ffffff">
 
<div style="background-color:red; font-size:1px; height:8px; border-bottom:1px solid #ccc;"></div><div style="padding:0.5em 0.3em 0.3em 0.3em; margin:0; text-indent:0.1em; font-weight: bold; border-bottom:1px solid #aaaaaa;"><i>Artykuł niepełny</i></div>
 
<div style="font-size:100%; padding:3px">
 
<table cellpadding="0" cellspacing="3" width="100%">
 
<tbody><tr>
 
<td align="left" valign="top" width="100%">
 
Znasz bardzo dobrze angielski? Chciałbyś się sprawdzić? Przetłumacz tutaj </html>[http://wiki.bukkit.org/Configuration_API_Reference ten]<html> artykuł!
 
</td></tr></tbody></table></td></tr></tbody></table>
 
</div></html>
 
 
{{TOC right}}
 
{{TOC right}}
 
API Konfiguracji jest zestawem narzędzie pomagającym deweloperom na szybkie przeanalizowanie i tworzenie plików konfiguracyjnych zdolnych do przeczytania i edycji przez Administratorów Serwerów. Ignorując nazwę API, można stwierdzić, że API może z powodzeniem zostać wykorzystane do przechowywania danych pluginu innych niż sama konfiguracja. Aktualnie tylko pliki [http://en.wikipedia.org/wiki/YAML YAML] mogą być wykorzystane. Zostało jednak zaprojektowane jako możliwie elastyczne i miało pozwalać na inne implementacje
 
API Konfiguracji jest zestawem narzędzie pomagającym deweloperom na szybkie przeanalizowanie i tworzenie plików konfiguracyjnych zdolnych do przeczytania i edycji przez Administratorów Serwerów. Ignorując nazwę API, można stwierdzić, że API może z powodzeniem zostać wykorzystane do przechowywania danych pluginu innych niż sama konfiguracja. Aktualnie tylko pliki [http://en.wikipedia.org/wiki/YAML YAML] mogą być wykorzystane. Zostało jednak zaprojektowane jako możliwie elastyczne i miało pozwalać na inne implementacje

Revision as of 14:10, 21 May 2013

API Konfiguracji jest zestawem narzędzie pomagającym deweloperom na szybkie przeanalizowanie i tworzenie plików konfiguracyjnych zdolnych do przeczytania i edycji przez Administratorów Serwerów. Ignorując nazwę API, można stwierdzić, że API może z powodzeniem zostać wykorzystane do przechowywania danych pluginu innych niż sama konfiguracja. Aktualnie tylko pliki YAML mogą być wykorzystane. Zostało jednak zaprojektowane jako możliwie elastyczne i miało pozwalać na inne implementacje

API Konfiguracji znajduje się w pakiecie org.bukkit.configuration oraz org.bukkit.configuration.file. Pluginy stworzone przed wersją 1.1-R5 prawdopodobnie wykorzystują starszą i inną implementację, znajdującą się w pakiecie org.bukkit.util.configuration. Implementacje te nie są kompatybilne ze sobą i ta starsza została usunięta.

To wprowadzenie zakłada, że masz trochę wiedzy o poprawnym programowaniu zorientowanym obiektowo, Javie oraz wewnętrznej architekturze pluginów. Ta strona nie jest substytutem dla JavaDocs klasy FileConfiguration.

Podstawowe zagadnienia

Obiekt

Twój plugin rozszerza JavaPlugin, a więc, poprzez to, dziedziczy jego metody. Odziedziczona metoda, getConfig zwraca obiekt typu FileConfiguration. Jest to obiekt reprezentujący plik config.yml znajdujący się w folderze Twojego pluginu.

Podczas pierwszego wywołania metody getConfig(), plik config.yml jest wczytywany z dysku, a domyślne wartości są wczytywane z pliku JAR pluginu. Kolejne wywołania getConfig() będą zwracać obiekt FileConfiguration znajdujący się w pamięci. Operacje wykonywane na tym obiekcie nie będą zapisywane na dysku, dopóki ich ręcznego zapisania. Idąc krok dalej, żadne modyfikacje wykonane na pliku nie zostaną uwzględnione w obiekcie. Jeśli plik config.yml nie istnieje na dysku, jest równy pustemu plikowi config.yml i wczyta pusty FileConfiguration.

Warning Warning: jeśli przydzielasz obiekt zwrócony przez getConfig(), NIE przydzielaj go do statycznego pola
Warning Warning: jeśli zrobisz powyższe, przydziel getConfig() do zmiennej PONOWNIE po reloadConfig.
Lightbulb Note: lepiej jest wykorzystywać po prostu getConfig() niż przypisywać go do zmiennej

Klucze

Plik konfiguracyjny jest zbudowany z wielu par klucz-wartość, gdzie kluczami są dane typu String. Wartością tych kluczy może być ConfigurationSection lub jakieś dane. Metoda getKeys(boolean) zwraca zestaw kluczy znajdujących się w danej FileConfigurationSection. Wartość typu boolean determinuje to, czy zwrócony zestaw kluczy jest rekursywny. Jeśli tak (wartość true), zwrócone zostaną wszystkie klucze i klucze potomne danej sekcji. W drugim wypadku, czyli gdy podstawiona zostanie wartość false, metoda zwróci tylko klucze zawarte w danej sekcji. Aby uzyskać klucze zawarte w danej sekcji, metoda getKeys(boolean) musi zostać wywołana na tej właśnie sekcji. Sekcję tą możemy uzyskać poprzez wywołanie metody getConfigurationSection(String).

Ścieżki

API konfiguracyjne wykorzystuje Ścieżki (ang. Paths) w celu tworzenia unikalnych par klucz-wartość. Ścieżka jest zestawem kluczy pozwalającym na zidentyfikowanie danej wartości. Klucze są oddzielone pomiędzy sobą poprzez specjalny separator, którym domyślnie jest '.' (kropka). Dla przykładu, ten plik YAML ma następujące ścieżki.

klucz: wartosc
jeden:
  dwa: wartosc
  trzy:
    - wartosc
    - wartosc
    - wartosc
  cztery: 
    piec: wartosc
  *:
    szesc: wartosc
    siedem: wartosc
  • klucz
  • jeden
  • jeden.dwa
  • jeden.trzy
  • jeden.cztery
  • jeden.cztery.piec
  • jeden.*
  • jeden.*.szesc
  • jeden.*.siedem

Wartości domyślne

Domyślny plik config.yml powininen być zawarty, dla wygody użytkowników, w jarze pluginu. W przypadku niekompletnego lub w ogóle brakującego pliku config.yml, wartości zostaną wczytane właśnie z tego załączonego do pluginu. Dostarczany plik musi mieć nazwę config.yml i znajdować się w tej samej lokalizacji co plik plugin.yml. Jego truktura powinna odzwierciedlać Twój zamysł co do konfiguracji pluginu. Plik ten może zostać skopiowany do folderu danych poprzez wywołanie metody saveDefaultConfig() na odpowiedniej instancji JavaPlugin.

this.saveDefaultConfig()

Jeśli dynamicznie tworzone pary klucz-wartość są wymagane jako wartości domyślne, mogą być dodane poprzez wywołania metod addDefault(String, Object) lub addDefaults(Map<String, Object>).

W niektórych wypadkach, jeśli chcesz dopisać nowe pary klucz-wartość do istniejącego pliku konfiguracyjnego, możesz ustawić wartość copyDefaults na true dla obiektu ConfigurationOptions.

this.getConfig().options().copyDefaults(true)

Tworzenie kopii pliku config.yml

Możesz skopiować domyślny plik config.yml (zawarty w jarze pluginu) wywołując metodę saveDefaultConfig() w klasie rozwijającej JavaPlugin. Metoda ta nie nadpisze istniejącego już pliku.

Pobieranie wartości

Ustawianie wartości

Zapisywanie pliku

Przeładowywanie pliku z dysku

Zaawansowane zagadnienia

Opcje

CopyDefaults

PathSeparator

Header

copyHeader

Własne implementacje

Odzwierciedlanie implementacji JavaPlugin

Implementacje dla Reloading
Implementacja dla Getting
Implementacja dla Saving
Implementacja dla Defaults

Serializowanie i deserializowanie obiektów

Aliasy

Przykładowe wykorzystanie