[Návod] Správné použití PermissionsEx.

Message
Autor
Uživatelský avatar
siOnzee
Příspěvky: 810
Věk: 27
Registrován: 30 lis 2011, 21:40
Reputation: 4
Bydliště: siOnzee.cz
Kontaktovat uživatele:

[Návod] Správné použití PermissionsEx.

#1 Příspěvekod siOnzee » 31 srp 2014, 18:41

ÚVOD
Ahojte milý čtenáři, jelikož zde na forum se hodně objevuje problémů s pluginem PermissionsEx, dovolil jsem si založit téma na které tyto lidi můžete odkázat a oni odčinit a napravit své chyby sami.
Samozřejmě že těchto návodu je tu mnohem více, ale v žádném z nich jsem nenašel to o čem se s vámi chci podělit a měli by být samozřejmostí.

Každý si myslí že nastavení konfiguračního souboru permissions.yml je ta nejprimitivnější práce.
Ale to je omyl, i toto nastavení může být velice rozsáhle a náročné na přípravu, natož nastavení.
Nastavení konfigurace PermissionsEx vyžaduje čas a nemělo by se vůbec odfláknout!

Celý tento článek se rozdělí na následující odvětí:

CO JE PERMISSIONS EX
PermissionsEx je plugin který využívá Bukkit API a funguje pouze na serverech které se živí z Bukkit API.
Tento plugin nám umožňuje na serveru udělat čistotu a pořádek, mít všechno na správných věcech jak je potřeba.
PermissionsEx a nebo-li PEX, je jako vězení a dozorce. Účelem je povolit to co vězní smí a nesmí, taktéž to platí i pro dozorce (například že nemůžou ubližovat vězňům).
Výše uvedený přiklad nám PEX neumožní splnit, protože pouze dohlíží na oprávnění k jiným pluginu.
Samostatně o sobě je to plugin co nic neumí. Jen spravovat systém oprávnění.

Takže permissionsex použijeme pouze v případě:
  • Chceme aby hráči měli oprávnění které požadujeme.
  • Chceme aby Majitel byl vyšší hodnost než moderátor.


Nesprávně použití permissionsex:
  • Bude vězeňský mód a veškeré údálosti se budou ovládat skrze PermissionsEx.

JAK SE APLIKUJE NA SERVER
  • Prvně budeme potřebovat vědět jak se dostat do FTP.
  • Nyní:
    1. Vypneme server.
    2. Otevřeme složku plugins.
    3. Stáhneme do počítače PermissionsEX. Vždy tu verzi co je úplně první proto aby byla nejnovější.
    4. Stažený soubor PermissionsEx{verze}.jar vložíme do složky plugins.
    5. Zapneme server.


PRÁCE S PERMISSIONS EX
Nyní na serveru máme aplikovaný plugin permissionsex.
Tím ale práce nekončí, jinak by tento plugin neměl žádný užitek.

Nyní vypneme server přes ovládací panel.
Přes FTP si stáhneme soubor permissions.yml ze složky PermissionsEx která se nachází v plugins.
Soubor otevřeme, nejlépe v nějakém odlišném textovém editoru než je poznámkový blok. Já doporučuji Notepad++.

Po otevření tohoto souboru můžeme vidět tento obsah:

Kód: Vybrat vše

groups:
  default:
    options:
      default: true
    permissions:
    - modifyworld.*
schema-version: 1


groups - Je jen odvětí, tento název vůbec měnit nebudeme. Nebudeme ho přejmenovávat, ani přesouvat na jiný řádek. Měl by být vždy na prvním řádku a končit dvojtečkou.

default - Je již název skupiny, v překladu to znamená 'původní' a to obsahuje atributu options ve které je default: true, nadále má permissions.

options - nastavení vlastností skupiny.
- default: true - Tato skupina bude pro všechny původní, takže když se hráč připojí na server, ihned se mu přidělí skupina kde je default: true, proto dávat pozor ať to je v konfiguraci pouze 1x.

