Pular para o conteúdo

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
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çãoTipoDescrição
m_Groupsarray<object>Grupos de jogadores. Um jogador pode receber permissões de vários grupos; não há herança por nome de grupo.
m_Everyonearray<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çãoTipoDescrição
m_NamestringNome administrativo do grupo. O nome "superadmin" não concede privilégios por si só.
m_ForceNameboolCom 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_Usersarray<object>Jogadores que pertencem ao grupo. Substitua o cadastro de exemplo pelo nome e Steam ID reais do administrador.
m_Permissionsarray<string>Permissões adicionadas aos membros aceitos do grupo. Use os identificadores exatos documentados abaixo.

m_Groups[].m_Users[] ​

OpçãoTipoDescrição
m_NamestringNome 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_SteamstringSteam 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ãoAção
command.kickUsar /kick.
command.reloadUsar /reload, incluindo a recarga de permissões e de outros módulos.
command.teleportUsar /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ãoAção
adminPermite ativar o modo administrativo. As ações abaixo podem exigir esse modo ativo e sua permissão específica.
admin.clipboardPermite copiar, recortar e colar objetos pelas ferramentas administrativas.
admin.deletePermite excluir objetos pelas ferramentas administrativas.
admin.freecamPermite alternar a câmera livre administrativa.
admin.map.playersPermite visualizar jogadores no mapa administrativo.
admin.map.teleportPermite teletransportar pelo mapa com a ação administrativa correspondente.
admin.moveobjectPermite mover objetos pelas ferramentas administrativas.
admin.nvgPermite alternar a visão noturna administrativa.
admin.teleportPermite 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õesVerificação
chat.allow, chat.denyAbertura do menu do Chat.
map.allow, map.denyAbertura do mapa pelo módulo Map.
garage.allow, garage.denyAbertura do menu da garagem após receber os dados.
spawnselection.allow, spawnselection.denyAcesso à seleção de spawn verificado no servidor.

A consulta segue esta prioridade:

  1. Se o jogador possui .allow, o acesso é permitido.
  2. Caso contrário, se possui .deny, o acesso é negado.
  3. 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.

json
{
  "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: permissions identifica o sistema de permissões a recarregar.
  • Permissão: command.reload ou root.
  • 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.

Distribuído sob a licença MIT.