NimBlock Zaloguj się

Stwórz plugin do Minecrafta bez kodowania

Na serwerze Minecraft wszystko, co wykracza poza podstawową grę, przechodzi przez plugin, a plugin pisze się w Javie. To ściana, o którą rozbija się większość osób prowadzących serwer: wiedzą dokładnie, czego chcą, a jedyna droga prowadzi przez język programowania, projekt do skompilowania i API do nauczenia się. Ta strona wyjaśnia co można zrobić bez tego, a przede wszystkim, gdzie są granice.

Ściana i trzy znane sposoby jej ominięcia

Przed NimBlock osoba, która nie programuje, ma trzy opcje, i każda z nich ma wyraźną granicę, którą lepiej poznać, zanim się w nią zaangażuje.

  • Bloki poleceń. Znajdują się w świecie, w jednym konkretnym miejscu, i uruchamiają się przez redstone albo zegar. Nie potrafią zareagować na zdarzenie serwera, a tym bardziej mu zapobiec.
  • Paczki danych. Działają w ramach zwykłej gry (vanilla): funkcje, postępy, tabele łupów. Bez prawdziwej komendy, bez przechwytywania czatu, bez anulowania akcji. W zamian działają na zwykłym serwerze vanilla, bez Papera.
  • Skript. Dużo potężniejszy od dwóch poprzednich i potężniejszy od NimBlocka. To prawdziwy język, czyli składnia do nauczenia się i błędy do rozszyfrowania.

Te trzy rozwiązania istnieją od dawna i żadne z nich nie jest przestarzałe. Czego brakowało, to poziomu pomiędzy blokiem poleceń a językiem programowania.

Reguła w jednym zdaniu

Cała gramatyka NimBlock mieści się w jednym zdaniu: kiedy to się wydarzy, jeśli te warunki są spełnione, wtedy zrób to. Plugin to lista reguł, reguła to wyzwalacz, kilka warunków i kilka akcji. Nie ma nic więcej do nauczenia się, i to celowo: gramatyka, która mieści się w jednym zdaniu, mieści się też w głowie.

Reguła powitanie
Kiedy gracz dołącza do gry
jeśli gracz ma uprawnienie nimblock.vip
wtedy wyślij „Witaj, {gracz}!”
daj 1 chleb
odtwórz dźwięk awansu poziomu

W edytorze to klocki, które się łączą: klocek, który nie może znaleźć się w danym miejscu, tam się nie zatrzaśnie. A to, co przepuści edytor, przechwytuje walidator: specyfikacja jest przyjęta albo odrzucona w całości, nigdy do połowy. Plugin ochronny pozbawiony swojej reguły ochronnej nie byłby widoczny w grze, a to dokładnie ten rodzaj awarii, którego nikt nie chce.

Co można zrobić już dziś

9 wyzwalaczy, 8 warunków, 14 akcji. Dokładna, aktualna lista, z opisem każdego parametru, znajduje się na stronie gramatyki: jest generowana na podstawie katalogu, więc nigdy nie kłamie. W skrócie, co umożliwiają:

  • Reagować na to, co się dzieje: połączenie, rozłączenie, wiadomość na czacie, śmierć, zniszczenie lub postawienie bloku, komenda, którą sam wymyślisz, albo po prostu co N sekund.
  • Filtrować po uprawnieniu, statusie operatora, świecie, punktach życia, treści tekstu, porównaniu liczb albo prawdopodobieństwie.
  • Działać: wiadomości, duże tytuły, dźwięki, przedmioty, efekty, leczenie, teleportacje, ogłoszenia na cały serwer, wykonanie komendy konsoli oraz anulowanie zdarzenia, które właśnie nastąpiło. To właśnie ta ostatnia zamienia listę w prawdziwe zabezpieczenia.

Czego to nie zastąpi

Strona, która obiecuje wszystko, nikomu nie służy. Czego NimBlock nie robi:

  • Żadnej nowej mechaniki gry. Nowy typ bloku, nowa encja, ekwipunek zrobiony na miarę: to Java i tak zostanie.
  • Żadnych zmiennych ani pętli. Reguła reaguje, nie liczy. Jeśli twój pomysł wymaga przechowywania złożonego stanu między dwoma zdarzeniami, wykraczasz poza tę gramatykę.
  • Żadnego pluginu z zewnątrz. NimBlock wykonuje twoje specyfikacje, nie wczytuje pliku .jar pobranego skądinąd.
  • Nowa komenda czeka na kolejne uruchomienie. Reszta stosuje się na gorąco, bez wyłączania serwera, ale Minecraft rejestruje swoje komendy podczas uruchamiania: mówi o tym panel w momencie, gdy to się dzieje, zamiast dawać ci to odkryć dopiero w grze.