permissions - je seznam oprávnění které skupina vlastní.
- modifyworld.* - Je oprávnění pro plugin ModiyWorld (pokud ho máte na serveru) a v popisu plugin toto oprávnění znamená že skupina může níčit a pokládat bloky ve všech světech.

Jelikož YAML je velice citliví formát, musíme dbát na to abychom nepoužili TABULÁTORY a použili mezery NA SPRÁVNÝCH místech.
Chybějící mezera může způsobit že permissionsex se vůbec nezapne a vyhodí chybu o řádku kde je určítá chyba.

Proto když upravíme jakej koliv znak v permissions.yml se musíme ujistit že soubor je uložen v enkodování UTF-8 a že v něm není chyba.
Jak zjistit jestli máme v souboru chybu?
Překopírujeme celý obsah permissionsex do této stránky do levé kolonky (nahradíme obsah který tam už je).

Pokud napravo vám vyjede stejný obsah ale v jiném formátování, znamená to že váš soubor je správný a nenachází se v něm chyba. Ale nesmíte použít obsah který vám to vypsalo.
Protože už neodpovídá formátování YAML. (Výstup je původně v JSonu.)

Může se nám stát že napravo vyskočí chyba:
ERROR:
while scanning a simple key
in "<unicode string>", line 6, column 5:
-modifyworld.*
^
could not found expected ':'
in "<unicode string>", line 7, column 1:
schema-version: 1
^

Tato chyba říká že máte obrátit pozornost řádku 6.
Řádek 6 u mě obsahuje: -modifyworld.*
Chyba je v tom že za pomlčkou není mezera. Tudíž když jsem řádek přízpůsobil
z -modifyworld.* na - modifyworld.*, chyba zmizela.

To samé se může stát když na začátku řádku nedáte x. Mezer ale tabulátor.
ERROR:
while scanning for the next token
found character '\t' that cannot start any token
in "<unicode string>", line 6, column 1:
- modifyworld.*
^

Zase platí to najít řádek 6 a upravit všechny tabulátory na mezery.

Jak zjistíme jestli je tabulátor?
Já používám svojí metodu, bud to notepad++ podtrhne červeně.
Nebo to vyberete myší. (Když se vybere kousek a né velkej úsek tak je to mezera).

Dědičnost
Je nesmysl psát aby každá skupina měla 10x stejných oprávněních jako ostatní.
Od toho tu existuje dědičnost (inheritance)

Nejdřív vám předvedu co inheritance umí za krásný výsledek (tento pex obsah jsem našel někde tady na foru).

Kód: Vybrat vše

groups:
  hrac:
    default: true
    build: true
    prefix: '&7Hrac &f'
    permissions:
    - essentials.balance
    - essentials.balance.others
    - essentials.balancetop
    - essentials.world.<worldname>
    - essentials.clearinventory
    - essentials.home
    - essentials.kit.[tools]
    - essentials.msg
    - essentials.build
    - essentials.signs.break.sell
    - essentials.signs.break.buy
    - essentials.rules
    - essentials.sethome
    - essentials.suicide
    - essentials.tpa
    - essentials.tpaccept
    - essentials.tpdeny
    - essentials.warp
    - essentials.warp.list
  vip:
    default: false
    build: true
    prefix: '&6[&aVIP&6]&2'
    permissions:
    - essentials.balance
    - essentials.balance.others
    - essentials.balancetop
    - essentials.clearinventory
    - essentials.home
    - essentials.kit.[tools]
    - essentials.msg
    - essentials.build
    - essentials.signs.break.sell
    - essentials.signs.break.buy
    - essentials.rules
    - essentials.sethome
    - essentials.suicide
    - essentials.tpa
    - essentials.tpaccept
    - essentials.tpdeny
    - essentials.warp
    - essentials.warp.list


Mi přijde horší než:

Kód: Vybrat vše

