2013 m. birželio 23 d., sekmadienis

Bukkit Permissions

Bukkit Permissions

Šiame gide paaiškinsiu kaip sukurti privilegijų sistemas Minecraft serveriui, kaip tokias sistemas administruoti ir prižiūrėti nuo pačių pagrindų, kadangi daugelis pradedančiųjų serverio kūrėjų nemoka ir nesupranta, kaip sukurti papildomas vartotojų grupes, arba kaip apriboti jų galimybes žaidimo pasaulyje.
Aptarsime dvi populiariausias privilegijų sistemas, tai Essentials GroupManager, bei PermissionsEX. Tarpusavyje jos yra panašios, tačiau šiek tiek skiriasi jų struktūra ir sintaksė. Dabar aptarsime vieną, nes GroupManager sistemoje skiriasi tik atitraukimai ir keletas nustatymų, kuriuos aptarsime vėliau.

PERMISSIONSEX

Ši sistema yra viena paprasčiausių ir lengviausiai valdomų. Visi nustatymai daromi viename faile, todėl nereikia blaškytis, ar ieškoti informacijos kituose failuose.

Atsisiuntimas:
http://dev.bukkit.org/server-mods/permissionsex/
Išsami naudojimosi instrukcija (Anglų k.):
https://github.com/PEXPlugins/PermissionsEx/wiki

Sukuriami failai:
Šie failai susikuria vos tik paleidus serverį. Būtent šiuose failuose mums ir reikės nustatinėti žaidėjų privilegijas.
  • config.yml – tai pagrindinių paties įskiepio nustatymų failas, kuriame galima nustatyti pagrindinį privilegijų failą, ar nustatyti, kad privilegijos būtų administruojamos MySQL duomenų bazėse.
  • permissions.yml – tai pagrindinis privilegijų administravimo failas, kuriame redaguojamos žaidėjų privilegijos serverio pasauliuose.
Permissions.yml redagavimas
Pirmą kartą paleidus serverį, permissions.yml faile yra matomas toks tekstas(.yml failų redagavimui būtinai naudokite programą NOTEPAD++):
groups:
    default:
        default: true
        permissions:
        - modifyworld.*

Šiame faile esančias eilutes galime paaiškinti taip:
  • groups: – serverio žaidėjų grupių sąrašo pradžia. Šis nustatymas parodo, kad visa žemiau išvardinta informacija, kuri yra atitraukta nuo krašto per 4 ir daugiau tarpų bus laikoma serverio žaidėjų grupių apribojimais, privilegijomis ir kitais pagrindiniais nustatymais, kaip tarkime teksto spalva, tekstas prieš, ar po žaidėjo vardo ir t.t.
  • default: – žaidėjų grupės pavadinimas. Kiekviena eilutė, kuri yra atitraukta nuo krašto per 4 tarpus bus laikoma žaidėjų grupės pavadinimu. Patikrinti kokios grupės yra jūsų serveryje galite pasinaudodami komanda /pex groups.  Ši eilutė taip pat nurodo, kad visa informacija, esanti kitose eilutėse po šios, kurios yra atitrauktos nuo krašto per 8 ir daugiau tarpelių, bus laikoma grupės “default” nustatymais.
  • default: – pagrindinės serverio grupės nustatymas. Šis nustatymas, atitrauktas nuo krašto per 8 tarpelius nurodo, kuri grupė yra pirmoji, kurią gauna ką tik į serverį prisijungęs žaidėjęs. Labai svarbu atsiminti tai, kad šis nustatymas gali turėti true kintamąjį tik vienai grupei. Visos likusios grupės, nesvarbu, kokios svarbios jos jums atrodo turi turėti nustatymą false.
  • permissions: – žaidėjų grupės privilegijų sąrašo pradžia. Šis nustatymas, atitrauktas nuo krašto per 8 tarpus nurodo, jog visa žemiau pateikta informacija, kuri turi priekyje “-” simbolį, bus laikoma grupės privilegijų (permissions) sąrašu.
  • - modifyworld.* – žaidėjų grupės privilegija (permission node). Konkrečiai ši privilegija nurodo, kad žaidėjas gali naudotis visomis ModifyWorld įskiepio teigiamomis galimybėmis.
