Stránka 1 z 2

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

Napsal: 31 srp 2014, 18:41
od siOnzee
Ú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

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

Napsal: 31 srp 2014, 18:43
od OneTime97
Tady se někdo rozepsal vid? :D

Mno, návod pěkný, lepší než ty co tu už byly. A hodně užitečný

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

Napsal: 31 srp 2014, 18:47
od siOnzee
No díky, asi trochu jo, ale to je běžný (:

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

Napsal: 31 srp 2014, 18:50
od Mysteria
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. :)

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

Napsal: 31 srp 2014, 18:56
od siOnzee
Tak mým cíleným účelem bylo hlavně vyřešit ten problém když si lidi stěžují že jim nefunguje PEX.
[:

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

Napsal: 06 zář 2014, 23:42
od siOnzee
Ještě to můžu udělat víc po lopatě, ale myslím že z tohoto zatím všechno chápou ne? :]]

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

Napsal: 16 zář 2014, 09:31
od Rupynator
Pěkný návod, karma+

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

Napsal: 30 zář 2014, 03:22
od pe89dro
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

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

Napsal: 30 zář 2014, 07:14
od DenOwq

Kód: Vybrat vše

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

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

Napsal: 30 zář 2014, 18:37
od pe89dro
a este jedna otazka ako pridam suffix ako prefix funguje