'''Skript''' to plugin przeznaczony jest pluginem głównie przeznaczonym dla silników serwerowych opartych na Bukkicieamatorskich administratorów serwerów, którzy mogą modyfikować swoje serwery bez posiadania znajomości języków programowania, m.in [https://pl.wikipedia. Wtyczka ta umożliwia tworzenie oraz uruchamianie różnorodnych instrukcji i czynności na odpowiednie zdarzeniaorg/wiki/Java '''Java'''], od kilkuset zdarzeń po wiele typów i wyrażeń[https://pl.wikipedia.org/wiki/Python '''Python'''] lub [https://pl.wikipedia. Plugin został napisany specjalnie dla użytkownikóworg/wiki/C++ '''C++'''], którzy chcą dodawać coś autorskiego nie umiejąc Javya dokładniej pisząc skrypty używając prostego języka angielskiego. Język Skript opiera się na Najbardziej podstawowym języku angielskim wymaganiem do użycia tej wtyczki jest silnik [https://www.spigotmc.org/ '''Spigot'''] i jest prosty w użyciujego forki: [https://papermc.io/ '''PaperSpigot'''], [https://github.com/Spottedleaf/Tuinity '''Tuinity'''] itd.
==Dodatki==Skript pozwala na tworzenie '''dodatków'''. Istnieje wiele wtyczekAutorem pierwowzoru jest Njol, które dodają bardzo dużo nowych wyrażeńszwajcarski programista Java, efektów, zdarzeń lub typów. Autorzy bardzo chętnie je tworzą natomiast obecnie używany i ciągle aktualizowany jest fork autorstwa ShaneBee i publikująbensku. Oficjalną kategorię z dodatkami na naszej wiki możesz znaleźć [Najnowsze aktualizacje są publikowane [https:Kategoria:Dodatki|//github.com/SkriptLang/Skript/releases tutaj]].
==SkryptyDodatki ==Aby stworzyć swój pierwszy skryptDodatki ''(ang. addony)'' dodają nowe składnie, otwórz miejsce które z plikami serwerowymi kolei ułatwiają pracę i zainstaluj wtyczkę umożliwiają modyfikację wielu nowych aspektów serwera. Takich pluginów jest wiele, a jej niepełną listę znaleźć można [https[:Kategoria://github.com/SkriptLang/Skript/releases SkriptDodatki|tutaj]] w katalogu <code>plugin</code>. Po wgraniu wtyczki należy zrestartować serwer i sprawdzić czy plugin jest kompatybilny z wersją silnika serwera. Oprócz samego uruchamiania skryptów, Skript umożliwia nam manipulację między nimi oraz między samym pluginem poprzez komendy. Możemy uruchomić takie instrukcje jak:
*'''== Początek ==Aby zacząć przygodę ze swoimi skryptami, wpierw zainstaluj najnowszy plik z [https://skript help''' - wyświetla informacje o wtyczce i jej komendygithub.*'''com/SkriptLang/skript disable [allSkript/nazwareleases tej strony]''' - pozwala , zależnie, czy skrypty testujesz na wyłączenie skryptu (wszystkich serwerze technicznym, lub konkretnego)chcesz z jego pomocą otworzyć publiczny serwer.*Stabilna wersja pliku, czyli taka, która nie zawiera błędów jest oznaczona tagiem ''Latest Release''. Pobrany plik .jar wgraj do folderu <code>/plugins</skript enable [allcode>, a następnie zrestartuj serwer. Po zrestartowaniu serwera we wcześniej wspomnianym katalogu powinien pojawić się folder <code>Skript</nazwa]''' - pozwala na włączenie skryptu (wszystkich lub konkretnego)code>, w związku z tym w nim paczka plików.*'''Nas, jako początkowych skrypterów powinien interesować katalog o nazwie <code>scripts</skript updatecode>. W tym folderze pisze się i wgrywa swoje skrypty, czyli dokumenty tekstowe z rozszerzeniem ''' - sprawdza wersję Skripta.*'''/skript reload [all/nazwa]sk''' - pozwala ponownie wczytać skrypt (lub wszystkie skrypty), więc można je tworzyć podczas gry na bieżąco i co chwilę sprawdzać ich działanie.
Aby napisać swój pierwszy skrypt powinieneś otworzyć dowolny edytor tekstu == Komendy == *''(/skript help'' - komendy i informacje o pluginie.*''/skript disable [all/nazwa]'' - wyłączenie poszczególnych/wszystkich skryptów.*''/skript enable [all/nazwa]'' - włączenie poszczególnych/wszystkich skryptów.*''/skript update'' - sprawdza, czy wersja Skripta jest najnowsza.*''/skript reload [all/nazwa]'' - Wczytywanie skryptów komendą. Ułatwia to manipulację i szybkie edytowanie skryptów. == Konfiguracja ==Konfiguracja wtyczki Skript pozwala na modyfikację pluginem. Przykładowe wartości, które można zmienić według swoich potrzeb, to '''enable effect commands''' - domyślna wartość: '''false''', wartość: '''boolean''', opis: wszystkie wiadomości wprowadzone na serwerze z prefiksem '!' zostaną zinterpretowane jako efekty i zostaną wykonane. Nierozsądni gracze mogą nadużyć komend i uszkodzić serwer/świat, np. Windowsowy notatnik<code>!create explosion of force 10000</code> spowoduje crash serwera i nieodwracalne zmiany na świecie spowodowane olbrzymią eksplozją.Przykłady użycia komend:<pre>!heal player - leczenie gracza!feed player - najedzenie gracza!broadcast "&4Ogłoszenie" - wysyłanie wiadomości o podanej treści do każdego gracza i konsoli!set time to 6:00 - komenda domyślnie jest wykonywana w świecie gracza, Sublime Textw tym przypadku czas na świecie zmieni się na godzinę 6:00</pre><br>'''allow ops to use effect commands''' - domyślna wartość: '''false''', wartość: '''boolean''', opis: czy operatorzy mają dostęp do używania komend podanych wyżej. Jeśli wartość wynosi ''false'' jedynie gracze z permisją <code>skript.effectcommands</code> mogliby wykonać te czynności.<br>'''date format''' - domyślna wartość: '''default''', Bracketswartość: '''tekst' bądź ''Notepad++), opis: W pliku konfiguracyjnym zakomentowano sposób zmieniania tej wartości. ''date format'' używa się później w ekspresji <code>now</code>. Dla przykładu: <code>dd/MM/yyyy</code> pokaże 24.12.2020. Więcej informacji można znaleźć [http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html tutaj].
==Pisanie skryptu==
*[[Zmienne]]
Te artykuły dokładnie opisują podstawowe elementy tego języka. Pierwszym skryptem może być np. komenda. ===Komendy=Błędy ==Komendy to instrukcje wykonywane przez dowolnego adresata wypisującego w polu chatu określony łańcuch znaków poprzedzony znakiem "/" (w Minecrafcie).<pre>command /hello: permission: sk.hello permission message: Nie masz uprawnień! aliases: /hi trigger: send "Hello world!" to player</pre>Po krótce: *'''command /hello''' opisuje budowę komendy. Po wpisaniu komendy "hello" ma się wykonać poniższy kod.*'''permission: sk.hello"''' jest opcjonalnePodczas wczytywaniu skryptu może wystąpić błąd, ale Skript sprawdza, czy gracz posiada uprawnienia.*'''permission message: Nie masz uprawnień!''' opisuje wiadomość, która się pojawi graczowi który zostanie wyświetlony na czacie, jeżeli <u>nie posiada on</u> określonych uprawnień.*'''aliases: /hi''' - w tym przypadku dodajemy komende zastępczą /hi.*'''trigger:''' ten operator jest wymagany przy pisaniu każdej komendy. Trigger opisujeNajczęściej, co ma zrobić gra po wpisaniu komendy.*'''send "Hello world!" to player''' - ''send'' jest operacją, która określa instrukcję wysyłania wiadomości. "Hello world!" jest przykładowym łańcuchem znaków - w tym miejscu powinniśmy napisać wiadomość, którą chcemy wysłać dla danego odbiorcy. ''to player'' natomiast oznacza, że wiadomość ma być wysłana do nas. W późniejszym czasie, po większym rozeznaniu się błędy wynikają z wtyczką poznacie więcej [[typy|typów]] odbiorców wiadomości. Podsumowując:<pre><komenda/periodical/zdarzenie>: <effect>: <kod></pre> ''(Periodical jest jedną z [[pętle|pętli]].)'' ===Zdarzenia===Zdarzenia to kod wywoływany podczas wykonanej czynności. Czynnością takową może być na przykład rozpoczęcie jedzenia bądź zadanie obrażenia. W Skripcie wyróżniamy wiele zdarzeń (Wszystkie można znaleźć [[Zdarzenia|tutaj]]). <pre>on mine of stone: if player's tool is diamond pickaxe of unbreaking 10 named "Kilof Mocy" with lore "Linia 1","Linia 2","Linia 3": chance of 15%: drop 1 nether star of unbreaking 10 named "&cGwiazda Piekła" at event-block</pre> *'''on mine of stone''' uruchamia instrukcje wskazane poniżej podczas, gdy gracz zacznie kopać kamień.*'''if player's tool is diamond pickaxe''' sprawdza, czy narzędziem w ręce gracza jest diamentowy kilof.*'''of unbreaking 10''' sprawdza, czy ten kilof ma Niezniszczalność X (błędu w miejscu ''unbreaking 10'' można wpisać wszystkie [[typy]] zaklęć).*'''named "Kilof Mocy" with lore "Linia 1","Linia 2","Linia 3"''' sprawdzakodzie, czy kilof jest nazwany ''Kilof Mocy'' i czy ma on opis (lore). Tutaj można dodać wiele linijekniezainstalowanego dodatku, wystarczy że po pierwszej "linii" opisu dopiszemy przecinek. Cudzysłowiem rozpoczynamy drugą linię.*'''chance of 15%''' {{Main|Losowość}}*'''drop 1 nether star''' nakazuje wyrzucić jedną gwiazdę netheru (ang. ''nether star'').*'''event-block''' - miejsce zdarzenia (miejsce wykopanego kamienia). W zdarzeniach można używać terminów event-() aby określić miejsce zdarzenia. np. <code>on death of cow: drop 1 of milk bucket at event-entity</code> ==Wgrywanie skryptu==Napisany skrypt należy zapisać w rozszerzeniu .sk i wgrać do folderu <code>Skript/scripts</code>, który znajduje się w katalogu <code>plugins</code>katalogu naszego serwera. Przykładowe skrypty można usunąć, ale warto się również z nich nauczyć pewnych [[efekt]]ów lub wyrażeń. Wchodząc do gry wpisujemy komendę /sk reload <nazwa skryptu>, która umożliwi nam przeładowanie naszego skryptu. ==[https://skript.pl/temat/2594-jak-rozumieć-błędy/ Jak rozumieć błędy?]== Aby pierw zrozumieć błędy, należy ze zrozumieniem przeczytać wyswietlony przez plugin Skript błąd. Plugin zawsze podaje, w jakiej linii kodu wystąpił błąd, więc należy się tam udać i wyszukać źle napisany fragment skryptu.Dodatkowo trzeba się upewnić, czy poprawnie efekt/wyrażenie/zdarzenie zostało zapisane. Poniższy przykład ilustruje mnogość zapisanych warunków, które odegrają taką samą instrukcję. <pre>on step over dirt:on step on dirt:on steping on dirt:on steping over dirt:step over dirt:step on dirt:steping over dirt:steping on dirt:on walk over dirt:on walk on dirt:on walking on dirt:on walking over dirt:walk over dirt:walk on dirt:walking over dirt:walking on dirt:</pre>Jednym z cięższych błędów do naprawienia jest błąd rozpoczynający się frazą <code>can't understand this condition/effect</code>. Wynika to z tego faktu, że jak sam Skript nam mówi, <u>nie rozumie</u> efektu/warunku w danej linii. Przed wyszukaniem fragmentu kodu z błędem warto pierw sprawdzić, czy w katalogu <code>plugins</code> posiadamy odpowiedni dodatek, do którego próbujemy się odwołać. Jeżeli posiadamy odpowiedni addon w naszym katalogu - należy sprawdzić, czy jest on kompatybilny z wersją serwera. Jeżeli mimo wszystko uważamy, że dodatek posiada wersję wspierającą naszą edycję silnika, należy upewnić się, czy nasz serwer odpowiednio wczytał addon komendą <code>/plugins</code> na serwerzeniekompatybilnej wersji.
<center>'''Najczęstsze błędy'''</center>