Skript-mirror
Ten artykuł wymaga nieco wiedzy na temat Javy od czytelnika.
Skript-mirror lub Skript-reflect to dodatek do Skript, który pozwala na interakcję języka skryptowego z językiem Java, import klas i głębsze wykonywanie kodu, np. nie mając chcianych wyrażeń w Skripcie da się stworzyć własne, jednocześnie rozszerzając możliwości. Domyślnie, dodatek pozwala na import klas z Javy, silników Bukkit, Spigot i jego forków, tak samo jak i klas z pluginów, które są zainstalowane na naszym serwerze. W katalogu plugins/Skript-reflect
można wgrać dowolny plik .jar, by następnie z niego pozyskać chcianą klasę.
Ten plugin już nie jest aktualizowany na bieżąco, chociaż powstał nowy fork autorstwa TPGamesNL o nazwie skript-reflect
. Dlatego, w tym artykule będziemy omawiać tę wersję, i rzeczy, które dodaje również zostaną tutaj wspomniane.
Opis dodatku wg autora znajduje się tutaj.
Spis treści
Instalacja
1. Pobierz plik .jar wersji skript-reflect z tej strony.
2. Wgraj plik do folderu /plugins
.
3. Zrestartuj serwer.
Importowanie klas
Klasy importuje się w bloku kodu import:
w pliku .sk, aby później z nich skorzystać. Wymaga się pełnej ścieżki, żeby klasa została importowana prawidłowo.
Czytanie dokumentacji
Większość pluginów oferuje Javadocs, czyli dokumentacje przyjazne dla użytkownika. Przydają się wtedy, kiedy chcemy dodać coś nowego na nasz serwer.
import: org.bukkit.event.player.PlayerJoinEvent
Zostało zaimportowane zdarzenie. Do określania zdarzeń w następnej części kodu trzeba określić jedynie najdalsze "dziecko" czyli PlayerJoinEvent.
on PlayerJoinEvent: set join message to "%event.getPlayer()% dołączył do gry" on join: set join message to "%event.getPlayer()% dołączył do gry" on join: set join message to "%player% dołączył do gry"
Te trzy sekcje kodu są identyczne, drugi z nich pokazuje, że składnię Skript można łączyć ze składnią Java. Przydaje się to szczególnie wtedy, kiedy w Skripcie nie ma tego, czego chcielibyśmy uzyskać sami (a jest to w dokumentacji np. Spigota), dlatego sięgamy wtedy po skript-reflect, aby to otrzymać.
Własne wyrażenia
Skript-reflect udostępnia możliwość tworzenia własnych efektów, zdarzeń lub wyrażeń.
Ogólny wzór składni:
- [text] - Opcjonalne
- (text) - Wymagane
- text1|text2 - lub
- %text% - typ zmiennej
Na przykład (fill) %expression-1% (with) [%integer%] %expression-2%
. To jest efekt, ale w tym momencie nie może nic zrobić, ponieważ nie ma kodu w sobie. Wymagany jest blok trigger:.
effect [GM] announce %expr-1%: trigger: send "%colored expr-1%" to all players on rightclick: announce "&8>> &6&lSkript-mirror jest świetnym dodatkiem"
Ten skrypt dodaje efekt ogłaszający wiadomość na czacie. Aby sprawdzić tego skuteczność, dodano zdarzenie który wywołuje nowo powstały efekt.
Aby dodać efekt trzeba przed składnią napisać effect. Niektóre dodane przez nas rzeczy mogą być już zawarte w innych pluginach, poleca się więc dodawać przedrostki przed nimi, np. [GM] aby Skript wiedział, że jest to akurat nasze.
%expr-1% oznacza to, co wpisze się w efekcie po announce czyli tekst.
Warunki
Warunki w skript-mirror wyglądają mniej więcej tak:
[local] condition [AxTops] %player% can buy (for|with) %number%: check: if {points::%expr-1%} >= expr-2: continue
- [local] oznacza globalność tego warunku, tzn. jeżeli [local] zostało zastosowane to znaczy, że można tego warunku użyć w jednym skrypcie.
- [AxTops] jest przedrostkiem opcjonalnym.
Warunek sprawdza, czy gracz może kupić coś za "punkty" w zmiennej {points}. %expr-1% to gracz, nawiązanie do %player% w składni, a %expr-2% nawiązuje do %number%.
check to blok specjalnie dla warunków. Jeżeli kod w bloku się zgadza, to należy zastosować continue. Continue tymczasem daje wartość true więc skrypt idzie dalej.