# Referência de permissões

Esta página lista todos os nós de permissão que o Verité utiliza, a sua predefinição e o que concede. Os nós estão agrupados por família: `verite.*` para funcionalidades centrais, `veritedoux.*` para chat e auxiliares de construção, `veritesauver.*` para moderação, e a família herdada `drigz.staff.*` para a observação de inventário.

As predefinições seguem a convenção do Bukkit:

* `op` significa que os operadores do servidor possuem o nó automaticamente. Todos os outros têm de o receber.
* `false` significa que ninguém possui o nó até que seja concedido explicitamente, incluindo os operadores.

!!! note "Nomes de nós em ASCII"
    Os nós de permissão são sempre ASCII, mesmo que o nome do plugin seja escrito "Verité" no texto. Conceda os nós exatamente como estão escritos, por exemplo `veritesauver.ban`, não `veritésauver.ban`.

## Como funciona a herança

Alguns nós declaram filhos. Conceder um pai concede automaticamente cada filho listado sob ele, a menos que substitua o filho diretamente. Os filhos são mostrados na coluna "Concede filhos" de cada tabela e são explicitados novamente onde for relevante. Conceder um filho por si só não concede o pai.

## Família central: `verite.*`

Estes nós cobrem a superfície de comandos de administração, a isenção de captcha, o vanish e as mensagens falsas de entrada e saída.

| Nó | Predefinição | Concede | Concede filhos |
| --- | --- | --- | --- |
| `verite.admin` | op | Utilizar os comandos de administração do Verité (`/verite status`, `/verite reload`, `/verite count`). Quem a tiver também recebe o aviso para aprovar uma ligação do [Painel](page:web-dashboard) em espera. | nenhum |
| `verite.bypass` | false | Isenta o portador dos desafios de captcha. | nenhum |
| `verite.vanish` | op | Alternar o seu próprio vanish com `/vanish`. | nenhum |
| `verite.fakejoin` | op | Difundir uma mensagem de entrada falsa para si com `/fakejoin`. | `verite.fakejoin.others` |
| `verite.fakejoin.others` | op | Difundir uma mensagem de entrada falsa indicando outro jogador. | nenhum |
| `verite.fakeleave` | op | Difundir uma mensagem de saída falsa para si com `/fakeleave`. | `verite.fakeleave.others` |
| `verite.fakeleave.others` | op | Difundir uma mensagem de saída falsa indicando outro jogador. | nenhum |

### Subnós de vanish

O comando de vanish lê vários outros nós para decidir quem pode ver o pessoal oculto e que benefícios de vanish se aplicam. Estes nós são verificados no código e não são declarados com uma predefinição explícita, por isso resolvem-se como não concedidos até que os atribua.

| Nó | Concede |
| --- | --- |
| `verite.vanish.others` | Ocultar ou revelar outro jogador, por exemplo `/vanish Steve`. |
| `verite.vanish.see` | Ver jogadores que estão atualmente em vanish. Sem este nó, os jogadores em vanish ficam-lhe ocultos. |
| `verite.vanish.fly` | Manter o voo ativado enquanto está em vanish (quando a opção de voo do vanish está ligada). |
| `verite.vanish.fly.keep` | Manter o voo depois de sair do vanish em vez de o ter removido. |
| `verite.vanish.invulnerable` | Ser invulnerável enquanto está em vanish (quando a opção de invulnerabilidade do vanish está ligada). |
| `verite.vanish.effects` | Receber os efeitos de poção de vanish configurados (quando a opção de efeitos do vanish está ligada). |
| `verite.vanish.level.<n>` | Define o nível de vanish do portador para o número `<n>` mais alto concedido. Os níveis mais altos podem ver os mais baixos. Requer LuckPerms; sem ele todo o pessoal partilha um nível e `verite.vanish.see` sozinho rege a visibilidade. |

!!! note "Níveis de vanish"
    `verite.vanish.level.<n>` é um nível numérico. Um membro do pessoal num nível mais alto pode ver o pessoal em níveis mais baixos. Conceda `verite.vanish.level.1`, `verite.vanish.level.2`, e assim por diante. O nível de um jogador é o nó de número mais alto que efetivamente possui.

## Família de chat e construção: `veritedoux.*`

| Nó | Predefinição | Concede |
| --- | --- | --- |
| `veritedoux.flag` | op | Ler e editar as flags de configuração do Verité no jogo com `/veriteflag`. |
| `veritedoux.showbarriers` | (permissão do comando) | Revelar blocos de barreira próximos ou todos para si próprio com `/showbarriers`. |
| `veritedoux.showlight` | (permissão do comando) | Revelar blocos de luz próximos ou todos para si próprio com `/showlight`. |

!!! note "Permissões dos comandos"
    `veritedoux.showbarriers` e `veritedoux.showlight` são declarados nos seus comandos em vez de na lista de permissões, por isso seguem o comportamento predefinido de permissão de comando do Bukkit. Conceda-os ao pessoal que deve utilizar esses auxiliares de construção.

## Família de moderação: `veritesauver.*`

Esta é a maior família. Cobre castigos, consultas, controlo de chat, a GUI da árvore de castigos, isenções e notificações.

