Skocz do zawartości
  • 0

Pliki YML w skQuery


Norbi
 Udostępnij

Pytanie

13 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Znalazłem dzisiaj kawałek poradnika, który kiedyś dawno zacząłem pisać.

Może Ci się przyda.

Poradnika nie przejrzałem, wrzucam tak jak go znalazłem, nie pamiętam czy kod, który w nim podałem testowałem, więc nie gwarantuję, że będzie działać.

W tym poradniku...

dowiesz się w jaki sposób manipulować plikami .yml: pobierać z nich oraz zapisywać do nich pojedyncze wartości i listy. Wszystko to za pomocą funkcji skQuery.

 

Wszystko dzięki jednemu wyrażeniu

skQuery udostępnia nam tylko jedno wyrażenie, dzięki któremu możemy manipulować plikami yaml.

Musisz pamiętać, że wyrażenia (expressions) możemy zwykle usuwać (delete), ustawiać (set) oraz zapisywać do zmiennych.

Pierwszy parametr %text% opisuje miejsce w strukturze pliku, do którego będziemy się odwoływać.

Drugi paramter %text% to ścieżka do pliku.

 

Gdzie jest mój plik?

skQuery odczytuje pliki zaczynając od folderu /plugins/Skript/scripts/.

Jeśli więc chcesz utworzyć lub odwołać się do pliku znajdującego się gdzieś wcześniej musisz użyć dwóch kropek, które oznaczają, że cofamy się o jeden katalog.

Jeśli odwołamy się do nieistniejącego pliku lub folderu to skQuery go utworzy.

Podawanie rozszerzenia .yml nie jest konieczne gdyż w razie jego braku skQuery automatycznie je sobie dopisze.

Pojedyncza wartość

Zaczniemy od operacji na pojedynczej wartości, czyli:

Tak jak wyżej wspomniałem naszą wartość możemy zapisać do/usunąć z pliku oraz pobrać do skryptu.

Zapis do pliku

Po wykonaniu tego kodu w folderze /plugins/Skript/scripts/ zostanie utworzony plik piracki_plik.yml, którego zawartość prezentować będzie się następująco:

Pobieranie z pliku

Powyższy kod wyświetli nam na czacie komunikat:

stan ryby: jest zgnita

Usuwanie

Gdy wartość przechowywana w pliku przestanie być nam potrzebna - usuwamy ją.

 

Prace na głębokości

Co zrobić gdy wartość, którą chcemy manipulować zakopana jest gdzieś głęboko?

Załóżmy, że chcemy dostać się do wartości "smak", w tym celu musimy kolejne stopnie struktury pliku oddzielić kropką:

Tak samo będzie to wyglądało gdy manipulować będziemy wieloma wartościami lub listą:

Wiele wartości

yaml (value|nodes|nodes with keys|list) %text% from [file] %text%
# plik: /plugins/Skript/scripts/folder/superplik.yml... from [file] "folder/superplik.yml"# plik: /plugins/PermissionsBukkit/permissions.yml... from [file] "../../PermissionsBukkit/permissions.yml"
# plik: /plugins/Skript/scripts/pirat.yml... from [file] "pirat"# zadziała tak jak... from [file] "pirat.yml"
yaml value %text% from [file] %text%
set yaml value "ryba" from "piracki_plik" to "jest zgnita"
ryba: jest zgnita
set {_jak.smakuje.ryba} to yaml value "ryba" from "piracki_plik"send "stan ryby: %{_jak.smakuje.ryba}%
delete yaml value "ryba" from "piracki_plik"
ryba:  stan: jest zgnita  walory:    wyglad: odstraszajacy    smak: stary kapec    zapach: brzydki
yaml value "ryba.walory.smak" from [file] %text%
yaml (value|nodes|nodes with keys|list) "stopien1.stopien2.stopien3.itd." from [file] %text%
yaml (nodes|nodes with keys) %text% from [file] %text%

//Na prośbę Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! otworzyłem ten temat. ~ :norbi:

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Mam problem z listą. A więc nie wiem jak zrobić aby do listy np. ryby dodać "x".

set|add yaml list "drop" from "plugins/Skript/scripts/players/x.yml" to "jest zgnita"

Nie działa. Proszę o szybką odpowiedz.

Rozwiązane :)

add "%arg 1%" to yaml list "drop.d.d" from "players/x.yml" #Dodawanie set {_tag::*} to yaml list "drop.d.d" from "players/x.yml" #Odczytywanie

Wygląd:

drop:  d:    d:    - '1'    - '2'    - '3'    - '4'    - '5'    - '6'

Do zamknięcia.

Edytowane przez Arioner
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Umbaska will have some really simply to use YAML features. Should be in the next BETA: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! - read more about the BETA's Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
 

URL repaired ~ herhor

Edytowane przez herhor67
Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...