Pilna privilegijų sistemos (permissions) struktūra
Ši struktūra yra labiausiai paplitusi ir daugiausiai naudojama, tačiau yra ir kitų papildomų kintamųjų, kurie suteikia galimybę atskirai administruoti žaidėjų teises skirtinguose pasauliuose, tačiau to čia nenagrinėsime, nes jums tereikia suprasti principą, kaip viskas veikia:
groups:
    GRUPĖS_PAVADINIMAS:
        prefix: 'TEKSTAS'
        suffix: 'TEKSTAS'
        default: true/false
        permissions:
        - PLUGINO_PAVADINIMAS.PRIVILEGIJA
        inheritance:
        - PAPILDOMOS_GRUPĖS_PAVADINIMAS
        options:
            rank: 'SKAIČIUS'
            rank-ladder: 'TEKSTAS'
         
users:
    ŽAIDĖJO_VARDAS:
        group:
        - GRUPĖS_PAVADINIMAS

Visų šių eilučių paaiškinimas detalus paaiškinimas galėtų būti toks:
  • groups: – serverio žaidėjų grupių sąrašo pradžia.
  • GRUPĖS_PAVADINIMAS: – serverio žaidėjų grupės pavadinimas, bei nustatymų pradžia.
  • prefix: – teksto, kuris matomas prieš žaidėjo vardą, rašant žinutę, nustatymas. Norimas tekstas turi būtinai rašomas tarp ‘ ‘ simbolių, pvz.: ‘vip’. Šis nustatymas atitrauktas nuo krašto per 8 tarpus, kaip ir kiti pagrindiniai nustatymai.
  • suffix: – teksto, kuris matomas, po žaidėjo vardo, rašant žinutę, nustatymas. Norimas tekstas, kaip ir su prefix: nustatymu, turi būti rašomas tarp simbolių ‘ ‘, pvz .: ‘Petraitis’. Šis nustatymas taipogi nuo krašto atitrauktas per 8 tarpus.
  • default: – pagrindinės serverio žaidėjų grupės nustatymas.
  • permissions: – žaidėjų grupės privilegijų sąrašo pradžia.
  • - PLUGINO_PAVADINIMAS.PRIVILEGIJA – žaidėjų grupės privilegija (permissions node). Šias privilegijas reikia ne kurti, o jų ieškoti įskiepių aprašymuose, skiltyje “Permissions” arba “Permissions Nodes”. Paprastai prieš taško simbolį esantis tekstas yra įskiepio pavadinimas, pvz. Essentials, o po taško esantis tekstas – komandos priskyrimas, tarkim home, taigi, tokia privilegija atrodytų taip: “- essentials.home”. Minuso simbolis (-) reiškia, jog ši komanda yra priskiriama atitinkamai žaidėjų grupei naudoti. Du minuso simboliai (- -) nurodo, kad įrašyta privilegija bus šiai komandai visiškai uždrausta ir neprieinama jokiais būdais, pvz.: “- -essentials.home” įrašyta privilegija žaidėjų grupei “default”, neleis naudoti šios komandos, net jei žaidėjų grupė turės privilegiją “- essentials.*”, kur žvaigždutės simbolis (*) reiškia, kad visos privilegijos yra galimos naudoti. Tarkime, serverio savininkui priskiriama privilegija bus: “- ‘*’ “, kad jis galėtų naudotis absoliučiai visomis serverio ir serverio įskiepių komandomis.
  • inheritance: – teisių perėmimo sąrašo pradžia. Šis nustatymas, atitrauktas nuo krašto per 8 tarpus, nurodo, kurių grupių išskirtinėmis teisėmis, galės naudotis ši grupė, t.y. kurių grupių privilegijas ji paveldi.
  • - PAPILDOMOS_GRUPĖS_PAVADINIMAS – grupės, kurios teises gali perimti mūsų redaguojama grupė, pavadinimas, atitrauktas nuo krašto per 8 tarpus. Šį sąrašą galima papildyti, tereikia kiekvieną naują grupę, kurios teises pageidaujama perimti rašyti iš naujos eilutės. Atsiminkite tai, jog, jei jūsų antroji grupė perima pirmosios grupės teises, tai norint, kad trečioji grupė perimtų ir pirmosios ir antrosios grupių teises pakaks įrašyti tik antrosios grupės pavadinimą.
  • options: – papildomų nustatymų sąrašo pradžia. Šis nustatymas, atitrauktas nuo krašto per 8 tarpus žymi papildomų nustatymų sąrašo pradžią, kur pateikiama informacija apie grupę gali būti naudojama tiesiogiai nesusijusių papildomų įskiepių, tokių kaip atskiros automatinės rangų sistemos ir t.t.
  • rank: – žaidėjų grupės rangas serveryje. Šis nustatymas leidžia žaidėjų grupę pakeisti palaipsniui, naudojantis paaukštinimo sistema, kuri taip pat gali būti susieta su išorinių įskiepių rangų sistemomis. Tačiau reikia atsiminti, jog rangas visada turi būti sveikas skaičius rašomas tarp ‘ ir ‘ simbolių, tarkime: “rank: ’1?. Kitas aktualus dalykas kurį reikia atsiminti – aukščiausias pareigas užimančios grupės rango skaičius visada bus mažiausias, pvz.: savininko rangas 1, o paprasto žaidėjo 100. Nustatymas nuo krašto atitrauktas per 12 tarpų
  • rank-ladder: – žaidėjų grupės rangų skirstymo serveryje nustatymas. Šis nustatymas leidžia turėti vienodo lygio rangus, tačiau tarpusavyje jų nesumaišyti, tarkime, turime dvi grupes, kurių rangai yra 2 ir 2. Tai vykdant žaidėjo paaukštinimą į aukštesnę grupę, reikės papildomai nurodyti ir rank-ladder nustatymą, kad žaidėjas nebūtų paskirtas iš paprasto VIP į kokį nors unikalų SuperVIP. Tekstas šiame nustatyme taipogi rašomas tarp simbolių ‘ ir ‘, visas nustatymas nuo krašto atitrauktas per 12 tarpų.
  • users: – serverio žaidėjų sąrašo pradžia. Šis nustatymas nurodo, jog žemiau esantis sąrašas nurodys, kokie žaidėjai, kokioms grupėms priklauso. Nustatymas pritrauktas prie pat krašto.
  • ŽAIDĖJO_VARDAS: – žaidėjo vardas. Šis nustatymas atitrauktas nuo krašto per 4 tarpus nurodo, jog žemiau bus pateiktas būtent konkretaus žaidėjo įvairių nustatymų sąrašas, kaip tarkim unikalus tekstas prieš vardą ir t.t.
  • group: – žaidėjo grupių, kurioms jis priklauso, sąrašas. Atitrauktas nuo krašto per 8 tarpus, šis nustatymas nurodo, kokioms grupėms  iš aukščiau esančio grupių sąrašo žaidėjas priklauso. Galima nurodyti keletą grupių, rašant jas stulpeliu.
  • - GRUPĖS_PAVADINIMAS – grupės, kuriai priklauso žaidėjas pavadinimas. Šis nustatymas atitrauktas nuo krašto per 8 tarpus nurodo, kokios grupės privilegijas turi šis žaidėjas.