groups:
  player:
    default: true
    prefix: '&7Hrac &f'
    permissions:
    - essentials.balance
    - essentials.balance.others
    - essentials.balancetop
    - essentials.world.<worldname>
    - essentials.clearinventory
    - essentials.home
    - essentials.kit.[tools]
    - essentials.msg
    - essentials.build
    - essentials.signs.break.sell
    - essentials.signs.break.buy
    - essentials.rules
    - essentials.sethome
    - essentials.suicide
    - essentials.tpa
    - essentials.tpaccept
    - essentials.tpdeny
    - essentials.warp
    - essentials.warp.list
  vip:
    inheritance:
    - player
    prefix: '&6[&aVIP&6]&2'
    permissions:
    - some.vip.stuff


Uznejte že varianta dole je přehlednější. A to není všechno.
Pak když se budete radit zde na foru, každý pozná že jste týpek který se o to stará a věnuje tomu čas.
Když jim tam dáte první variantu, každý bude luštit co to tam máte ve výsledku napatlaný. A 50% aby poradila to nechají těm co mají ještě tu vůli nadtím vytrvat a rozluštit to peklo. A taktéž tím ulehčíte práci i serveru.

Dědičnosti se dá docílit krásných výsledku, například
Máme skupiny: player, vip, youtuber, builder
Nadále: beginner, moderator, admin, owner

Builder bude dědit youtubera, youtuber budě dědit vip a vip bude dědit playera.
Owner nebude dědit nic, bude mit všechna práva tudíž '*' a admin bude dědit moderátora který bude dědit beginnera.

Rankování
I rankování hraje hlavní roli, dejme si přiklad:
Je armádní středisko kde je kapitán a velí všem operácím.
Teď k němu příjde vojin a řekne. Nyní jsem kapitán já, sesedni z trůnu.
Kapitán sesedne a bude šašek.

Myslím si že tohle by nikdo netoleroval a proto tu je rank.
Což by ve vyšším příkladu znamenalo že kapitán by nechal vojína potrestat.
Že si něco takového vůbec dovolil.

Nyní si to uvedeme na minecraftu.

Je skupina Owner (majitel) a Admin.
Je hráč Pavel který je (majitel) a Pepa který je (admin)
Pepa dal příkaz aby pavel by Admin, jelikož majitel nebyl dostatečně chytrý neměl rankování.
Nyní už majitel není a Pepa si může nastavit majitele.

Kdyby rankovací systém zde existoval, dopadlo by to tak že Pepovy by to napsalo chybu o tom že na to nemá oprávnění. A nebyl by máler na světě.

Rankovací systém zavedeme následujícím způsobem.

Do vašeho kodu ke skupinám přidáme ranky. Tudíž z

Kód: Vybrat vše

groups:
  player:
    default: true
    permissions: []
  admin:
    permissions: []

se stane:

Kód: Vybrat vše

groups:
  player:
    options:
     rank: '800'
    default: true
    permissions: []
  admin:
    options:
     rank: '0'
    permissions: []


Čím menší rank, tím větší hodnost. Proto má admin 0 a hráč 800.
Proč 800? Protože v budoucnu můžete přidat ještě 799 skupin který budou mít svůj rank.

PÁR PŘÍKLADŮ

Kód: Vybrat vše

groups:
    Member:
        prefix: '&0(&8Č&7len&0)&7 '
        permissions:
        - modifyworld.*
        options:
            rank: '900'
    VIP:
        prefix: '&0(&eVIP&0)&7 '
        inheritance:
        - Member
        permissions:
        - -modifyworld.mobtarget.monster.creeper
        options:
            rank: '800'
    Moderator:
        prefix: '&0(&1Moderator&0)&7 '
        inheritance:
        - VIP
        permissions:
        - -modifyworld.mobtarget.*
        options:
            rank: '100'


Další dodám časem. ( Až se mi bude chtít :]] )

ZÁVĚR
Tento článek jsem napsal abych si tu zlepšil můj vztah k ostatním lidem který se mnou nevychází.
A také pro podpoření tohoto fóra.

Doufám že jste si odnesli ponaučení, dozvědět se to můžu pouze tak že mi poděkujete + karmou. :]

Původní návod: viewtopic.php?f=85&t=4180
Naposledy upravil(a) siOnzee dne 25 zář 2014, 02:05, celkem upraveno 17 x.