Gdzie działa plugin

Nigdzie nie ma Javy generowanej, a potem kompilowanej. Serwer wczytuje silnik napisany raz dla wszystkich, a ten silnik odczytuje twoją specyfikację. Dzięki temu plugin złożony tutaj nie ma długu technicznego: kiedy Minecraft się zmienia, to silnik się dostosowuje, jeden raz, a nie każdy plugin napisany przy jego użyciu.

Na serwerze NimBlock instalacja to jedno kliknięcie, a plugin trafia na miejsce bez przerywania gry. Sam silnik zostanie opublikowany w katalogach pluginów, żeby ta sama specyfikacja mogła działać na serwerze, który nie jest hostowany tutaj.

Częste pytania

Czy naprawdę można zrobić plugin do Minecrafta bez umiejętności programowania?
Tak, pod jednym warunkiem: układasz reguły w ramach danej gramatyki, nie piszesz dowolnego programu. Reguła mówi „kiedy to się wydarzy, jeśli te warunki są spełnione, wtedy zrób to”. Niemal wszystko, czego potrzebuje serwer między znajomymi, mieści się w tej formie: wiadomości powitalne, nagrody, zabezpieczenia, ogłoszenia, własne komendy. To, co się w niej nie mieści, to wymyślenie całkiem nowej mechaniki gry, a wtedy potrzebna jest Java.
Czym różni się to od bloków poleceń?
Bloki poleceń znajdują się w świecie, w jednym konkretnym miejscu, i uruchamiają się przez redstone albo zegar. Plugin uruchamia się na zdarzenie serwera: gracz się łączy, blok zostaje zniszczony, wiadomość pojawia się na czacie. Czego bloki poleceń nie potrafią, to zareagować na to, co się dzieje, a przede wszystkim temu zapobiec. Reguła NimBlock może anulować zdarzenie, które właśnie nastąpiło.
A w porównaniu z datapackiem?
Paczka danych działa w ramach zwykłej gry (vanilla): funkcje, postępy, tabele łupów. Nie potrafi dodać prawdziwej komendy, przechwycić czatu ani anulować akcji. Plugin Paper potrafi to zrobić, ponieważ działa wewnątrz serwera, a nie w danych świata. W zamian paczka danych działa na zwykłym serwerze vanilla, a plugin wymaga Papera albo Spigota.
A w porównaniu ze Skriptem?
Skript to protoplasta tego gatunku i jest zdecydowanie potężniejszy, bez porównania: to prawdziwy język, ze zmiennymi, pętlami i ogromną biblioteką dodatków. To też język, czyli składnia do nauczenia się, błędy do odczytania i plik, który nie mówi, gdzie się zepsuł. NimBlock robi znacznie mniej, ale odrzuca nieprawidłową regułę, zanim ją zapisze, i pokazuje dokładne miejsce problemu na danym klocku. Jeśli dobrze czujesz się w Skripcie, zostań przy Skripcie.
Czy plugin jest gdzieś kompilowany do Javy?
Nie, i to jest kluczowy wybór tego produktu. Twoja specyfikacja pozostaje plikiem JSON, a serwer wczytuje silnik napisany raz dla wszystkich, który ją odczytuje i wykonuje. Nic nie jest generowane, nic nie jest kompilowane. Praktyczny skutek: nowa wersja Minecrafta kosztuje raz, w tym silniku, a nie w każdym pluginie napisanym przy jego użyciu.
Czy można zabrać plugin na serwer, który nie jest hostowany w NimBlock?
To jest w planach: silnik, który odczytuje specyfikacje, zostanie opublikowany w katalogach pluginów. Specyfikacja to zwykły plik JSON: silnik odczytuje go z folderu pluginów serwera. W chwili pisania tej strony nie jest to jeszcze dostępne.

Ułóż swoją pierwszą regułę i zobacz, jak działa na serwerze, który już istnieje.

Za darmo w becie · jeden serwer 1 GB na konto