Privilegijų sąrašo kūrimas
Pateiksiu pavyzdį, kaip turėtų atrodyti pavyzdinis serverio grupių sąrašas, bei nupasakosiu tikslią eigą, kaip jį sukurti.
Tarkime, norime turėti tris skirtingas grupes tokiais pavadinimais – zaidejas, priziuretojas, savininkas. Tai pirmiausiai, ką mes padarysime, tai sukursime šias grupes. Atidarykite savo permissions.yml failą ir ištrinkite viską, kas jame buvo. Tuomet įrašykite:
groups:
    zaidejas:
    priziuretojas:
    savininkas:

Dabar nustatykime, kuri iš šių grupių yra pagrindinė, bei sudėkime nustatymus, kokį tekstą norime matyti prieš ir po žaidėjo vardo, kai jus bus atitinkamoje grupėje. Tarkim, norime, kad zaidejas būtų mūsų pagrindinė grupė, tačiau neturėtų jokio teksto, priziuretojo grupėje esantis žaidėjas prieš savo tekstą matytų žodį [MOD], o savininkas po savo vardo matytų [GOD] tekstą. Tuomet pridedame default:, prefix: ir suffix: nustatymus šioms grupėms.
groups:
    zaidejas:
        default: true
    priziuretojas:
        prefix: '[MOD]'
        default: false
    savininkas:
        suffix: '[GOD]'
        default: false

