Desenvolvedores

Como um cliente do jogo conversa com o Voidwatch, e como criar seu próprio módulo ou dar suporte a um novo servidor.

As partes

ParteRoda ondeO que faz
módulodentro do cliente do jogograva o estado do personagem em arquivos, executa comandos
script de envioao lado do clientemanda os arquivos para a API, grava as respostas
feed APInos nossos servidoresguarda o estado, responde com a frequência das capturas e os comandos pendentes

O próprio cliente não faz requisições à internet. Muitos clientes vazam memória a cada requisição, então o script cuida da rede.

Um ciclo

  1. O módulo grava outbox/status.json: a cada 2 segundos enquanto alguém assiste o personagem, a cada 30 segundos no resto do tempo.
  2. O script envia para POST /api/v1/status e grava a resposta em inbox/reply.json.
  3. A resposta diz com que frequência mandar uma captura de tela. A cada 1–2 segundos enquanto alguém assiste o personagem, uma vez por minuto no resto do tempo.
  4. Se houver comandos esperando, o script os busca para inbox/commands.json. O módulo executa e grava outbox/results.json.
  5. Entre dois status o script mantém uma requisição aberta em GET /api/v1/wait. Ela volta assim que alguém abre o personagem, um alerta dispara ou chega um comando, então o cliente acelera em um segundo.
  6. Uma vez por minuto o script olha o minimap<versão>.otmm do cliente e envia quando mudou. O mapa do jogador no site se atualiza sozinho. O jogador pode desligar isso nas configurações do módulo.

Pareamento

Um cliente novo não tem token. O módulo grava outbox/pair-request.json, e o script chama POST /api/v1/pair. A resposta traz um código e um link para o jogador, e o token que o script guarda.

Faça o seu

Tudo é aberto: a feed API, os dados de status e o módulo de referência, com licença MIT. Mantenha a estrutura de arquivos e um módulo funciona com nossos scripts, ou escreva seu próprio envio em qualquer linguagem.

Um servidor também pode incluir o módulo no próprio cliente. Fale com a gente e listamos o servidor como parceiro.