Wrapper para a API Game Jolt em execução por meio de solicitações HTTP. Ele contém todos os endpoints da API Game Jolt e visa simplificar seu uso sempre que possível. Compatível com Godot 4.x. Para a versão Godot 3.x, consulte este branch.
Para exemplos de uso, consulte a documentação abaixo. Há também uma cena de exemplo em addons/gamejolt/example
contendo todos os endpoints e parâmetros em uma interface gráfica.
Nota: Qualquer parâmetro seguido por um ?
é opcional. Exemplo: sessions_ping(status?) -> GameJolt
.
Project Settings > Plugins
Project Settings > General > Game Jolt > Config > Global
.Project Settings > General > Game Jolt > Config > Debug
. Após esta configuração você pode realizar as solicitações de API usando os métodos abaixo no singleton GameJolt
em seu código.
Cada método da API Game Jolt emite um sinal após a conclusão de uma solicitação, seja ela bem-sucedida ou não. Você pode conectar sinais específicos para capturar respostas em retornos de chamada de método:
func _ready () -> void :
GameJolt . time_completed . connect ( _on_GameJolt_time_completed )
GameJolt . time ()
func _on_GameJolt_time_completed ( result : Dictionary ) -> void :
# Do something with the request result...
Ou você pode await
o resultado do sinal em uma variável:
func _onButtonTime_pressed () -> void :
GameJolt . time ()
var result : Dictionary = await GameJolt . time_completed
# Do something with the request result...
Nota: Todos os sinais retornam uma response: Dictionary
.
Em geral
user_name_changed
user_token_changed
game_id_changed
private_key_changed
Usuários
users_fetch_completed(response: Dictionary)
users_auth_completed(response: Dictionary)
Sessões
sessions_open_completed(response: Dictionary)
sessions_ping_completed(response: Dictionary)
sessions_check_completed(response: Dictionary)
sessions_close_completed(response: Dictionary)
Pontuações
scores_fetch_completed(response: Dictionary)
scores_tables_completed(response: Dictionary)
scores_add_completed(response: Dictionary)
scores_get_rank_completed(response: Dictionary)
Troféus
trophies_fetch_completed(response: Dictionary)
trophies_add_achieved_completed(response: Dictionary)
trophies_remove_achieved_completed(response: Dictionary)
Armazenamento de dados
data_store_set_completed(response: Dictionary)
data_store_update_completed(response: Dictionary)
data_store_remove_completed(response: Dictionary)
data_store_fetch_completed(response: Dictionary)
data_store_get_keys_completed(response: Dictionary)
Amigos
friends_completed(response: Dictionary)
Tempo
time_completed(response: Dictionary)
Chamadas em lote
batch_completed(response: Dictionary)
Métodos gerais para configurar o singleton GameJolt
localmente.
Configure o nome de usuário para autenticação e outras tarefas de escopo do usuário. Emite user_name_changed
.
value: String
-> O nome do usuário. Obtenha o nome de usuário atual.
Defina o token do usuário para autenticação e outras tarefas de escopo do usuário. Emite user_token_changed
.
value: String
-> O token do jogo do usuário. Obtenha o token do jogo do usuário atual.
Defina o ID do jogo necessário para todas as tarefas. Emite game_id_changed
.
value: String
-> O ID do jogo do seu projeto Game Jolt. Obtenha o ID do jogo atual.
Defina a chave privada necessária para todas as tarefas. Emite private_key_changed
.
value: String
-> A chave privada do jogo do seu projeto Game Jolt. Obtenha a chave privada do jogo atual.
Retorna os dados de um usuário. Emite users_fetch_completed
.
user_name: String
(opcional) -> O nome de usuário do usuário cujos dados você deseja buscar.user_ids: Array[String|int]
(opcional) -> Os IDs dos usuários cujos dados você deseja buscar. Nota: Os parâmetros user_name
e user_ids
são mutuamente exclusivos, você deve usar apenas um deles ou nenhum. Se nenhum for fornecido, será buscado o nome de usuário atual definido no singleton GameJolt
.
Autentica as informações do usuário. Isso deve ser feito antes de fazer qualquer chamada para o usuário, para garantir que as credenciais do usuário (nome de usuário e token) sejam válidas. O nome de usuário e o token devem ser definidos no singleton GameJolt
para que ele seja bem-sucedido. Emite users_auth_completed
.
Abre uma sessão de jogo para um usuário específico e permite informar ao Game Jolt que um usuário está jogando seu jogo. Você deve executar ping na sessão para mantê-la ativa e fechá-la quando terminar. Emite sessions_open_completed
.
Notas:
GameJolt
. Faz ping em uma sessão aberta para informar ao sistema que ela ainda está ativa. Se o ping não for feito na sessão em 120 segundos, o sistema fechará a sessão e você terá que abrir outra. É recomendado que você faça ping a cada 30 segundos ou mais para evitar que o sistema esvazie sua sessão. Você também pode informar ao sistema se o jogador está no estado "active"
ou "idle"
no jogo. Emite sessions_ping_completed
.
status: String
(opcional) -> Define o status da sessão como "active"
ou "idle"
. Nota: Requer que o nome de usuário e o token sejam definidos no singleton GameJolt
.
Verifica se há uma sessão aberta para o usuário. Pode ser usado para ver se uma conta de usuário específica está ativa no jogo. Emite sessions_check_completed
.
Notas:
false
para o campo "success"
quando não existe nenhuma sessão aberta. Esse comportamento é diferente de outros endpoints que usam esse campo para indicar um estado de erro.GameJolt
. Fecha a sessão ativa. Emite sessions_close_completed
.
Nota: Requer que o nome de usuário e o token sejam definidos no singleton GameJolt
.
Retorna uma lista de pontuações de um usuário ou globalmente de um jogo. Emite scores_fetch_completed
.
limit: String|int
(opcional) -> O número de pontuações que você deseja retornar.table_id: String|int
(opcional) -> O ID da tabela de pontuação.guest: String
(opcional) -> Nome do convidado.better_than: String|int
(opcional) -> Busca apenas pontuações melhores que este valor de classificação de pontuação.worse_than: String|int
(opcional) -> Busca apenas pontuações piores que este valor de classificação de pontuação.this_user: bool
(opcional) -> Se true
, busca apenas as pontuações do usuário atual. Caso contrário, busque pontuações de todos os usuários.Notas:
GameJolt
se this_user
for true
.limit
é 10
pontuações. A quantidade máxima de pontuações que você pode recuperar é 100
.table_id
for deixado em branco, as pontuações da tabela de pontuação primária serão retornadas.this_user
como true
se desejar recuperar pontuações apenas para o usuário definido no construtor da classe. Deixe this_user
como true
e guest
como ""
para recuperar todas as pontuações.guest
permite que você busque pontuações por um nome de convidado específico. Passe apenas this_user
como true
ou guest
(ou nenhum), nunca ambos. Retorna uma lista de tabelas de pontuação de um jogo. Emite scores_tables_completed
.
Adiciona uma pontuação para um usuário ou convidado. Emite scores_add_completed
.
score: String
-> Este é um valor de string associado à pontuação. Exemplo: "500 Points"
.sort: String|int
-> Este é um valor de classificação numérica associado à pontuação. Toda a classificação será baseada neste número. Exemplo: 500
.table_id: String|int
(opcional) -> O ID da tabela de pontuação para a qual enviar.guest: String
(opcional) -> O nome do convidado. Substitui o nome de usuário do singleton GameJolt
.extra_data: String|int|Dictionary|Array
(opcional) -> Se houver algum dado extra que você gostaria de armazenar como uma string, você pode usar esta variável.Notas:
GameJolt
e deixar guest
vazio. Se estiver armazenando para um convidado, você deverá passar o parâmetro guest
.extra_data
só pode ser recuperado por meio da API e do painel do jogo. Nunca é exibido publicamente aos usuários do site. Se houver outros dados associados à pontuação, como tempo jogado, moedas coletadas, etc., você definitivamente deve incluí-los. Será útil nos casos em que você acredita que um jogador alcançou ilegitimamente uma pontuação alta.table_id
for deixado em branco, a pontuação será enviada para a tabela principal de pontuações. Retorna a classificação de uma pontuação específica em uma tabela de pontuação. Emite scores_get_rank_completed
.
sort: String|int
-> Este é um valor de classificação numérica representado por uma classificação na tabela de pontuação.table_id: String|int
(opcional) -> O ID da tabela de pontuação da qual você deseja obter a classificação.Notas:
table_id
for deixado em branco, as classificações da tabela primária de pontuações mais altas serão retornadas. Retorna um troféu ou vários troféus, dependendo dos parâmetros passados. Emite trophies_fetch_completed
.
sort: bool|null
(opcional) -> Passe true
para retornar apenas os troféus conquistados para um usuário. Passe false
para retornar apenas troféus que o usuário não conquistou. Passe null
para recuperar todos os troféus.trophy_ids: Array[String|int]
(opcional) -> Se você deseja retornar um ou vários troféus, passe os IDs dos troféus aqui se quiser retornar um subconjunto de todos os troféus.Notas:
trophy_ids
irá ignorar o parâmetro achieved
se for passado.GameJolt
. Define um troféu alcançado para um usuário específico. Emite trophies_add_achieved_completed
.
trophy_id: String|int
-> O ID do troféu a ser adicionado para o usuário. Nota: Requer que o nome de usuário e o token sejam definidos no singleton GameJolt
.
Remova um troféu conquistado anteriormente para um determinado usuário. Emite trophies_remove_achieved_completed
.
trophy_id: String|int
-> O ID do troféu a ser removido do usuário. Nota: Requer que o nome de usuário e o token sejam definidos no singleton GameJolt
.
Define dados no armazenamento de dados. Emite data_store_set_completed
.
key: String
-> A chave do item de dados que você deseja definir.data: String|Array|Dictionary
-> Os dados que você deseja definir.global_data: bool
(opcional) -> Se definido como true
, ignora o nome do usuário e o token definidos no GameJolt
e processa dados globais em vez de dados do usuário.Notas:
global_data
for false
, requer que o nome de usuário e o token sejam definidos no singleton GameJolt
. Atualiza dados no armazenamento de dados. Emite data_store_update_completed
.
key: String
-> A chave do item de dados que você deseja atualizar.operation: String
-> A operação que você deseja realizar.value: String|int
-> O valor que você gostaria de aplicar ao item do armazenamento de dados.global_data: bool
(opcional) -> Se definido como true
, ignora o nome do usuário e o token definidos no GameJolt
e processa dados globais em vez de dados do usuário.Notas:
operation
: "add"
, "subtract"
, "multiply"
, "divide"
, "append"
e "prepend"
.global_data
for false
, requer que o nome de usuário e o token sejam definidos no singleton GameJolt
. Remove dados do armazenamento de dados. Emite data_store_remove_completed
.
key: String
-> A chave do item de dados que você deseja remover.global_data: bool
(opcional) -> Se definido como true
, ignora o nome do usuário e o token definidos no GameJolt
e processa dados globais em vez de dados do usuário.Notas:
global_data
for false
, requer que o nome de usuário e o token sejam definidos no singleton GameJolt
. Retorna dados do armazenamento de dados. Emite data_store_fetch_completed
.
key: String
-> A chave do item de dados que você deseja buscar.global_data: bool
(opcional) -> Se definido como true
, ignora o nome do usuário e o token definidos no GameJolt
e processa dados globais em vez de dados do usuário.Notas:
global_data
for false
, requer que o nome de usuário e o token sejam definidos no singleton GameJolt
. Retorna todas as chaves no armazenamento de dados global do jogo ou todas as chaves no armazenamento de dados de um usuário. Emite data_store_get_keys_completed
.
pattern: String
(opcional) -> O padrão a ser aplicado aos nomes de chaves no armazenamento de dados.global_data: bool
(opcional) -> Se definido como true
, ignora o nome do usuário e o token definidos no GameJolt
e processa dados globais em vez de dados do usuário.Notas:
"*"
."key"
. O valor de retorno "key"
pode aparecer mais de uma vez.global_data
for false
, requer que o nome de usuário e o token sejam definidos no singleton GameJolt
. Retorna a lista de amigos de um usuário. Emite friends_completed
.
Nota: Requer que o nome de usuário e o token sejam definidos no singleton GameJolt
.
Retorna a hora do servidor Game Jolt. Emite time_completed
.
Uma solicitação em lote é uma coleção de subsolicitações que permite aos desenvolvedores enviar várias chamadas de API com uma solicitação HTTP. Para usar chamadas em lote em seu código, coloque suas chamadas de solicitação entre batch_begin
e batch_end
. Por exemplo, use seus métodos na seguinte ordem:
func _onButtonBatch_pressed () -> void :
# Begin to gather batch requests
GameJolt . batch_begin ()
# Add the time request to the batch
GameJolt . time ()
# Add the scores_tables request to the batch
GameJolt . scores_tables ()
# Stop gathering batch requests
GameJolt . batch_end ()
# Perform the batch call with the two requests above (time and score_tables)
GameJolt . batch ()
var result : Dictionary = await GameJolt . batch_completed
Execute a solicitação em lote após coletar as solicitações com batch_begin
e batch_end
. Emite batch_completed
.
parallel: bool
(opcional) -> Por padrão, cada subsolicitação é processada nos servidores sequencialmente. Se for definido como true
, todas as subsolicitações serão processadas ao mesmo tempo, sem esperar que a subsolicitação anterior termine antes que a próxima seja iniciada.break_on_error: bool
(opcional) -> Se estiver definido como true
, uma falha de subsolicitação fará com que todo o lote pare de processar subsolicitações subsequentes e retorne um valor false
para sucesso.Notas:
parallel
e break_on_error
são mutuamente exclusivos e não podem ser usados na mesma solicitação. Começa a coletar solicitações de lote. Os métodos não retornarão respostas após esta chamada. Chame batch_end
para finalizar o processo de coleta de solicitação em lote.
Pára de coletar solicitações de lote. Os métodos retornarão respostas novamente após esta chamada. Deve ser usado após batch_begin
.