Dar norime, kad mūsų zaidejo grupė galėtų naudotis /home komanda, ir šios grupės privilegijas perimtų priziuretojo grupė, kuri dar turėtų komandą /sethome, o šios privilegijas perimtų savininko grupė ir turėtų galimybę naudotis absoliučiai visomis komandomis:
groups:
    zaidejas:
        default: true
        permissions:
        - essentials.home
        inheritance: []
    priziuretojas:
        prefix: '[MOD]'
        default: false
        permissions:
        - essentials.sethome
        inheritance:
        - zaidejas
    savininkas:
        suffix: '[GOD]'
        default: false
        permissions:
        - '*'
        inheritance:
        - priziuretojas

Dabar pridėkime rangų nustatymus, kad galėtume lengvai naudotis paaukštinimo pareigose programomis. Savininkas pas mus yra aukščiausias rangas, vadinasi jis gaus skaičių 1. Rangams papildomų kategorijų neskirsime, nes to prisireikia labai retai.
groups:
    zaidejas:
        default: true
        permissions:
        - essentials.home
        inheritance: []
        options:
            rank: '3'
    priziuretojas:
        prefix: '[MOD]'
        default: false
        permissions:
        - essentials.sethome
        inheritance:
        - zaidejas
        options:
            rank: '2'
    savininkas:
        suffix: '[GOD]'
        default: false
        permissions:
        - '*'
        inheritance:
        - priziuretojas
        options:
            rank: '1'

Dabar mums beliko paskirti šias grupes žaidėjams. Taigi, turime tris žaidėjus – Petriukas, Jonukas, Vytukas. Norime, kad Petriukas būtų zaidejo grupėje, tačiau, kad prieš savo vardą turėtų tekstą Kvailelis. Jonukas bus priziuretojo grupėje ir galės naudotis komanda /ban, o Vytukas bus savininkas. Įsidėmėkite, jog po grupių sąrašo pabaigos reikia palikti vieną tuščią eilutę, kur nėra jokio simbolio (tarpų ir t.t.), kad įskiepis suprastų, jog jau turite visas grupes. Taigi, sukurkime šiems vartotojams nustatymus:
groups:
    zaidejas:
        default: true
        permissions:
        - essentials.home
        inheritance: []
        options:
            rank: '3'
    priziuretojas:
        prefix: '[MOD]'
        default: false
        permissions:
        - essentials.sethome
        inheritance:
        - zaidejas
        options:
            rank: '2'
    savininkas:
        suffix: '[GOD]'
        default: false
        permissions:
        - '*'
        inheritance:
        - priziuretojas
        options:
            rank: '1'

users:
    Petriukas:
        group:
        - zaidejas
        prefix: 'Kvailelis '
    Jonukas:
        group:
        - priziuretojas
        permissions:
        - essentials.ban
    Vytukas:
        group:
        - savininkas

Išsaugokite savo permissions.yml failą ir perkraukite serverį, žaidėjų grupės turėtų būti atsiradę, jei viską darėte teisingai pagal mūsų gidą.

SVARBU! prefix:, suffix: nustatymai neveiks, jei nebus įdiegtas joks pokalbių kanalo (chat) pluginas, pvz.: ChatManager, arba EssentialsChat.

Komentarų nėra:

Rašyti komentarą