Envoltorio para la API Game Jolt que se ejecuta a través de solicitudes HTTP. Contiene todos los puntos finales de la API de Game Jolt y tiene como objetivo simplificar su uso donde sea posible. Compatible con Godot 4.x. Para la versión Godot 3.x, consulte esta rama.
Para ver ejemplos de uso, consulte la documentación a continuación. También hay una escena de ejemplo en addons/gamejolt/example
que contiene todos los puntos finales y parámetros en una interfaz gráfica.
Nota: ¿Algún parámetro seguido de ?
es opcional. Ejemplo: sessions_ping(status?) -> GameJolt
.
Project Settings > Plugins
Project Settings > General > Game Jolt > Config > Global
.Project Settings > General > Game Jolt > Config > Debug
. Después de esta configuración, puede realizar las solicitudes de API utilizando los métodos siguientes en el singleton GameJolt
de su código.
Cada método API de Game Jolt emite una señal después de que se completa una solicitud, ya sea exitosa o no. Puede conectar señales específicas para capturar respuestas en devoluciones de llamadas de métodos:
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...
O puedes await
el resultado de la señal en una variable:
func _onButtonTime_pressed () -> void :
GameJolt . time ()
var result : Dictionary = await GameJolt . time_completed
# Do something with the request result...
Nota: Todas las señales devuelven una response: Dictionary
.
General
user_name_changed
user_token_changed
game_id_changed
private_key_changed
Usuarios
users_fetch_completed(response: Dictionary)
users_auth_completed(response: Dictionary)
Sesiones
sessions_open_completed(response: Dictionary)
sessions_ping_completed(response: Dictionary)
sessions_check_completed(response: Dictionary)
sessions_close_completed(response: Dictionary)
Montones
scores_fetch_completed(response: Dictionary)
scores_tables_completed(response: Dictionary)
scores_add_completed(response: Dictionary)
scores_get_rank_completed(response: Dictionary)
Trofeos
trophies_fetch_completed(response: Dictionary)
trophies_add_achieved_completed(response: Dictionary)
trophies_remove_achieved_completed(response: Dictionary)
Almacenamiento de datos
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)
Tiempo
time_completed(response: Dictionary)
Llamadas por lotes
batch_completed(response: Dictionary)
Métodos generales para configurar GameJolt
singleton localmente.
Establezca el nombre de usuario para la autenticación y otras tareas de ámbito de usuario. Emite user_name_changed
.
value: String
-> El nombre de usuario. Obtener el nombre de usuario actual.
Establezca el token de usuario para la autenticación y otras tareas de ámbito de usuario. Emite user_token_changed
.
value: String
-> El token del juego del usuario. Obtenga el token del juego del usuario actual.
Configure la ID del juego necesaria para todas las tareas. Emite game_id_changed
.
value: String
-> El ID del juego de su proyecto Game Jolt. Obtenga la ID del juego actual.
Establezca la clave privada necesaria para todas las tareas. Emite private_key_changed
.
value: String
-> La clave privada del juego de su proyecto Game Jolt. Obtenga la clave privada del juego actual.
Devuelve los datos de un usuario. Emite users_fetch_completed
.
user_name: String
(opcional) -> El nombre de usuario del usuario cuyos datos desea recuperar.user_ids: Array[String|int]
(opcional) -> Los ID de los usuarios cuyos datos desea recuperar. Nota: Los parámetros user_name
y user_ids
son mutuamente excluyentes; debe utilizar solo uno de ellos o ninguno. Si no se proporcionó ninguno, se obtendrá del nombre de usuario actual establecido en GameJolt
singleton.
Autentica la información del usuario. Esto debe hacerse antes de realizar cualquier llamada para el usuario, para asegurarse de que las credenciales del usuario (nombre de usuario y token) sean válidas. El nombre de usuario y el token deben configurarse en GameJolt
singleton para que tenga éxito. Emite users_auth_completed
.
Abre una sesión de juego para un usuario en particular y te permite decirle a Game Jolt que un usuario está jugando tu juego. Debe hacer ping a la sesión para mantenerla activa y debe cerrarla cuando haya terminado. Emite sessions_open_completed
.
Notas:
GameJolt
singleton. Hace ping a una sesión abierta para indicarle al sistema que todavía está activa. Si no se ha hecho ping a la sesión en 120 segundos, el sistema cerrará la sesión y tendrás que abrir otra. Se recomienda que haga ping aproximadamente cada 30 segundos para evitar que el sistema borre su sesión. También puedes informarle al sistema si el jugador está en un estado "active"
o "idle"
dentro de tu juego. Emite sessions_ping_completed
.
status: String
(opcional) -> Establece el estado de la sesión en "active"
o "idle"
. Nota: Requiere que el nombre de usuario y el token estén configurados en GameJolt
singleton.
Comprueba si hay una sesión abierta para el usuario. Se puede utilizar para ver si una cuenta de usuario en particular está activa en el juego. Emite sessions_check_completed
.
Notas:
false
para el campo "success"
cuando no existe ninguna sesión abierta. Ese comportamiento es diferente de otros puntos finales que utilizan este campo para indicar un estado de error.GameJolt
singleton. Cierra la sesión activa. Emite sessions_close_completed
.
Nota: Requiere que el nombre de usuario y el token estén configurados en GameJolt
singleton.
Devuelve una lista de puntuaciones para un usuario o globalmente para un juego. Emite scores_fetch_completed
.
limit: String|int
(opcional) -> El número de puntuaciones que desea devolver.table_id: String|int
(opcional) -> El ID de la tabla de puntuación.guest: String
(opcional) -> Nombre de un invitado.better_than: String|int
(opcional) -> Obtener solo puntuaciones mejores que este valor de clasificación de puntuación.worse_than: String|int
(opcional) -> Obtener solo puntuaciones peores que este valor de clasificación de puntuación.this_user: bool
(opcional) -> Si es true
, recupera solo las puntuaciones del usuario actual. De lo contrario, obtenga puntuaciones de todos los usuarios.Notas:
GameJolt
singleton si this_user
es true
.limit
es 10
puntuaciones. La cantidad máxima de puntuaciones que puedes recuperar es 100
.table_id
se deja en blanco, se devolverán las puntuaciones de la tabla de puntuación principal.this_user
como true
si desea recuperar puntuaciones solo para el usuario configurado en el constructor de clases. Deje this_user
como true
e guest
como ""
para recuperar todas las puntuaciones.guest
le permite obtener puntuaciones por nombre de invitado específico. Pase únicamente this_user
como true
o el guest
(o ninguno), nunca ambos. Devuelve una lista de tablas de puntuación más alta de un juego. Emite scores_tables_completed
.
Agrega una puntuación para un usuario o invitado. Emite scores_add_completed
.
score: String
-> Este es un valor de cadena asociado con la puntuación. Ejemplo: "500 Points"
.sort: String|int
-> Este es un valor de clasificación numérico asociado con la puntuación. Toda la clasificación se basará en este número. Ejemplo: 500
.table_id: String|int
(opcional) -> El ID de la tabla de puntuación a la que enviar.guest: String
(opcional) -> El nombre del invitado. Anula el nombre de usuario del singleton de GameJolt
.extra_data: String|int|Dictionary|Array
(opcional) -> Si hay datos adicionales que desea almacenar como una cadena, puede usar esta variable.Notas:
GameJolt
singleton y dejar guest
vacío. Si está almacenando para un invitado, debe pasar el parámetro guest
.extra_data
solo se puede recuperar a través de la API y el panel de control de tu juego. Nunca se muestra públicamente a los usuarios del sitio. Si hay otros datos asociados con la puntuación, como tiempo jugado, monedas recogidas, etc., definitivamente debes incluirlos. Será útil en los casos en los que crea que un jugador ha alcanzado una puntuación alta de forma ilegítima.table_id
se deja en blanco, la puntuación se enviará a la tabla principal de puntuación más alta. Devuelve el rango de una puntuación particular en una tabla de puntuación. Emite scores_get_rank_completed
.
sort: String|int
-> Este es un valor de clasificación numérico que está representado por una clasificación en la tabla de puntuación.table_id: String|int
(opcional) -> El ID de la tabla de puntuación de la que desea obtener la clasificación.Notas:
table_id
se deja en blanco, se devolverán las clasificaciones de la tabla principal de puntuación más alta. Devuelve uno o varios trofeos, según los parámetros pasados. Emite trophies_fetch_completed
.
sort: bool|null
(opcional) -> Pase true
para devolver solo los trofeos conseguidos por un usuario. Ingrese false
para devolver solo los trofeos que el usuario no haya logrado. Pase null
para recuperar todos los trofeos.trophy_ids: Array[String|int]
(opcional) -> Si desea devolver uno o varios trofeos, pase los ID de los trofeos aquí si desea devolver un subconjunto de todos los trofeos.Notas:
trophy_ids
ignorará el parámetro achieved
si se pasa.GameJolt
singleton. Establece un trofeo como logrado para un usuario en particular. Emite trophies_add_achieved_completed
.
trophy_id: String|int
-> El ID del trofeo que se agregará para el usuario. Nota: Requiere que el nombre de usuario y el token estén configurados en GameJolt
singleton.
Elimina un trofeo obtenido previamente para un usuario en particular. Emite trophies_remove_achieved_completed
.
trophy_id: String|int
-> El ID del trofeo que se quitará al usuario. Nota: Requiere que el nombre de usuario y el token estén configurados en GameJolt
singleton.
Establece datos en el almacén de datos. Emite data_store_set_completed
.
key: String
-> La clave del elemento de datos que desea configurar.data: String|Array|Dictionary
-> Los datos que desea configurar.global_data: bool
(opcional) -> Si se establece en true
, ignora el nombre de usuario y el token configurado en GameJolt
y procesa datos globales en lugar de datos del usuario.Notas:
global_data
es false
, requiere que el nombre de usuario y el token se establezcan en GameJolt
singleton. Actualiza los datos en el almacén de datos. Emite data_store_update_completed
.
key: String
-> La clave del elemento de datos que desea actualizar.operation: String
-> La operación que desea realizar.value: String|int
-> El valor que desea aplicar al elemento del almacén de datos.global_data: bool
(opcional) -> Si se establece en true
, ignora el nombre de usuario y el token configurado en GameJolt
y procesa datos globales en lugar de datos del usuario.Notas:
operation
: "add"
, "subtract"
, "multiply"
, "divide"
, "append"
y "prepend"
.global_data
es false
, requiere que el nombre de usuario y el token se establezcan en GameJolt
singleton. Elimina datos del almacén de datos. Emite data_store_remove_completed
.
key: String
-> La clave del elemento de datos que desea eliminar.global_data: bool
(opcional) -> Si se establece en true
, ignora el nombre de usuario y el token configurado en GameJolt
y procesa datos globales en lugar de datos del usuario.Notas:
global_data
es false
, requiere que el nombre de usuario y el token se establezcan en GameJolt
singleton. Devuelve datos del almacén de datos. Emite data_store_fetch_completed
.
key: String
-> La clave del elemento de datos que desea recuperar.global_data: bool
(opcional) -> Si se establece en true
, ignora el nombre de usuario y el token configurado en GameJolt
y procesa datos globales en lugar de datos del usuario.Notas:
global_data
es false
, requiere que el nombre de usuario y el token se establezcan en GameJolt
singleton. Devuelve todas las claves del almacén de datos global del juego o todas las claves del almacén de datos de un usuario. Emite data_store_get_keys_completed
.
pattern: String
(opcional) -> El patrón que se aplicará a los nombres de clave en el almacén de datos.global_data: bool
(opcional) -> Si se establece en true
, ignora el nombre de usuario y el token configurado en GameJolt
y procesa datos globales en lugar de datos del usuario.Notas:
"*"
."key"
. El valor de retorno "key"
puede aparecer más de una vez.global_data
es false
, requiere que el nombre de usuario y el token se establezcan en GameJolt
singleton. Devuelve la lista de amigos de un usuario. Emite friends_completed
.
Nota: Requiere que el nombre de usuario y el token estén configurados en GameJolt
singleton.
Devuelve la hora del servidor Game Jolt. Emite time_completed
.
Una solicitud por lotes es una colección de subsolicitudes que permite a los desarrolladores enviar múltiples llamadas API con una solicitud HTTP. Para utilizar llamadas por lotes en su código, coloque sus llamadas de solicitud entre un batch_begin
y batch_end
. Por ejemplo, utilice sus métodos en el siguiente orden:
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
Realice la solicitud por lotes después de recopilar solicitudes con batch_begin
y batch_end
. Emite batch_completed
.
parallel: bool
(opcional) -> De forma predeterminada, cada subsolicitud se procesa en los servidores de forma secuencial. Si se establece en true
, todas las subsolicitudes se procesan al mismo tiempo, sin esperar a que finalice la subsolicitud anterior antes de que se inicie la siguiente.break_on_error: bool
(opcional) -> Si se establece en true
, el error de una subsolicitud hará que todo el lote deje de procesar las subsolicitudes posteriores y devuelva un valor false
para el éxito.Notas:
parallel
y break_on_error
son mutuamente excluyentes y no se pueden utilizar en la misma solicitud. Comienza a recopilar solicitudes por lote. Los métodos no devolverán respuestas después de esta llamada. Llame batch_end
para finalizar el proceso de recopilación de solicitudes por lotes.
Deja de recopilar solicitudes por lote. Los métodos devolverán respuestas nuevamente después de esta llamada. Debe usarse después de batch_begin
.