通过 HTTP 请求运行的 Game Jolt API 的包装器。它包含所有 Game Jolt API 端点,旨在尽可能简化其使用。与Godot 4.x兼容。对于 Godot 3.x 版本,请参阅此分支。
有关使用示例,请参阅下面的文档。 addons/gamejolt/example
中还有一个示例场景,其中包含图形界面上的所有端点和参数。
注意:任何参数后跟?
是可选的。示例: sessions_ping(status?) -> GameJolt
。
Project Settings > Plugins
中启用插件Project Settings > General > Game Jolt > Config > Global
上执行 API 请求。Project Settings > General > Game Jolt > Config > Debug
上设置默认用户名和令牌。完成此设置后,您可以在代码中的单例GameJolt
上使用以下方法执行 API 请求。
每个 Game Jolt API 方法都会在请求完成后发出一个信号,无论成功与否。您可以连接特定信号来捕获方法回调的响应:
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...
或者您可以在变量中await
信号结果:
func _onButtonTime_pressed () -> void :
GameJolt . time ()
var result : Dictionary = await GameJolt . time_completed
# Do something with the request result...
注意:所有信号都会返回一个response: Dictionary
。
一般的
user_name_changed
user_token_changed
game_id_changed
private_key_changed
用户
users_fetch_completed(response: Dictionary)
users_auth_completed(response: Dictionary)
会议
sessions_open_completed(response: Dictionary)
sessions_ping_completed(response: Dictionary)
sessions_check_completed(response: Dictionary)
sessions_close_completed(response: Dictionary)
分数
scores_fetch_completed(response: Dictionary)
scores_tables_completed(response: Dictionary)
scores_add_completed(response: Dictionary)
scores_get_rank_completed(response: Dictionary)
奖杯
trophies_fetch_completed(response: Dictionary)
trophies_add_achieved_completed(response: Dictionary)
trophies_remove_achieved_completed(response: Dictionary)
数据存储
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)
朋友们
friends_completed(response: Dictionary)
时间
time_completed(response: Dictionary)
批量调用
batch_completed(response: Dictionary)
在本地配置GameJolt
单例的一般方法。
设置身份验证和其他用户范围任务的用户名。发出user_name_changed
。
value: String
-> 用户名。 获取当前用户名。
设置用于身份验证和其他用户范围任务的用户令牌。发出user_token_changed
。
value: String
-> 用户游戏代币。 获取当前用户游戏代币。
设置所有任务所需的游戏ID。发出game_id_changed
。
value: String
-> 来自 Game Jolt 项目的游戏 ID。 获取当前游戏ID。
设置所有任务所需的私钥。发出private_key_changed
。
value: String
-> 来自 Game Jolt 项目的游戏私钥。 获取当前游戏私钥。
返回用户的数据。发出users_fetch_completed
。
user_name: String
(可选)-> 您要获取其数据的用户的用户名。user_ids: Array[String|int]
(可选)-> 您要获取其数据的用户的 ID。注意:参数user_name
和user_ids
是互斥的,只能使用其中之一,或者不使用。如果未提供,将从GameJolt
单例中设置的当前用户名中获取。
验证用户的信息。这应该在对用户进行任何调用之前完成,以确保用户的凭据(用户名和令牌)有效。必须在GameJolt
单例上设置用户名和令牌才能成功。发出users_auth_completed
。
为特定用户打开游戏会话,并允许您告诉 Game Jolt 用户正在玩您的游戏。您必须对会话执行 ping 操作以使其保持活动状态,并且在使用完毕后必须将其关闭。发出sessions_open_completed
。
笔记:
GameJolt
单例上设置用户名和令牌。 对打开的会话执行 Ping 操作以告诉系统它仍然处于活动状态。如果 120 秒内未对会话进行 ping 操作,系统将关闭该会话,您必须打开另一个会话。建议您大约每 30 秒左右执行一次 ping 操作,以防止系统清除您的会话。您还可以让系统知道玩家在游戏中处于"active"
还是"idle"
状态。发出sessions_ping_completed
。
status: String
(可选) -> 将会话的状态设置为"active"
或"idle"
。注意:需要在GameJolt
单例上设置用户名和令牌。
检查用户是否有打开的会话。可用于查看特定用户帐户在游戏中是否处于活动状态。发出sessions_check_completed
。
笔记:
"success"
字段返回false
。该行为与使用此字段指示错误状态的其他端点不同。GameJolt
单例上设置用户名和令牌。 关闭活动会话。发出sessions_close_completed
。
注意:需要在GameJolt
单例上设置用户名和令牌。
返回用户或游戏全局的分数列表。发出scores_fetch_completed
。
limit: String|int
(可选) -> 您想要返回的分数数量。table_id: String|int
(可选) -> 分数表的ID。guest: String
(可选)-> 客人的姓名。better_than: String|int
(可选) -> 仅获取比该分数排序值更好的分数。worse_than: String|int
(可选) -> 仅获取比该分数排序值更差的分数。this_user: bool
(可选) -> 如果为true
,则仅获取当前用户的分数。否则,获取所有用户的分数。笔记:
this_user
为true
则需要在GameJolt
单例上设置用户名和令牌。limit
的默认值为10
分。您可以检索的最大分数为100
。table_id
留空,则返回主分数表中的分数。this_user
作为true
传递。将this_user
保留为true
,将guest
保留为""
以检索所有分数。guest
允许您通过特定的 guest 姓名获取分数。仅将this_user
作为true
或guest
(或无)传递,切勿同时传递两者。返回游戏的高分表列表。发出scores_tables_completed
。
为用户或访客添加分数。发出scores_add_completed
。
score: String
-> 这是与分数关联的字符串值。示例: "500 Points"
。sort: String|int
-> 这是与分数相关的数字排序值。所有的排序都将基于这个数字。示例: 500
。table_id: String|int
(可选) -> 要提交到的分数表的 ID。guest: String
(可选)-> 客人的姓名。覆盖GameJolt
单例的用户名。extra_data: String|int|Dictionary|Array
(可选) -> 如果您想将任何额外数据存储为字符串,您可以使用此变量。笔记:
GameJolt
单例上设置用户名和令牌,并将guest
保留为空。如果您要为访客存储,则必须传入guest
参数。extra_data
值只能通过 API 和游戏的仪表板检索。它永远不会向网站上的用户公开显示。如果还有与分数相关的其他数据,例如玩的时间、收集的硬币等,您绝对应该包含它。如果您认为玩家非法获得高分,这将很有帮助。table_id
留空,则分数将提交到主高分表。 返回分数表中特定分数的排名。发出scores_get_rank_completed
。
sort: String|int
-> 这是一个数字排序值,由分数表上的排名表示。table_id: String|int
(可选) -> 要从中获取排名的分数表的 ID。笔记:
table_id
留空,则返回主高分表中的排名。返回一个或多个奖杯,具体取决于传入的参数。发出trophies_fetch_completed
。
sort: bool|null
(可选) -> 传入true
只返回用户获得的奖杯。传入false
只返回用户未获得的奖杯。传递null
以检索所有奖杯。trophy_ids: Array[String|int]
(可选) -> 如果您想返回一个或多个奖杯,如果您想返回所有奖杯的子集,请在此处传递奖杯 ID。笔记:
trophy_ids
话,如果传递了则忽略achieved
参数。GameJolt
单例上设置用户名和令牌。 为特定用户设置一个奖杯。发出trophies_add_achieved_completed
。
trophy_id: String|int
-> 要为用户添加的奖杯的 ID。注意:需要在GameJolt
单例上设置用户名和令牌。
删除特定用户之前获得的奖杯。发出trophies_remove_achieved_completed
。
trophy_id: String|int
-> 要从用户删除的奖杯的 ID。注意:需要在GameJolt
单例上设置用户名和令牌。
在数据存储中设置数据。发出data_store_set_completed
。
key: String
-> 您要设置的数据项的键。data: String|Array|Dictionary
-> 您要设置的数据。global_data: bool
(可选) -> 如果设置为true
,则忽略GameJolt
中设置的用户名和令牌并处理全局数据而不是用户数据。笔记:
global_data
为false
,则需要在GameJolt
单例上设置用户名和令牌。 更新数据存储中的数据。发出data_store_update_completed
。
key: String
-> 您要更新的数据项的键。operation: String
-> 您要执行的操作。value: String|int
-> 您想要应用于数据存储项的值。global_data: bool
(可选) -> 如果设置为true
,则忽略GameJolt
中设置的用户名和令牌并处理全局数据而不是用户数据。笔记:
operation
的有效值: "add"
、 "subtract"
、 "multiply"
、 "divide"
、 "append"
和"prepend"
。global_data
为false
,则需要在GameJolt
单例上设置用户名和令牌。 从数据存储中删除数据。发出data_store_remove_completed
。
key: String
-> 您要删除的数据项的键。global_data: bool
(可选) -> 如果设置为true
,则忽略GameJolt
中设置的用户名和令牌并处理全局数据而不是用户数据。笔记:
global_data
为false
,则需要在GameJolt
单例上设置用户名和令牌。 从数据存储中返回数据。发出data_store_fetch_completed
。
key: String
-> 您要获取的数据项的键。global_data: bool
(可选) -> 如果设置为true
,则忽略GameJolt
中设置的用户名和令牌并处理全局数据而不是用户数据。笔记:
global_data
为false
,则需要在GameJolt
单例上设置用户名和令牌。 返回游戏全局数据存储中的所有密钥,或用户数据存储中的所有密钥。发出data_store_get_keys_completed
。
pattern: String
(可选)->应用于数据存储中的键名称的模式。global_data: bool
(可选) -> 如果设置为true
,则忽略GameJolt
中设置的用户名和令牌并处理全局数据而不是用户数据。笔记:
"*"
。"key"
值的列表。 "key"
返回值可以出现多次。global_data
为false
,则需要在GameJolt
单例上设置用户名和令牌。返回用户的好友列表。发出friends_completed
。
注意:需要在GameJolt
单例上设置用户名和令牌。
返回 Game Jolt 服务器的时间。发出time_completed
。
批量请求是子请求的集合,使开发人员能够通过一个 HTTP 请求发送多个 API 调用。要在代码中使用批量调用,请将请求调用放在batch_begin
和batch_end
之间。例如,按以下顺序使用您的方法:
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
使用batch_begin
和batch_end
收集请求后执行批处理请求。发出batch_completed
。
parallel: bool
(可选) -> 默认情况下,每个子请求都会在服务器上顺序处理。如果将此设置为true
,则同时处理所有子请求,而无需等待上一个子请求完成后才开始下一个子请求。break_on_error: bool
(可选) -> 如果设置为true
,则一个子请求失败将导致整个批次停止处理后续子请求,并返回false
值表示成功。笔记:
parallel
和break_on_error
参数是互斥的,不能在同一请求中使用。 开始收集批量请求。此调用后方法将不会返回响应。调用batch_end
完成批量请求收集过程。
停止收集批处理请求。方法将在此调用后再次返回响应。必须在batch_begin
之后使用。