W tym wpisie dotyczącym Bukkita zajmiemy się uzupełnianiem możliwości administratora. Główną rzeczą, jaką posługujemy się administrując serwer, są komendy, a sam bukkit nie posiada ich zbyt wiele. Przedstawię wtyczkę dodające spory zestaw podstawowych komend polepszających funkcjonowanie na serwerze. Mowa tutaj o większości znanym Essentials.
Administrując serwer, zajmujemy się wieloma jego aspektami. Jednam z podstawowych, jaki rzadko zauważamy są proste komend, jak /give czy /tp. Standardowy Bukkit posiada te polecenia, ale Essentials ułatwia korzystanie z nich i oferują o wiele więcej tego typu komend. Przedstawię jego możliwości oraz dodatkowe pluginy, jakie oferuje.
Warto też zapoznać się z mniej rozwiniętą, ale wciąż bardzo dobrą alternatywą Essentials, jaką jest AdminCmd.
Essentials 
Prócz podstawowego rdzenia Essentials, oferuje on również takie rzeczy jak EssentialsChat, EssentialsProtect czy EssentialsSpawn. Postaram się omówić jak najlepiej wszystkie te wtyczki.
Zaczniemy od podstaw Essentials i tego jak go konfigurować. Po pobraniu paczki Essentials Core dostaniemy cztery wtyczki, które wymieniłem powyżej. Po wgraniu ich na serwer i uruchomieniu, otrzymamy katalog pluginu z plikami konfiguracyjnymi. Są to config.yml, jail.yml, motd.txt, rules.txt, spawn.yml i worth.yml oraz dwa katalogi. Plików może być więcej, ale nie mają one większego znaczenia przy konfigurowaniu wtyczki.
config.yml
Pierwszym i najważniejszym plikiem jest config.yml, który umożliwia ustawienie wszystkich pozostałych wtyczek jak EssentialsChat. Jest on dość rozbudowany, także podzielę go na części.
Początek pliku to podstawowe ustawienia, jakie wprowadza rdzeń Essentials. Usunąłem z niego wszystkie zbędne elementy jak np. brak obsługi Permissions, który opisałem w poprzednim wpisie.
# Ustalenie zabawienia nicku operatorów(Lista kolorów). ops-name-color: 'c' # Prefix dla graczy ze zmienionym nickiem. nickname-prefix: '' # Wyłącz to jeśli masz inny plugin do zmiany nazw graczy. change-displayname: true # Przerwa czasowa po użyciu komend /home, /tp, itp. teleport-cooldown: 5 # Przerwa czasowa po użyciu komendy /heal heal-cooldown: 60 # Limit ilości przyzywanych stworzeń. spawnmob-limit: 50 # Powiadamianie graczy podczas używania komendy /lightning warn-on-smite: true Przeczytaj czym są Kits w Essentials # Kits pozwala określić czas pomiędzy każdym przyzwaniem # zestawu(delay) oraz przedmioty jakie przyzywa(items). kits: tools: delay: 10 items: - 277 1 - 278 1 - 279 1 Przeczytaj o używaniu znaków przez Essentials # Wyłącz używanie znaków przez Essentials. signs-disabled: false # Sortowanie listy graczy na podstawie grup. sort-list-by-groups: false # Więcej danych o zachowaniu wtyczki w konsoli. debug: false # Wyłącz God Mode kiedy gracz wyjdzie z serwera. remove-god-on-disconnect: true # Auto-AFK # Wpisz liczbę po jakiej gracz zostanie AFK(w sekundach). # Liczba -1 oznacza, że AFK nie działa. auto-afk: 300 # Auto-AFK Wyrzucenie # Po tym czasie gracz zostanie wyrzucony z serwera(W sekundach). # Liczba -1 oznacza, że gracz nie będzie wyrzucony z serwera.auto-afk-kick: -1 # Ustawienie tego na tak(true) spowoduje, że gracz który jest AFK zostanie unieruchomiony. freeze-afk-players: false # Ustawienie tego na tak(true) spowoduje, że osoba AFK nie będzie podnosić przedmiotów. disable-item-pickup-while-afk: true # Ustawienie tego na nie(false) spowoduje, że nie będą wyświetlane podstawowe informacje o śmierci graczy. death-messages: true # Ilość przedmiotów jakie otrzymamy przy użyciu komendy /give /item /i jeśli nie wpiszemy ich ilości. oversized-stacksize: 64 # Przedmioty polepszane będą automatycznie naprawiane jeśli ustawisz to na tak(true). repair-enchanted: true
Kits czyli szybkie zestawy
Kit to zestawy, w Essentials mamy możliwość tworzenia własnych zestawów przedmiotów, które można przyzwać komendą /kit nazwa. Stworzenie ich polega jedynie na nadaniu im nazwy oraz określeniu, jakie przedmioty mamy uzyskać po użyciu komendy. Rzeczy określamy poprzez ID(Lista ID przedmiotów). Przykład takiego zestawu możecie znaleźć powyżej, ważne, by zachować zasady pliku yml!
Znaki w Essentials
Znaki w Essentials to dość rozbudowany temat. Umożliwiają one nam wykonywanie różnych czynności pluginu poprzez kliknięcie na tabliczkę prawym klawiszem myszy. Aktualnie mamy możliwość skonfigurowania 11 różnych typów znaków.
Znaków używamy, umieszczając tekst w pierwszej linijce, obejmując go kwadratowymi klamrami. Poprawnie wpisany typ znaku będzie zabarwiony na niebiesko. W wypadku błędnego odczytu znaku zobaczymy kolor czerwony.
Protection
Pierwszym typ jest związany z EssentialsProtect. By go używać, wymagane jest wgranie tego pluginu na serwer. Jeśli jednak nie chcemy by nasz serwer używał tej wtyczki, wystarczy ją usunąć. O konfigurowaniu EssentialsProtect przeczytasz poniżej. Używa się tego znaku do zabezpieczania drzwi, skrzyń, piecyków i tego typu podobnych rzeczy.
Pierwszą frazą umieszczoną w znaku powinno być [Protection], które definiuje polecenie znaku. Dwie następne linijki ustalają właściciela zabezpieczanego przedmiotu. Ostatnia linia nie ma żadnego zastosowania. Przykład takiego znaku.
Znak ten umożliwia sprawdzenie poczty, jaką obsługuje Essentials. Standardowo można to zrobić za pomocą komendy /mail. W przypadku używania znaku można to skonfigurować na dwa sposoby. Pierwszy to po prostu wywołanie komendy poprzez umieszczenie polecenia [Mail]. Drugi jest bardzo podobny, jedną różnicą jest dodanie kosztu, sprawdzenia poczty. Każde kliknięcie w znak zabierze nam troszkę pieniędzy z konta. Ważne, by umieścić znak zdefiniowany w ‚currency-symbol‚ przed ceną jaką nadamy poleceniu. Wygląda to podobnie, przykład możesz zobaczyć tutaj.
Free
Dodanie [Free] do znaku umożliwi ustawienie miejsca pobierania dowolnego przedmiotu. Wpisując w pierwszej linijce [Free], a w drugiej ID dowolnego przedmiotu, stworzysz stanowisko darmowego pobierania rzeczy. Kliknięcie prawym przyciskiem myszy na tabliczce wyświetli ci coś na rodzaj skrzyni, która automatycznie wypełnia się danym przedmiotem. Przykładowa tabliczka.
Kit
Zestawy to wcześniej omawiany temat, jednak znaki pozwalają na rozwinięcie tego. Oczywiste jest, że za pomocą nich można przyzywać wybrane zestawy. Dodatkowo można zdefiniować, jaka grupa może je przyzywać i ile ich to będzie kosztować. Nazwę grupy pozyskujemy z Permissions. Również ważne jest, by przed ceną dać znak „$”. Przykład takiego znaku.
Disposal
Disposal to, krótko mówiąc, śmietnik. Umieszczając [Disposal] na znaku, definiujemy tabliczkę jako kosz. Kliknięcie nią prawym klawiszem myszy otworzy coś na wzór skrzyni, do której każda włożona rzecz przepadnie na zawsze.
Heal
Umieszczenie [Heal] na tabliczce stworzy miejsce leczenia graczy. Jedyną dodatkową możliwością jest dodanie ceny za użycie takiej tabliczki. Kliknij, by zobaczyć przykład.
Time
Tabliczka [Time] pozwala manipulować czasem. Za pomocą niej możemy zmienić porę dnia na dzień lub noc. Dodatkowo można dodać koszty za jej użycie. Przykład takiej tabliczki.
Weather
Znak z [Weather] umożliwia zmianę pogody ze słonecznej na deszczową i odwrotnie. Oczywiście można dopisać do tego opcjonalne koszty. Przykładowy znak.
Warp
Za pomocą komendy /setwarp nazwa można ustalić miejsce, do którego ludzie będą mogli się teleportować. Za pomocą znaku można stworzyć miejsce teleportacji, ustalić, jaka grupa może jej dokonać oraz nadać koszt. Przykładowy znak.
Spawnmob
Jeżeli umieścimy na znaku napis [Spawnmob], będzie on nam umożliwiał przyzywanie wybranych stworzeń. Ustalamy ilość przyzywanych stworzeń, jakiego typu mają być oraz cenę za nie. Opcja typu zwierząt pozwala również na przyzwanie wilka, który jest już udomowiony. Można to zobaczyć na przykładowym znaku.
Enchant
Ostatnim typem jest [Enchant], który umożliwia sprzedawanie ulepszeń do trzymanych przedmiotów. Listę możliwych polepszeń można znaleźć po wpisaniu komendy /enchant. Na znaku definiujemy, jaki przedmiot może być polepszany, w jaki sposób oraz na jaki poziom. Dodatkowo możemy ustalić za to cenę. Jak to wygląda można zobaczyć na przykładowym znaku.
Konfigurowanie Essentials Protect
Przy konfigurowaniu EssentialsProtect możemy głównie zablokować większość czynności. Jeśli nie chcemy, by konkretne stworzenia pojawiały się w naszym świecie lub żeby ludzie nie stawiali konkretnych bloków albo aby ogień się nie rozprzestrzeniał, to możemy to ustawić właśnie w tym pluginie. Jego lepszą alternatywą jest WorldGuard, który wkrótce omówię.
protect: # Typ zapisu informacji datatype: 'mysql' # Dane do bazy danych mysql username: 'NAZWA' password: 'HASŁO' mysqlDb: 'jdbc:mysql://localhost:3306' # Bloki o jakich będziesz informowany # 10 = lava :: 11 = Lava :: 46 = TNT :: 327 = Wiaderko lawy alert: on-placement: 10,11,46,327 on-use: 327 on-break: blacklist: # Ochrona przed stawianiem bloków(ID) placement: 10,11,46,327 # Ochrona przed użyciem przedmiotów(ID) usage: 327 # Ochrona przed niszczeniem bloków(ID) break: # Bloki jakich tłoki nie mogą przesuwać(ID) piston: # Ochrona przed wybranymi wypadkami prevent: lava-flow: false water-flow: false water-bucket-flow: false fire-spread: true lava-fire-spread: true flint-fire: false lightning-fire-spread: true portal-creation: false tnt-explosion: false tnt-playerdamage: false fireball-explosion: false fireball-fire: false fireball-playerdamage: false creeper-explosion: false creeper-playerdamage: false creeper-blockdamage: true enderdragon-blockdamage: true enderman-pickup: false villager-death: true entitytarget: false # Ochrona przed pojawianiem się wybranych stworzeń spawn: chicken: false cow: false creeper: false ghast: false giant: false monster: false pig: false pig_zombie: false sheep: false skeleton: false slime: false spider: false squid: false zombie: false wolf: false cave_spider: false enderman: false silverfish: false ender_dragon: false villager: false blaze: false mushroom_cow: false magma_cube: false snowman: false # Maksymalna wysokość na której może wybuchnąć Creeper creeper: max-height: -1 # Ochrona wybranych bloków protect: signs: true # Ochrona przed niszczeniem torów rails: true # Ochrona bloków pod torami block-below: true # Ochrona przed stawianiem bloków nad torami prevent-block-on-rails: false # Wyłączenie fizyki bloków(Opadanie bloków piasku/żwiru) disable: fall: false # Gracze z permisją essentials.protect.pvp będą chronieni przed atakami jeśli pvp jest na tak(true) pvp: false # Ochrona przed tonięciem/zgnieceniem drown: false suffocate: false # Ochrona przed obrażeniami od lawy lavadmg: false # Ochrona przed obrażeniami od strzał projectiles: false # Ochrona przed obrażeniami od kaktusa contactdmg: false # Ochrona przed obrażeniami od ognia firedmg: false # Ochrona przed obrażeniami od pioruna lightning: false # Ludzie z zakazem budowania w permisji będą mogli budować mimo to build: true # Ludzie z zakazem używania w permisji będą mogli używać mimo to use: true # Ostrzeganie o zakazie budowania warn-on-build-disallow: true # Wyłączenie zjawisk pogodowych weather: storm: false thunder: false lightning: false
O wtyczce EssentialsChat
Najlepszą częścią Essentials jest plugin urozmaicający czat w grze. Pozwala on kolorować wybranym grupom nazwy oraz tworzyć obszary, które będą słyszeć tylko najbliżej znajdujące się osoby. Poniżej znajdziecie fragment z config odpowiedzialny za EssentialsChat.
chat: # Osoby w obszarze 100 bloków będą słyszeć czat bez krzyku(!) # [0 wyłącza tą opcję] radius: 100 # Formatowanie wyglądu wiadomości konkretnych grup # Jak formatować czat group-formats: Gość: '<{DISPLAYNAME}> {MESSAGE}' Moderator: '<&2{DISPLAYNAME}&f>&2{MESSAGE}' Admin: '&4{DISPLAYNAME}&a{MESSAGE}'
Po ustaleniu wielkości czatu obszarowego, wciąż można komunikować się z wszystkimi graczami stawiając wykrzyknik(!) przed tekstem. Wszystkie wiadomości bez niego będą możliwe do przeczytania wyłączenie w zasięgu 100 kratek od gracza. Tego samego tyczy się pytajnik(?).
Formatowanie Czatu
Podczas formatowania wyglądu musimy znać nazwy grup, jakie ustaliliśmy w Permissions. W przykładzie powyżej zdefiniowałem wygląd dla trzech grup: Gość, Moderator oraz Admin. Każda z nich posiada dwa tagi ustalające, gdzie ma znajdować się nazwa gracza oraz treść wiadomości. Dodatkowo mają one konkretne kolorowanie oraz dodatkowe znaki. Kolory, jakie można użyć znajdziecie pod tym adresem.
Istnieją jeszcze dwa dodatkowe tagi, jakie możecie dodać do formatu wiadomości, są nimi:
{WORLDNAME} – Wyświetla świat, w jakim znajduje się gracz.
{GROUP} – Wyświetla grupę, w jakiej znajduje się gracz.
Przykładowe formatowania:
group-formats: Wlasciciel: '&f[&4GOD&f] {DISPLAYNAME}&7:&f {MESSAGE}' Admin: '&f[&4Admin&f] {DISPLAYNAME}&7:&f {MESSAGE}' Moderator: '&f[&5Mod&f] {DISPLAYNAME}&7:&f {MESSAGE}' VIP: '&f[&2VIP&f] {DISPLAYNAME}&7:&f {MESSAGE}' Budowniczy: '&f[&1Budowniczy&f] {DISPLAYNAME}&7:&f {MESSAGE}' Gosc: '{DISPLAYNAME}&7:&f {MESSAGE}'
Na początku pliku konfiguracyjnego można też znaleźć opcje związane z kolorami na czacie. Są to podstawowe ustawienia, jak kolor operatorów, wszystko jest wyjaśnione w pierwszej części pliku config.
O wtyczce EssentialsSpawn
Ostatnią wtyczką, jaką oferuje zestaw Essentials Core, jest EssentialsSpawn. Nie oferuje ona dużo, ale dla niektórych może być przydatna. Podstawową jej funkcją jest napis witający nowego gracza oraz ustalenie dla niego miejsca spawnu.
newbies:# Tekst witający nowego gracza announce-format: '&dWitamy &e{DISPLAYNAME}&f! Zyczymy przyjemnego grania na naszym serwerze!' # Nazwa miejsca spawnu nowego gracza(Wpisz 'none' jeśli nie ma być żadnego) spawnpoint: default # Respawn-lister ustala gdzie ma pojawiać się gracz po śmierci # Ustaw na 'lowest', jeśli używasz Multiverse do respawnu # Ustaw na 'normal', jeśli chcesz używać EssentialsSpawn # Ustaw na 'highest', jeśli chcesz by EssentialsSpawn był ponad wszystkie pluginy do respawnu respawn-listener-priority: normal
W przypadku używania EssentialsSpawn plik spawn.yml tworzy listę miejsc spawnu dla wszystkich grup. Możesz je definiować, wpisując /setspawn nazwa_grupy.
EssentialsEco oraz EssentialsHelp
W pliku konfiguracyjnym Essentials można znaleźć jeszcze przedział dla EssentialsEconomy oraz EssentialsHelp. Wchodzą one w rdzeń Essentials i oferują kilka dodatkowych elementów do rozgrywki.
EssentialsEco to uproszczony system ekonomii wprowadzający walutę oraz możliwość przekazywania pieniędzy i sprzedawania przedmiotów. W pliku konfiguracyjnym można ustalić startową ilość pieniędzy, jaką będzie posiadać nowy gracz. Możesz też wprowadzić opłaty za używanie niektórych komend. Dodatkowy plik o nazwie worth.yml posiada wartości wszystkich istniejących przedmiotów, dzięki czemu sprzedawanie ich jest, w pełnij zautomatyzowane. Używamy jedynie komendy /sell ID ILOŚĆ. W prosty sposób można zmienić cenę, jaką ma otrzymywać gracz za jedną sztukę danej rzeczy. EssensialsEco łączy się z pluginiem iConomy, który opiszę w przyszłych wpisach na temat bukkit.
# Początkowy stan konta gracza starting-balance: 0 # Opłaty za używanie komend command-costs: # /spawn kosztuje $10 za użycie #spawn: 10 # Symbol waluty currency-symbol: '$' # Maksymalna ilość pieniędzy jaką gracz może posiadać max-money: 10000000000000 # Wpisuje w logi wszystkie interakcje z EssentialsEco economy-log-enabled: false
EssentialsHelp to jedynie dwie opcje, które ustalają czy Essentials ma wyświetlać dostępne komendy po użyciu /help od wszystkich pluginów i czy gracze mają widzieć tylko komendy, do których mają dostęp.
# Pokaż komendy z innych zainstalowanych wtyczek non-ess-in-help: true # Ukrywaj komendy do których gracze nie mają praw hide-permissionless-help: true
Na tym kończy się edytowanie pliku config.yml dla Essentials. Pozostało jednak kilka dodatkowych plików, które ingerują w działanie serwera.
jail.yml – Lista wszystkich więzień z pozycjami, jakie zostały stworzone za pomocą komendy /setjail nazwa. Każdy gracz może zostać wsadzony do więzienia za pomocą komendy /tjail nick <czas>. Listę istniejących więzień można wyświetlić komendą /jails, a usunąć je za pomocą /deljail nazwa.
rules.txt – Zawartość tego pliku definiuje co zostanie wyświetlone po użyciu komendy /rules. Można tam użyć kolorowania tekstu.
motd.txt – Zawartość tego pliku będzie wyświetlana za każdym wejściem na serwer oraz po wpisaniu komendy /motd.
Istnieją również dwa katalogi o nazwach userdata oraz warps. Folder warps posiada pozycje wszystkich warpów, jakie utworzyliśmy za pomocą komendy /setwarp nazwa. W katalogu userdata możemy znaleźć pliki wszystkich użytkowników, jacy dołączyli kiedykolwiek na serwer. Pliki te mają informacje o ostatniej pozycji gracza, adresie ip, przebywaniu w więzieniu czy stanie wyciszenia. Edytowanie ich nie jest potrzebne, wszystkie potrzebne akcje można wykonać na serwerze.
Każda taka akcja to konkretna komenda, a jest ich sporo. Pod tym linkiem znajdziecie wszystkie komendy oraz przypisane do nich permisje z polskimi opisami.