### Comandos de castigo

| Nó | Predefinição | Concede | Concede filhos |
| --- | --- | --- | --- |
| `veritesauver.ban` | op | Banir e banir temporariamente jogadores. | nenhum |
| `veritesauver.mute` | op | Silenciar e silenciar temporariamente jogadores. | nenhum |
| `veritesauver.ipban` | op | Banir por IP jogadores ou endereços. | nenhum |
| `veritesauver.ipmute` | op | Silenciar por IP jogadores ou endereços. | nenhum |
| `veritesauver.kick` | op | Expulsar jogadores. | nenhum |
| `veritesauver.captcha` | op | Desafiar manualmente um jogador com um captcha. | nenhum |
| `veritesauver.warn` | op | Avisar jogadores. | nenhum |
| `veritesauver.unwarn` | op | Remover avisos. | nenhum |
| `veritesauver.lockdown` | op | Selar ou levantar um bloqueio do servidor. | nenhum |
| `veritesauver.lockdown.bypass` | op | Entrar no servidor durante um bloqueio. | nenhum |

### Desbanir e remover silenciamento

`unban` e `unmute` dividem-se cada um num nó "qualquer" e num nó "próprio". O nó "qualquer" herda o nó "próprio" como filho, por isso conceder o nó "qualquer" também concede o nó "próprio".

| Nó | Predefinição | Concede | Concede filhos |
| --- | --- | --- | --- |
| `veritesauver.unban` | op | Desbanir qualquer jogador. | `veritesauver.unban.own` |
| `veritesauver.unban.own` | false | Desbanir apenas castigos que emitiu. | nenhum |
| `veritesauver.unmute` | op | Remover o silenciamento de qualquer jogador. | `veritesauver.unmute.own` |
| `veritesauver.unmute.own` | false | Remover o silenciamento apenas de castigos que emitiu. | nenhum |

!!! note "Moderadores apenas do próprio"
    Para permitir que um membro do pessoal reverta apenas os seus próprios castigos, conceda `veritesauver.unban.own` e `veritesauver.unmute.own` sem os nós pai. Os próprios comandos `/unban` e `/unmute` predefinem-se para a permissão `.own`.

### Avisos e consultas

| Nó | Predefinição | Concede |
| --- | --- | --- |
| `veritesauver.warnings` | op | Ver os avisos de outros jogadores. |
| `veritesauver.checkwarn` | op | Verificar a contagem de avisos de um jogador. |
| `veritesauver.warnlist` | op | Listar todos os avisos ativos. |
| `veritesauver.checkban` | op | Verificar o estado de banimento de um jogador e listar os banimentos ativos. |
| `veritesauver.checkmute` | op | Verificar o estado de silenciamento de um jogador e listar os silenciamentos ativos. |
| `veritesauver.dupeip` | op | Listar as contas que partilham um IP. |
| `veritesauver.iphistory` | op | Ver o histórico de IP. |
| `veritesauver.namehistory` | op | Ver o histórico de nomes. |
| `veritesauver.lastuuid` | op | Resolver um nome para o seu último UUID. |
| `veritesauver.history` | op | Ver o histórico de castigos de um jogador. |
| `veritesauver.staffhistory` | op | Ver os castigos que um membro do pessoal emitiu. |
| `veritesauver.staffrollback` | op | Reverter os castigos recentes de um membro do pessoal. |
| `veritesauver.prunehistory` | op | Eliminar o histórico de castigos inativos. |
| `veritesauver.geoip` | op | Consultar o país de um jogador ou IP. |
| `veritesauver.whois` | op | Ver o dossiê completo da conta de um jogador. |
| `veritesauver.whois.ip` | op | Incluir o último IP em bruto num dossiê whois. |
| `veritesauver.seen` | op | Mostrar quando um jogador esteve online pela última vez. |

### Controlo de chat

| Nó | Predefinição | Concede |
| --- | --- | --- |
| `veritesauver.broadcast` | op | Difundir uma mensagem para o servidor. |
| `veritesauver.chatclear` | op | Limpar o chat para todos. |
| `veritesauver.chatmute` | op | Congelar ou descongelar o chat global. |
| `veritesauver.slowmode` | op | Definir o modo lento do chat. |
| `veritesauver.chat.bypass` | op | Falar apesar de um silenciamento de chat e ignorar o modo lento. |

### Administração e a árvore de castigos

`veritesauver.admin` recarrega o componente de moderação e levanta os limites de duração e os tempos de espera. Herda ambos os nós da árvore. `veritesauver.tree.all` herda adicionalmente `veritesauver.tree`.

| Nó | Predefinição | Concede | Concede filhos |
| --- | --- | --- | --- |
| `veritesauver.admin` | op | Recarregar o componente de moderação; ignorar os limites de duração e os tempos de espera. | `veritesauver.tree`, `veritesauver.tree.all` |
| `veritesauver.tree` | op | Abrir a GUI da árvore de castigos (`/punish`). | nenhum |
| `veritesauver.tree.all` | op | Utilizar todas as categorias da árvore de castigos independentemente do mapeamento de cargos. | `veritesauver.tree` |