OneTime97
Příspěvky: 1552
Věk: 23
Registrován: 03 kvě 2014, 12:20
Reputation: 1
Kontaktovat uživatele:

Re: [Návod][PermissionsEx] A neb jak správně používat PEX.

#2 Příspěvekod OneTime97 » 31 srp 2014, 18:43

Tady se někdo rozepsal vid? :D

Mno, návod pěkný, lepší než ty co tu už byly. A hodně užitečný
Každodenní stream od 19:00
https://www.twitch.tv/thief97
Sledujte mě na FB
https://www.twitch.tv/thief97

Uživatelský avatar
siOnzee
Příspěvky: 810
Věk: 27
Registrován: 30 lis 2011, 21:40
Reputation: 4
Bydliště: siOnzee.cz
Kontaktovat uživatele:

Re: [Návod][PermissionsEx] A neb jak správně používat PEX.

#3 Příspěvekod siOnzee » 31 srp 2014, 18:47

No díky, asi trochu jo, ale to je běžný (:

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: [Návod][PermissionsEx] A neb jak správně používat PEX.

#4 Příspěvekod Mysteria » 31 srp 2014, 18:50

Konečně někdo, kdo chápe význam slova návod jinak než co nejjednodušší plugin a zpracovat co nejjednodušeji, hlavně abych měl návod. :)

Uživatelský avatar
siOnzee
Příspěvky: 810
Věk: 27
Registrován: 30 lis 2011, 21:40
Reputation: 4
Bydliště: siOnzee.cz
Kontaktovat uživatele:

Re: [Návod][PermissionsEx] A neb jak správně používat PEX.

#5 Příspěvekod siOnzee » 31 srp 2014, 18:56

Tak mým cíleným účelem bylo hlavně vyřešit ten problém když si lidi stěžují že jim nefunguje PEX.
[:

Uživatelský avatar
siOnzee
Příspěvky: 810
Věk: 27
Registrován: 30 lis 2011, 21:40
Reputation: 4
Bydliště: siOnzee.cz
Kontaktovat uživatele:

Re: [Návod] Správné použití PermissionsEx.

#6 Příspěvekod siOnzee » 06 zář 2014, 23:42

Ještě to můžu udělat víc po lopatě, ale myslím že z tohoto zatím všechno chápou ne? :]]

Uživatelský avatar
Rupynator
Příspěvky: 185
Registrován: 29 srp 2014, 19:54
Reputation: 0

Re: [Návod] Správné použití PermissionsEx.

#7 Příspěvekod Rupynator » 16 zář 2014, 09:31

Pěkný návod, karma+
Nezapomeň odměnit karmou ty, kteří ti pomohli vyřešit problém.

pe89dro
Příspěvky: 116
Registrován: 29 říj 2012, 18:30
Reputation: 0

Re: [Návod] Správné použití PermissionsEx.

#8 Příspěvekod pe89dro » 30 zář 2014, 03:22

potrebujem pomoct aky prikaz mam pouzit na tu "dedicnost"? pouzivam cez mysql a ako sa snazim nemozem na to prist a aj rank ako sa pridava? dakujem za odpovede
Ak ti niekto pomohol daj mu karmu :)

Uživatelský avatar
DenOwq
Příspěvky: 2703
Věk: 27
Registrován: 06 bře 2014, 21:26
Reputation: 2

Re: [Návod] Správné použití PermissionsEx.

#9 Příspěvekod DenOwq » 30 zář 2014, 07:14

Kód: Vybrat vše

pex group <group> parents set <jiný groupa>
Muhahha.

pe89dro
Příspěvky: 116
Registrován: 29 říj 2012, 18:30
Reputation: 0

Re: [Návod] Správné použití PermissionsEx.

#10 Příspěvekod pe89dro » 30 zář 2014, 18:37

a este jedna otazka ako pridam suffix ako prefix funguje
Ak ti niekto pomohol daj mu karmu :)


Zpět na „Návody“

Kdo je online

Uživatelé prohlížející si toto fórum: Google [Bot] a 17 hostů