Ultima modifica:
In questa guida mostrerò come settare PermissionsEX.
Prima di tutto: Perchè PEX, esistono anche altri buoni Permissions Manager come bPermissions, Essentials Group Manager o PermissionsBukkit.
Ho scelto PEX perchè secondo me è il miglior Permissions Manager su Bukkit, non è ne tanto facile ne tanto complicato, e permette di settare praticamente qualsiasi cosa.
PermissionsEX è un plugin che permette di inserire un sistema di permessi nel tuo server. I permessi servono per dare, o bloccare, l'accesso ad alcune cose (Come cacciare o bannare le persone, creare o eliminare fazioni).
E' un plugin essenziale per un server Bukkit, senza di questo non è protetto.
Svolge un ruolo importantissimo nel funzionamento del server.
Questa guida sarà divisa in diversi paragrafi:
- Premesse per la configurazione ottimale
- Installazione di PEX (FACILE)
- Settare PEX tramite config (MEDIO)
- Settare PEX tramite comandi (FACILE)
- Inserire gli utenti nei gruppi tramite config (MEDIO)
- Inserire gli utenti nei gruppi tramite comandi (FACILE)
- Settaggio avanzato di PEX (DIFFICILE)
PS: Per semplificare la lettura di questa guida sono stati aggiunti degli esempi tramite il tag CODE, nella settaggio tramite config si leggono rossi i codici nuovi (Quelli modificati rispetto al codice precedente)
Premesse per la configurazione ottimale
Prima di installare PEX, o la maggior parte dei plugin, bisogna avere strumenti che permettono la modifica dei file di configurazione.
Quindi munitevi di Notepad++ (Sia Windows che MAC)
Questo programma serve per modificare i files .yml, che sono le configurazioni di tutti i plugin.
Per renderlo "ottimo" nel settaggio di PEX bisogna sistemare alcune opzioni.
Aprite il programma, tramite il menù a tendina in alto selezionare Configurazione e aprire Preferenze...
Selezionate la voce Tabulazioni e attivare "Sostituisci con spazi", fare attenzione che i spazi siano 4.
Per MAC o GNU/Linux si può utilizzare l'editor di testo pre-installato. Facendo attenzione a non premere mai TAB ma inserire i spazi manualmente.
Installazione di PEX (FACILE)
Per scaricare PEX dirigersi sul sito del progetto (Link), una volta finito di scaricare inseritelo nella cartella plugins del server e avviate il server.
Una volta avviato il server si dovrebbe creare una cartella PermissionsEX (Dentro plugins), lì dentro si trova config.yml e permissions.yml.
Il file config.yml serve per configurare le basi di PEX e non i permissions.
Il file permissions.yml serve invece per configurare i permissions, compresi gli utenti.
Settare PEX tramite config (MEDIO)
Per creare un gruppo bisogna aprire il file permissions.yml con Notepad++.
Prendiamo come esempio il gruppo default (Automaticamente creato dentro il file):
Dentro questo gruppo troviamo scritte alcune opzioni, default e permissions.
default serve per selezionare il gruppo base (Dove gli utenti appena entrati andranno)
permissions è la lista dove inseriremo i nostri permessi.
Codice:
groups:
default:
options:
default: true
permissions:
- modifyworld.*
Aggiungere Permesso
Per aggiungere un permesso bisogna aggiungere un altra riga sotto "- modifyworld.*", ed inserire il permesso.
Codice:
groups:
default:
options:
default: true
permissions:
- modifyworld.*
- nuovo.permesso
Così facendo abbiamo inserito il nostro primo permesso.
Per aiutarvi con la configurazione vi elenco un altro esempio per facilitarvi il settaggio:
Codice:
groups:
default:
options:
default: true
permissions:
- modifyworld.*
- bukkit.command.kill
- bukkit.command.tell
- bukkit.command.list
Se si vuole aggiungere TUTTI I PERMESSI, bisogna dargli '*':
Codice:
groups:
default:
options:
default: true
permissions:
- '*'
Aggiungere gruppo
Per aggiungere un gruppo diverso da quello di default si può semplicemente copiare quello di default e rinominare il gruppo.
Codice:
groups:
default:
options:
default: true
permissions:
- modifyworld.*
- nuovo.permesso
copia_default:
options:
default: true
permissions:
- modifyworld.*
- nuovo.permesso
Per rinominare il gruppo si deve modificare la prima linea del gruppo (In questo caso copia_default | SENZA LEVARE I DUE PUNTI)
Codice:
groups:
utente:
options:
default: true
permissions:
- modifyworld.*
- nuovo.permesso
admin:
options:
default: false
permissions:
- modifyworld.*
- nuovo.permesso
Links:
Essentials Permissions (Link)
Authme Permissions (Link)
Permessi base di bukkit (Link)
Settare PEX tramite comandi (FACILE)
Qui sotto elencherò tutti i comandi necessari per creare i gruppi di PEX:
pex groups list - Mostra lista dei gruppi
pex group <Gruppo> prefix [nuovoPrefix] - Mostra/Setta il Prefix al gruppo
pex group <Gruppo> suffix [nuovoSuffix] - Mostra/Setta il Suffix al gruppo
pex group <Gruppo> create - Crea il gruppo
pex group <Gruppo> delete - Elimina il gruppo
pex group <Gruppo> user add <Utente> - Aggiunge al gruppo l'utente
pex group <Gruppo> list - Mostra la lista dei permessi del gruppo
pex group <Gruppo> add <Permesso> - Aggiunge il permesso al gruppo
pex group <Gruppo> remove <Permesso> - Rimuove il permesso al gruppo
pex group <Gruppo> set <Opzione> <Valore> - Setta l'opzione del gruppo
pex group <Gruppo> prefix [nuovoPrefix] - Mostra/Setta il Prefix al gruppo
pex group <Gruppo> suffix [nuovoSuffix] - Mostra/Setta il Suffix al gruppo
pex group <Gruppo> create - Crea il gruppo
pex group <Gruppo> delete - Elimina il gruppo
pex group <Gruppo> user add <Utente> - Aggiunge al gruppo l'utente
pex group <Gruppo> list - Mostra la lista dei permessi del gruppo
pex group <Gruppo> add <Permesso> - Aggiunge il permesso al gruppo
pex group <Gruppo> remove <Permesso> - Rimuove il permesso al gruppo
pex group <Gruppo> set <Opzione> <Valore> - Setta l'opzione del gruppo
All'avvio del server ci sta già un gruppo di base, "default".
Per mostrare la lista dei gruppi esistenti fare: pex groups list
Codice:
[INFO]: Registered groups:
[INFO]: default #0 []
Per creare un nuovo gruppo fare il comando: pex group <Nome del gruppo> create
E fare pex groups list per vedere se è stato creato.
Codice:
[INFO]: Group admin created!
[INFO]: Registered groups:
[INFO]: default #0 []
[INFO]: admin #0 []
Per eliminare un gruppo fare il comando: pex group <Nome del gruppo> delete
E fare pex groups list per vedere se è stato eliminato.
Codice:
[INFO]: Group admin removed!
[INFO]: Registered groups:
[INFO]: default #0 []
Per leggere le informazioni sul gruppo che abbiamo create bisogna fare: pex group <Nome del gruppo>
Codice:
[INFO]: 'admin' inherits the following groups:
[INFO]: Group admin's permissions:
[INFO]:
[INFO]: Group admin's Options:
Per aggiungere un permesso al gruppo fare: pex group <Nome del gruppo> add <Permesso>
Facciamo come esempio il comando per uccidere (pex group admin add bukkit.command.kill), e poi facciamo pex group <Gruppo>, per vedere se il permesso è stato inserito.
Codice:
[INFO]: Permission "bukkit.command.kill" added to group "admin"!
[INFO]: 'admin' inherits the following groups:
[INFO]: Group admin's permissions:
[INFO]: 1) bukkit.command.kill (own)
[INFO]: Group admin's Options:
Per rimuovere un permesso al gruppo fare: pex group <Nome del gruppo> remove <Permesso>
Codice:
[INFO]: Permission "bukkit.command.kill" removed from group "admin"!
[INFO]: 'admin' inherits the following groups:
[INFO]: Group admin's permissions:
[INFO]:
[INFO]: Group admin's Options:
Inserire gli utenti nei gruppi tramite config (MEDIO)
Il file permissions.yml si divide in due gruppi: groups e users.
Automaticamente si genera groups, con dentro il gruppo default, Invece non si genera automaticamente il gruppo users.
Per inserire il nostro nick dentro un gruppo dobbiamo creare il nostro utente nel file:
Codice:
groups:
default:
options:
default: true
permissions:
- modifyworld.*
admin:
permissions:
- bukkit.command.kill
users:
alessiodp:
group:
- admin
Facciamo molto attenzione alla tabulazione degli utenti:
Il gruppo users si trova alla colonna 1 (Nessuno spazio)
Il nickname si trova alla colonna 3 (2 spazi)
Il gruppo si trova alla colonna 5 (4 spazi)
Altro esempio:
Codice:
groups:
default:
options:
default: true
permissions:
- modifyworld.*
helper:
options:
default: false
permissions:
- essentials.fly
admin:
permissions:
- bukkit.command.kill
users:
alessiodp:
group:
- admin
alessiodp2:
group:
- admin
alessiodp3:
group:
- helper
Non è necessario inserire tutti gli utenti del server. Quelli non inseriti, vanno automaticamente nel gruppo di default.
Inserire gli utenti nei gruppi tramite comandi (FACILE)
Qui sotto elencherò tutti i comandi importanti per settare gli utenti nei gruppi:
pex users - Mostra la lista degli utenti settati
pex user <Utente> - Mostra le informazioni dell'utente
pex user <Utente> prefix [Nuovo Prefix] - Mostra/setta il prefix di un utente
pex user <Utente> suffix [Nuovo Suffix] - Mostra/setta il suffix di un utente
pex user <Utente> add <Permesso> - Aggiunge un permesso all'utente
pex user <Utente> remove <Permesso> - Rimuove un permesso all'utente
pex user <Utente> group set <Gruppo> - Inserisce l'utente nel gruppo
pex user <Utente> group remove <Gruppo> - Toglie l'utente dal gruppo
pex user <Utente> - Mostra le informazioni dell'utente
pex user <Utente> prefix [Nuovo Prefix] - Mostra/setta il prefix di un utente
pex user <Utente> suffix [Nuovo Suffix] - Mostra/setta il suffix di un utente
pex user <Utente> add <Permesso> - Aggiunge un permesso all'utente
pex user <Utente> remove <Permesso> - Rimuove un permesso all'utente
pex user <Utente> group set <Gruppo> - Inserisce l'utente nel gruppo
pex user <Utente> group remove <Gruppo> - Toglie l'utente dal gruppo
Per facilitare la lettura aggiungerò degli esempi che "imiteranno" la console.
Per mostrare la lista degli utenti settati fare: pex users
Codice:
[INFO]: Currently registered users:
[INFO]: alessiodp <Last known username: alessiodp> [default]
Per aggiungere un utente ad un gruppo fare il comando: pex user <Nome dell'utente> group set <Nome del gruppo>
Alla fine facciamo il comando pex users per vedere se è cambiato qualcosa.
Codice:
[INFO]: User groups set!
[INFO]: Currently registered users:
[INFO]: alessiodp <Last known username: alessiodp> [admin]
Per rimuovere un utente da un gruppo fare il comando pex user <Nome dell'utente> group remove <Nome del gruppo>
Alla fine facciamo il comando pex users per vedere se è cambiato qualcosa.
Codice:
[INFO]: User "alessiodp/alessiodp" removed from group "admin"!
[INFO]: Currently registered users:
[INFO]: alessiodp <Last known username: alessiodp> [default]
E' anche possibile aggiungere permessi specifici all'utente invece di inserirlo solo nel gruppo. Comandi per farlo si trovano nella lista sopra citata.
Settaggio avanzato di PEX (DIFFICILE)
Questo capitolo di questa guida mostrerà diverse cose possibili con PEX:
- Inheritance dei permessi
- Permessi per mondo
- Inheritance fra mondi
- Regular Expressions (REGEX)
Inheritance dei permessi
La maggior parte dei server ha molti gruppi settati, ognuno con i propri permessi.
L'inheritance serve per minimizzare lo spazio usato dal gruppo. Infatti con esso puoi creare dei veri gradi fra i gruppi.
Si utilizza per inserire gli stessi permessi di un gruppo senza riscriverli tutti.
Tramite configurazione si imposta così:
Codice:
groups:
Membro:
options:
prefix: '[Membro] '
default: true
permissions:
- modifyworld.*
VIP:
options:
prefix: '[VIP] '
[COLOR=#ff0000] inheritance:
- Membro[/COLOR]
permissions:
- essentials.fly
Moderatore:
options:
prefix: '[Moderatore] '
[COLOR=#ff0000] inheritance:
- VIP[/COLOR]
permissions:
- essentials.gamemode
Permessi per mondo e Inheritence per mondo
Aggiungere i permessi per mondo è uguale all'aggiungerli per gruppo, con la sola differenza di dover aggiungere una stringa in più.
Mettiamo caso che vogliamo poter far volare gli utenti nell'end:
Codice:
groups:
Membro:
options:
prefix: '[Membro] '
default: true
permissions:
- modifyworld.*
[COLOR=#ff0000] worlds:
world_the_end:
permissions:
- essentials.fly[/COLOR]
Per creare un inheritence fra mondi invece bisogna utilizzare inheritence invece che permissions:
Codice:
groups:
Membro:
options:
prefix: '[Membro] '
default: true
permissions:
- modifyworld.*
worlds:
world_the_end:
permissions:
- essentials.fly
VIP:
options:
prefix: '[VIP] '
worlds:
world_the_end:
inheritence:
- Membro
REGEX (Regular Expressions)
PEX supporta 4 diversi REGEX:
- Le parentesi ["( )"] per indicare un gruppo
- Le parentesi graffe ["{ }"] per i pattern (Non ne parleremo in questa guida)
- La barra verticale [" | "] per indicare diverse cose (La lettera "o"/"oppure")
- Il trattino [" - "] per indicare una parte ad un altra (Per esempio dal numero 1 al 5)
- Il trattino prima del permesso [" -<permesso> "] si utilizza per rendere negativo il permesso
Prima di tutto: dove si utilizzano i REGEX?
I regex si utilizzano per scrivere un permesso, nella maggior parte dei casi si utilizza per permessi precisi di protezione come Modifyworld.
Gli esempi che farò più sotto saranno dei permessi di ModifyWorld, un plugin di PEX.
Farò un grande esempio che fa rientrare tutte i REGEX che abbiamo detto:
Codice:
-modifyworld.blocks.(destroy|place)[.(1-4|12)
Andando in ordine per colore:
- Il primo trattino indica che il permesso dovrà essere negativo (Quindi invece di poter usare il blocco, non potrà usarlo)
- La prima parentesi apre un gruppo [" (destroy|place) "] quindi è già come se si fossero creati 2 permessi sulla stessa linea
- Dentro il gruppo ci sono 2 permessi [" destroy|place "], staccati da un | ("or"). Ricapitolando l'utente non potrà nè piazzare nè distruggere
- La seconda parentesi serve per chiudere il gruppo
- Successivamente se ne riapre un altra che ha la stessa funzione di quella precedente ma indica dei blocchi.
- Il trattino fra 1 e 4 indica tutti i numeri dall'1 all 4 (Quindi 1-2-3-4), dove poi si aggiunge il 12
Questo è quello che fa il permesso con i REGEX.
Il permesso tradotto in lingua dice:
L'utente non può nè distruggere nè piazzare i blocchi dall'1 al 4 e il 12.
Attenzione: Nel caso del trattino ad inizio permesso, ci sta un modo diverso per inserirlo, in base agli altri permessi deve essere inserito prima di essi, per sicurezza consiglio di metterli sempre sopra tutti i permessi
Esempio d'inserimento del permesso
Codice:
Membro:
options:
prefix: '[Membro] '
permissions:
- -modifyworld.blocks.(destroy|place).(1-4|12)
- modifyworld.*
Altri esempi:
Codice:
modifyworld.blocks.interact.(dispenser|chest|furnace)
Codice:
-modifyworld.items.craft.(276|278)
Codice:
-modifyworld.items.craft.(diamond_sword|diamond_pickaxe)
Guida scritta completamente dal moderatore AlessioDP per Inforge.net.
Vietata la copia senza il permesso e soprattutto senza crediti di AlessioDP e Inforge.net.
Non mi assumo nessuna responsabilità.