### Grupo de isenção

A isenção protege um alvo de ser castigado. Um alvo que possua `veritesauver.exempt` não pode ser castigado a menos que o emissor possua `veritesauver.exempt.bypass`. Ambos os nós também suportam uma forma delimitada por tipo, permitindo isentar um jogador de um tipo de castigo enquanto deixa os outros disponíveis.

| Nó | Predefinição | Concede |
| --- | --- | --- |
| `veritesauver.exempt` | false | O portador não pode ser castigado (a menos que o emissor tenha a substituição). |
| `veritesauver.exempt.bypass` | op | Castigar jogadores que de outra forma estariam isentos. |

!!! note "Isenção delimitada por tipo"
    Além dos nós amplos acima, o código de moderação também verifica uma forma delimitada por tipo: `veritesauver.exempt.<type>` no alvo e `veritesauver.exempt.bypass.<type>` no emissor, onde `<type>` é `ban`, `mute`, `warning` ou `kick`. Por exemplo, conceder a um jogador `veritesauver.exempt.ban` protege-o de banimentos deixando-o silenciável. Estes nós delimitados por tipo são verificados no código e não são declarados com uma predefinição explícita, por isso resolvem-se como não concedidos até serem atribuídos.

!!! note "A isenção requer um alvo online e permissões em tempo real"
    A isenção por permissão só é avaliada para alvos online, porque as permissões em tempo real de um jogador offline não podem ser lidas. Um alvo offline nunca é tratado como isento. Os emissores da consola nunca são bloqueados pela isenção.

### Grupo de notificação

Os nós de notificação decidem quem vê cada categoria de difusão de moderação. Note as duas predefinições `false`: as difusões públicas de castigos e os anúncios de captcha são de adesão voluntária mesmo para os operadores.

| Nó | Predefinição | Concede |
| --- | --- | --- |
| `veritesauver.notify.broadcast` | false | Ver as difusões públicas de castigos. |
| `veritesauver.notify.silent` | op | Ver as difusões silenciosas (`-s`) de castigos. |
| `veritesauver.notify.dupeip_join` | op | Ser alertado quando uma alt de uma conta castigada entra. |
| `veritesauver.notify.client_join` | op | Ser alertado quando um jogador entra num cliente não vanilla. |
| `veritesauver.notify.banned_join` | op | Ser alertado quando um jogador banido é recusado no login. |
| `veritesauver.notify.captcha` | false | Ver os anúncios de aprovação e reprovação de captcha. |

## Família de observação de inventário: `drigz.staff.*`

A funcionalidade de observação de inventário (`/invsee` e `/endersee`) utiliza uma família de nós herdada `drigz.*` separada. Os nós de visualização herdam cada um a conclusão por tabulação, e os nós de edição herdam o nó de visualização correspondente.

### Nós de visualização e edição

| Nó | Predefinição | Concede | Concede filhos |
| --- | --- | --- | --- |
| `drigz.staff.invsee` | op | Ver o inventário de um jogador. | `drigz.staff.invsee.tabcomplete` |
| `drigz.staff.endersee` | op | Ver o baú de ender de um jogador. | `drigz.staff.invsee.tabcomplete` |
| `drigz.staff.invsee.edit` | op | Editar o inventário de um jogador enquanto o observa. | `drigz.staff.invsee` |
| `drigz.staff.endersee.edit` | op | Editar o baú de ender de um jogador enquanto o observa. | `drigz.staff.endersee` |
| `drigz.staff.invsee.tabcomplete` | op | Completar por tabulação os nomes de jogadores para os comandos de observação. | nenhum |

!!! note "Editar herda visualizar"
    Conceder `drigz.staff.invsee.edit` também concede `drigz.staff.invsee` (visualizar), e da mesma forma para o baú de ender. Não precisa de conceder ambos.

### Restrição de observação

| Nó | Predefinição | Concede |
| --- | --- | --- |
| `invsee.no.takeout` | false | Ao observar, permitir colocar itens mas nunca retirar itens. |

### Nós de substituição de observação

| Nó | Predefinição | Concede |
| --- | --- | --- |
| `drigz.staff.invsee.bypass-exempt` | op | Ignorar a isenção de observação de inventário nos alvos. |
| `drigz.staff.endersee.bypass-exempt` | op | Ignorar a isenção de observação de baú de ender nos alvos. |

### Nós de isenção de observação

Estes nós são possuídos pelos jogadores que devem ser protegidos, não pelo pessoal. A isenção é resolvida diretamente para alvos online, e para alvos offline através do LuckPerms, por isso aplica-se quer o alvo esteja ligado ou não.

| Nó | Predefinição | Concede |
| --- | --- | --- |
| `drigz.invsee.exempt` | false | Protege o portador de ter o seu inventário observado. |
| `drigz.endersee.exempt` | false | Protege o portador de ter o seu baú de ender observado. |

!!! note "Ignorar a isenção de observação"
    Um membro do pessoal com `drigz.staff.invsee.bypass-exempt` (ou o equivalente para o baú de ender) pode observar um alvo mesmo que esse alvo possua o nó de isenção correspondente.
