Wrapper pour l'API Game Jolt s'exécutant via des requêtes HTTP. Il contient tous les points de terminaison de l'API Game Jolt et vise à simplifier son utilisation là où cela est possible. Compatible avec Godot 4.x. Pour la version Godot 3.x, voir cette branche.
Pour des exemples d'utilisation, consultez la documentation ci-dessous. Il existe également un exemple de scène dans addons/gamejolt/example
contenant tous les points de terminaison et paramètres sur une interface graphique.
Remarque : tout paramètre suivi d'un ?
est facultatif. Exemple : sessions_ping(status?) -> GameJolt
.
Project Settings > Plugins
Project Settings > General > Game Jolt > Config > Global
.Project Settings > General > Game Jolt > Config > Debug
. Après cette configuration, vous pouvez effectuer les requêtes API en utilisant les méthodes ci-dessous sur le singleton GameJolt
sur votre code.
Chaque méthode API Game Jolt émet un signal une fois qu'une requête est terminée, qu'elle réussisse ou non. Vous pouvez connecter des signaux spécifiques pour capturer les réponses aux rappels de méthodes :
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 vous pouvez await
le résultat du signal dans une variable :
func _onButtonTime_pressed () -> void :
GameJolt . time ()
var result : Dictionary = await GameJolt . time_completed
# Do something with the request result...
Remarque : Tous les signaux renvoient une response: Dictionary
.
Général
user_name_changed
user_token_changed
game_id_changed
private_key_changed
Utilisateurs
users_fetch_completed(response: Dictionary)
users_auth_completed(response: Dictionary)
Séances
sessions_open_completed(response: Dictionary)
sessions_ping_completed(response: Dictionary)
sessions_check_completed(response: Dictionary)
sessions_close_completed(response: Dictionary)
Partitions
scores_fetch_completed(response: Dictionary)
scores_tables_completed(response: Dictionary)
scores_add_completed(response: Dictionary)
scores_get_rank_completed(response: Dictionary)
Trophées
trophies_fetch_completed(response: Dictionary)
trophies_add_achieved_completed(response: Dictionary)
trophies_remove_achieved_completed(response: Dictionary)
Stockage des données
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)
Amis
friends_completed(response: Dictionary)
Temps
time_completed(response: Dictionary)
Appels par lots
batch_completed(response: Dictionary)
Méthodes générales pour configurer le singleton GameJolt
localement.
Définissez le nom d'utilisateur pour l'authentification et d'autres tâches de portée utilisateur. Émet user_name_changed
.
value: String
-> Le nom d'utilisateur. Obtenez le nom d'utilisateur actuel.
Définissez le jeton utilisateur pour l'authentification et d'autres tâches de portée utilisateur. Émet user_token_changed
.
value: String
-> Le jeton de jeu de l'utilisateur. Obtenez le jeton de jeu de l'utilisateur actuel.
Définissez l'ID de jeu nécessaire pour toutes les tâches. Émet game_id_changed
.
value: String
-> L'ID du jeu de votre projet Game Jolt. Obtenez l'ID de jeu actuel.
Définissez la clé privée nécessaire pour toutes les tâches. Émet private_key_changed
.
value: String
-> La clé privée du jeu de votre projet Game Jolt. Obtenez la clé privée du jeu actuel.
Renvoie les données d'un utilisateur. Émet users_fetch_completed
.
user_name: String
(facultatif) -> Le nom d'utilisateur de l'utilisateur dont vous souhaitez récupérer les données.user_ids: Array[String|int]
(facultatif) -> Les identifiants des utilisateurs dont vous souhaitez récupérer les données. Remarque : Les paramètres user_name
et user_ids
s'excluent mutuellement, vous ne devez en utiliser qu'un seul, voire aucun. Si aucun n’est fourni, récupérera le nom d’utilisateur actuel défini dans le singleton GameJolt
.
Authentifie les informations de l'utilisateur. Cela doit être fait avant d'effectuer des appels pour l'utilisateur, afin de vous assurer que les informations d'identification de l'utilisateur (nom d'utilisateur et jeton) sont valides. Le nom d'utilisateur et le jeton doivent être définis sur le singleton GameJolt
pour que cela réussisse. Émet users_auth_completed
.
Ouvre une session de jeu pour un utilisateur particulier et vous permet d'indiquer à Game Jolt qu'un utilisateur joue à votre jeu. Vous devez envoyer une requête ping à la session pour la garder active et vous devez la fermer lorsque vous en avez terminé. Émet sessions_open_completed
.
Remarques :
GameJolt
. Envoie un ping à une session ouverte pour indiquer au système qu'elle est toujours active. Si la session n'a pas été pingée dans les 120 secondes, le système fermera la session et vous devrez en ouvrir une autre. Il est recommandé d'envoyer une requête ping toutes les 30 secondes environ pour empêcher le système d'effacer votre session. Vous pouvez également indiquer au système si le joueur est dans un état "active"
ou "idle"
dans votre partie. Émet sessions_ping_completed
.
status: String
(facultatif) -> Définit le statut de la session sur "active"
ou "idle"
. Remarque : nécessite que le nom d'utilisateur et le jeton soient définis sur le singleton GameJolt
.
Vérifie s'il existe une session ouverte pour l'utilisateur. Peut être utilisé pour voir si un compte utilisateur particulier est actif dans le jeu. Émet sessions_check_completed
.
Remarques :
false
pour le champ "success"
lorsqu'aucune session ouverte n'existe. Ce comportement est différent des autres points de terminaison qui utilisent ce champ pour indiquer un état d'erreur.GameJolt
. Ferme la session active. Émet sessions_close_completed
.
Remarque : nécessite que le nom d'utilisateur et le jeton soient définis sur le singleton GameJolt
.
Renvoie une liste de scores soit pour un utilisateur, soit globalement pour un jeu. Émet scores_fetch_completed
.
limit: String|int
(facultatif) -> Le nombre de scores que vous souhaitez renvoyer.table_id: String|int
(facultatif) -> L'ID de la table de score.guest: String
(facultatif) -> Nom d'un invité.better_than: String|int
(facultatif) -> Récupérer uniquement des scores meilleurs que cette valeur de tri de score.worse_than: String|int
(facultatif) -> Récupérer uniquement les scores pires que cette valeur de tri de score.this_user: bool
(facultatif) -> Si true
, récupère uniquement les scores de l'utilisateur actuel. Sinon, récupérez les scores de tous les utilisateurs.Remarques :
GameJolt
si this_user
est true
.limit
est 10
scores. Le nombre maximum de scores que vous pouvez récupérer est 100
.table_id
est laissé vide, les scores de la table de scores principale seront renvoyés.this_user
comme true
que si vous souhaitez récupérer les scores uniquement pour l'utilisateur défini dans le constructeur de classe. Laissez this_user
comme true
et guest
comme ""
pour récupérer tous les scores.guest
vous permet de récupérer les scores par un nom d'invité spécifique. Ne transmettez que this_user
comme true
ou l' guest
(ou aucun), jamais les deux. Renvoie une liste des tableaux des meilleurs scores pour un jeu. Émet scores_tables_completed
.
Ajoute un score pour un utilisateur ou un invité. Émet scores_add_completed
.
score: String
-> Il s'agit d'une valeur de chaîne associée à la partition. Exemple : "500 Points"
.sort: String|int
-> Il s'agit d'une valeur de tri numérique associée à la partition. Tout tri sera basé sur ce numéro. Exemple : 500
.table_id: String|int
(facultatif) -> L'ID de la table de scores à laquelle soumettre.guest: String
(facultatif) -> Le nom de l'invité. Remplace le nom d'utilisateur du singleton GameJolt
.extra_data: String|int|Dictionary|Array
(facultatif) -> Si vous souhaitez stocker des données supplémentaires sous forme de chaîne, vous pouvez utiliser cette variable.Remarques :
GameJolt
et laisser guest
vide. Si vous stockez pour un invité, vous devez transmettre le paramètre guest
.extra_data
n'est récupérable que via l'API et le tableau de bord de votre jeu. Il n'est jamais affiché publiquement aux utilisateurs du site. S'il existe d'autres données associées au score, telles que le temps joué, les pièces collectées, etc., vous devez absolument les inclure. Cela sera utile dans les cas où vous pensez qu’un joueur a atteint illégalement un score élevé.table_id
est laissé vide, le score sera soumis au tableau principal des meilleurs scores. Renvoie le classement d'un score particulier sur une table de scores. Émet scores_get_rank_completed
.
sort: String|int
-> Il s'agit d'une valeur de tri numérique représentée par un classement sur la table de score.table_id: String|int
(facultatif) -> L'ID de la table de score à partir de laquelle vous souhaitez obtenir le classement.Remarques :
table_id
est laissé vide, les classements du tableau principal des meilleurs scores seront renvoyés. Renvoie un ou plusieurs trophées, en fonction des paramètres transmis. Émet trophies_fetch_completed
.
sort: bool|null
(facultatif) -> Passez true
pour renvoyer uniquement les trophées obtenus pour un utilisateur. Passez false
pour renvoyer uniquement les trophées que l'utilisateur n'a pas obtenus. Passez null
pour récupérer tous les trophées.trophy_ids: Array[String|int]
(facultatif) -> Si vous souhaitez renvoyer un ou plusieurs trophées, transmettez les ID de trophée ici si vous souhaitez renvoyer un sous-ensemble de tous les trophées.Remarques :
trophy_ids
ignorera le paramètre achieved
s'il est transmis.GameJolt
. Définit un trophée comme obtenu pour un utilisateur particulier. Émet trophies_add_achieved_completed
.
trophy_id: String|int
-> L'ID du trophée à ajouter pour l'utilisateur. Remarque : nécessite que le nom d'utilisateur et le jeton soient définis sur le singleton GameJolt
.
Supprimez un trophée précédemment obtenu pour un utilisateur particulier. Émet trophies_remove_achieved_completed
.
trophy_id: String|int
-> L'ID du trophée à retirer à l'utilisateur. Remarque : nécessite que le nom d'utilisateur et le jeton soient définis sur le singleton GameJolt
.
Définit les données dans le magasin de données. Émet data_store_set_completed
.
key: String
-> La clé de l'élément de données que vous souhaitez définir.data: String|Array|Dictionary
-> Les données que vous souhaitez définir.global_data: bool
(facultatif) -> Si défini sur true
, ignore le nom d'utilisateur et le jeton définis dans GameJolt
et traite les données globales au lieu des données utilisateur.Remarques :
global_data
est false
, nécessite que le nom d'utilisateur et le jeton soient définis sur le singleton GameJolt
. Met à jour les données dans le magasin de données. Émet data_store_update_completed
.
key: String
-> La clé de l'élément de données que vous souhaitez mettre à jour.operation: String
-> L'opération que vous souhaitez effectuer.value: String|int
-> La valeur que vous souhaitez appliquer à l'élément du magasin de données.global_data: bool
(facultatif) -> Si défini sur true
, ignore le nom d'utilisateur et le jeton définis dans GameJolt
et traite les données globales au lieu des données utilisateur.Remarques :
operation
: "add"
, "subtract"
, "multiply"
, "divide"
, "append"
et "prepend"
.global_data
est false
, nécessite que le nom d'utilisateur et le jeton soient définis sur le singleton GameJolt
. Supprime les données du magasin de données. Émet data_store_remove_completed
.
key: String
-> La clé de l'élément de données que vous souhaitez supprimer.global_data: bool
(facultatif) -> Si défini sur true
, ignore le nom d'utilisateur et le jeton définis dans GameJolt
et traite les données globales au lieu des données utilisateur.Remarques :
global_data
est false
, nécessite que le nom d'utilisateur et le jeton soient définis sur le singleton GameJolt
. Renvoie les données du magasin de données. Émet data_store_fetch_completed
.
key: String
-> La clé de l'élément de données que vous souhaitez récupérer.global_data: bool
(facultatif) -> Si défini sur true
, ignore le nom d'utilisateur et le jeton définis dans GameJolt
et traite les données globales au lieu des données utilisateur.Remarques :
global_data
est false
, nécessite que le nom d'utilisateur et le jeton soient définis sur le singleton GameJolt
. Renvoie soit toutes les clés du magasin de données global du jeu, soit toutes les clés du magasin de données d'un utilisateur. Émet data_store_get_keys_completed
.
pattern: String
(facultatif) -> Le modèle à appliquer aux noms de clés dans le magasin de données.global_data: bool
(facultatif) -> Si défini sur true
, ignore le nom d'utilisateur et le jeton définis dans GameJolt
et traite les données globales au lieu des données utilisateur.Remarques :
"*"
."key"
. La valeur de retour "key"
peut apparaître plusieurs fois.global_data
est false
, nécessite que le nom d'utilisateur et le jeton soient définis sur le singleton GameJolt
. Renvoie la liste des amis d'un utilisateur. Émet friends_completed
.
Remarque : nécessite que le nom d'utilisateur et le jeton soient définis sur le singleton GameJolt
.
Renvoie l'heure du serveur Game Jolt. Émet time_completed
.
Une requête par lots est un ensemble de sous-requêtes qui permet aux développeurs d'envoyer plusieurs appels d'API avec une seule requête HTTP. Pour utiliser les appels par lots dans votre code, placez vos appels de requête entre batch_begin
et batch_end
. Par exemple, utilisez vos méthodes dans l'ordre suivant :
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
Effectuez la demande par lots après avoir collecté les demandes avec batch_begin
et batch_end
. Émet batch_completed
.
parallel: bool
(facultatif) -> Par défaut, chaque sous-requête est traitée sur les serveurs de manière séquentielle. Si cela est défini sur true
, alors toutes les sous-requêtes sont traitées en même temps, sans attendre la fin de la sous-requête précédente avant de démarrer la suivante.break_on_error: bool
(facultatif) -> Si ceci est défini sur true
, un échec de sous-requête entraînera l'arrêt du traitement des sous-requêtes suivantes par l'ensemble du lot et renverra une valeur false
en cas de succès.Remarques :
parallel
et break_on_error
s'excluent mutuellement et ne peuvent pas être utilisés dans la même requête. Commence à rassembler les demandes par lots. Les méthodes ne renverront pas de réponses après cet appel. Appelez batch_end
pour terminer le processus de collecte des demandes par lots.
Arrête de collecter les demandes de lot. Les méthodes renverront à nouveau des réponses après cet appel. Doit être utilisé après batch_begin
.