Permissões
Descrição
As permissões controlam o acesso de jogadores e administradores aos recursos que verificam esses identificadores. A configuração associa Steam IDs a grupos e permite definir permissões comuns a todos os jogadores.
Configuração
Configuração padrão
Permissions.json
{
"m_Groups": [
{
"m_Name": "superadmin",
"m_ForceName": 0,
"m_Users": [
{
"m_Name": "Player Name",
"m_Steam": "00000000000000000"
}
],
"m_Permissions": [
"root"
]
}
],
"m_Everyone": []
}Opções
| Opção | Tipo | Descrição |
|---|---|---|
m_Groups | array<object> | Grupos de jogadores. Um jogador pode receber permissões de vários grupos; não há herança por nome de grupo. |
m_Everyone | array<string> | Permissões concedidas a todos os jogadores, inclusive aos membros dos grupos. Para conceder uma permissão apenas a administradores, coloque-a no grupo correspondente. |
m_Groups[]
| Opção | Tipo | Descrição |
|---|---|---|
m_Name | string | Nome administrativo do grupo. O nome "superadmin" não concede privilégios por si só. |
m_ForceName | bool | Com 0, basta o Steam ID corresponder. Com 1, o nome atual do jogador também deve ser exatamente igual a m_Users[].m_Name para receber as permissões desse grupo. Verifica o nome; não renomeia o personagem. |
m_Users | array<object> | Jogadores que pertencem ao grupo. Substitua o cadastro de exemplo pelo nome e Steam ID reais do administrador. |
m_Permissions | array<string> | Permissões adicionadas aos membros aceitos do grupo. Use os identificadores exatos documentados abaixo. |
m_Groups[].m_Users[]
| Opção | Tipo | Descrição |
|---|---|---|
m_Name | string | Nome associado ao cadastro. Quando m_ForceName é 1, também é usado para conferir o nome atual. O primeiro cadastro de grupo aceito com nome não vazio fornece o nome de exibição ao sistema de permissões. |
m_Steam | string | Steam ID de 17 dígitos do jogador, entre aspas. A comparação usa o valor completo: informe somente o Steam ID, sem comentários ou sufixos. |
Como as permissões são combinadas
O jogador recebe primeiro as permissões de m_Everyone e depois as de todos os grupos nos quais seu cadastro for aceito. A ordem dos grupos não remove permissões já recebidas.
Os identificadores são comparados literalmente, com distinção entre maiúsculas e minúsculas. Use os nomes em minúsculas, conforme a documentação. Não há expansão de curingas como command.* ou admin.*, nem herança automática: admin não concede sozinho todas as permissões admin.*.
A permissão root faz qualquer consulta de permissão retornar verdadeiro. Conceda-a somente a quem deve ter acesso administrativo completo; colocá-la em m_Everyone concede esse acesso a todos.
Permissões de comandos
Comandos enviados pelo Chat verificam command.<nome>, sem a barra / e sem os argumentos. Por exemplo:
| Permissão | Ação |
|---|---|
command.kick | Usar /kick. |
command.reload | Usar /reload, incluindo a recarga de permissões e de outros módulos. |
command.teleport | Usar /teleport. |
Consulte Commands para as permissões e sintaxes dos comandos disponíveis. Conceder a permissão não ativa um módulo desabilitado nem substitui os requisitos do comando.
Permissões administrativas
| Permissão | Ação |
|---|---|
admin | Permite ativar o modo administrativo. As ações abaixo podem exigir esse modo ativo e sua permissão específica. |
admin.clipboard | Permite copiar, recortar e colar objetos pelas ferramentas administrativas. |
admin.delete | Permite excluir objetos pelas ferramentas administrativas. |
admin.freecam | Permite alternar a câmera livre administrativa. |
admin.map.players | Permite visualizar jogadores no mapa administrativo. |
admin.map.teleport | Permite teletransportar pelo mapa com a ação administrativa correspondente. |
admin.moveobject | Permite mover objetos pelas ferramentas administrativas. |
admin.nvg | Permite alternar a visão noturna administrativa. |
admin.teleport | Permite teletransportar para o ponto indicado pelo cursor. |
Acesso aos módulos
Os módulos abaixo consultam <módulo>.allow e <módulo>.deny nos pontos indicados. Essas permissões não formam uma regra universal para todos os módulos ou operações.
| Permissões | Verificação |
|---|---|
chat.allow, chat.deny | Abertura do menu do Chat. |
map.allow, map.deny | Abertura do mapa pelo módulo Map. |
garage.allow, garage.deny | Abertura do menu da garagem após receber os dados. |
spawnselection.allow, spawnselection.deny | Acesso à seleção de spawn verificado no servidor. |
A consulta segue esta prioridade:
- Se o jogador possui
.allow, o acesso é permitido. - Caso contrário, se possui
.deny, o acesso é negado. - Sem nenhuma das duas, o acesso é permitido.
Se ambas estiverem presentes, .allow vence. Como root também satisfaz a consulta de .allow, ele permite o acesso mesmo quando há .deny.
Para restringir o mapa a um grupo, por exemplo, adicione map.deny a m_Everyone e map.allow ao grupo autorizado. O módulo Banking não consulta banking.allow ou banking.deny.
Exemplo de configuração
Neste exemplo, o proprietário recebe root, o moderador pode usar /kick e /reload, e o mapa fica liberado apenas para esses dois grupos. Os Steam IDs são ilustrativos; substitua-os pelos IDs reais.
{
"m_Groups": [
{
"m_Name": "superadmin",
"m_ForceName": 0,
"m_Users": [
{
"m_Name": "Server Owner",
"m_Steam": "76561198000000001"
}
],
"m_Permissions": [
"root"
]
},
{
"m_Name": "moderator",
"m_ForceName": 0,
"m_Users": [
{
"m_Name": "Moderator",
"m_Steam": "76561198000000002"
}
],
"m_Permissions": [
"command.kick",
"command.reload",
"map.allow"
]
}
],
"m_Everyone": [
"map.deny"
]
}Comandos
/reload permissions
Lê novamente Permissions.json e envia as permissões atualizadas aos jogadores conectados. A configuração fica em $profile:AC/Permissions.json, onde $profile: é o diretório de perfil do servidor.
- Sintaxe:
/reload permissions - Argumentos:
permissionsidentifica o sistema de permissões a recarregar. - Permissão:
command.reloadouroot. - Exemplo:
/reload permissions
A primeira configuração de um administrador pode ser aplicada reiniciando o servidor. Para recarregar pelo chat, quem executa o comando já precisa ter uma das permissões acima antes da recarga.
