Wrapper สำหรับ Game Jolt API ที่ทำงานผ่านคำขอ HTTP ประกอบด้วยตำแหน่งข้อมูล 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
Project Settings > General > Game Jolt > Config > Debug
หลังจากการตั้งค่านี้ คุณสามารถดำเนินการร้องขอ API ได้โดยใช้วิธีการด้านล่างใน Singleton GameJolt
บนโค้ดของคุณ
แต่ละวิธีของ 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
singleton ในเครื่อง
ตั้งชื่อผู้ใช้สำหรับการตรวจสอบสิทธิ์และงานขอบเขตผู้ใช้อื่นๆ ปล่อย user_name_changed
value: String
-> ชื่อผู้ใช้ รับชื่อผู้ใช้ปัจจุบัน
ตั้งค่าโทเค็นผู้ใช้สำหรับการตรวจสอบสิทธิ์และงานขอบเขตผู้ใช้อื่นๆ ปล่อย user_token_changed
value: String
-> โทเค็นเกมของผู้ใช้ รับโทเค็นเกมของผู้ใช้ปัจจุบัน
ตั้งค่า ID เกมที่จำเป็นสำหรับงานทั้งหมด ปล่อย game_id_changed
value: String
-> ID เกมจากโปรเจ็กต์ Game Jolt ของคุณ รับ 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
singleton
ตรวจสอบข้อมูลของผู้ใช้ สิ่งนี้ควรทำก่อนที่คุณจะทำการเรียกผู้ใช้ เพื่อให้แน่ใจว่าข้อมูลประจำตัวของผู้ใช้ (ชื่อผู้ใช้และโทเค็น) นั้นถูกต้อง ชื่อผู้ใช้และโทเค็นจะต้องตั้งค่าบน GameJolt
singleton เพื่อให้สำเร็จ ปล่อย users_auth_completed
เปิดเซสชันเกมสำหรับผู้ใช้รายใดรายหนึ่งและอนุญาตให้คุณบอก Game Jolt ว่าผู้ใช้กำลังเล่นเกมของคุณ คุณต้อง ping เซสชันเพื่อให้เซสชันทำงานต่อไป และคุณต้องปิดเซสชันเมื่อดำเนินการเสร็จแล้ว ปล่อย sessions_open_completed
หมายเหตุ:
GameJolt
singleton ส่ง Ping เซสชันที่เปิดอยู่เพื่อแจ้งระบบว่ายังคงทำงานอยู่ หากเซสชันไม่ได้รับการ Ping ภายใน 120 วินาที ระบบจะปิดเซสชันและคุณจะต้องเปิดเซสชันใหม่ ขอแนะนำให้คุณ ping ประมาณทุกๆ 30 วินาทีเพื่อป้องกันไม่ให้ระบบล้างเซสชันของคุณ คุณยังสามารถแจ้งให้ระบบทราบว่าผู้เล่นอยู่ในสถานะ "active"
หรือ "idle"
ภายในเกมของคุณ ปล่อย sessions_ping_completed
status: String
(ไม่บังคับ) -> ตั้งค่าสถานะของเซสชันเป็น "active"
หรือ "idle"
หมายเหตุ: จำเป็นต้องตั้งค่าชื่อผู้ใช้และโทเค็นใน GameJolt
singleton
ตรวจสอบเพื่อดูว่ามีเซสชันเปิดสำหรับผู้ใช้หรือไม่ สามารถใช้เพื่อดูว่าบัญชีผู้ใช้เฉพาะใช้งานอยู่ในเกมหรือไม่ ปล่อย sessions_check_completed
หมายเหตุ:
false
สำหรับฟิลด์ "success"
เมื่อไม่มีเซสชันที่เปิดอยู่ ลักษณะการทำงานดังกล่าวแตกต่างจากจุดสิ้นสุดอื่นๆ ที่ใช้ช่องนี้เพื่อระบุสถานะข้อผิดพลาดGameJolt
singleton ปิดเซสชันที่ใช้งานอยู่ ปล่อย sessions_close_completed
หมายเหตุ: จำเป็นต้องตั้งค่าชื่อผู้ใช้และโทเค็นใน GameJolt
singleton
ส่งคืนรายการคะแนนสำหรับผู้ใช้หรือทั่วโลกสำหรับเกม ปล่อย 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
ให้ดึงเฉพาะคะแนนของผู้ใช้ปัจจุบัน หรือดึงคะแนนของผู้ใช้ทั้งหมดหมายเหตุ:
GameJolt
singleton หาก this_user
เป็น true
limit
คือ 10
คะแนน จำนวนคะแนนสูงสุดที่คุณสามารถดึงกลับมาได้คือ 100
table_id
คะแนนจากตารางคะแนนหลักจะถูกส่งกลับthis_user
เป็น true
เท่านั้น หากคุณต้องการดึงคะแนนสำหรับผู้ใช้ที่ตั้งค่าไว้ในตัวสร้างคลาส ปล่อยให้ this_user
เป็น true
และ 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
singletonextra_data: String|int|Dictionary|Array
(เป็นทางเลือก) -> หากมีข้อมูลเพิ่มเติมที่คุณต้องการจัดเก็บเป็นสตริง คุณสามารถใช้ตัวแปรนี้ได้หมายเหตุ:
GameJolt
singleton และปล่อยให้ 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]
(ไม่บังคับ) -> หากคุณต้องการส่งคืนถ้วยรางวัลหนึ่งหรือหลายถ้วย ให้ส่งรหัสถ้วยรางวัลที่นี่หากคุณต้องการส่งคืนชุดย่อยของถ้วยรางวัลทั้งหมดหมายเหตุ:
trophy_ids
จะเพิกเฉยต่อพารามิเตอร์ achieved
หากผ่านGameJolt
singleton กำหนดถ้วยรางวัลตามความสำเร็จสำหรับผู้ใช้รายใดรายหนึ่ง ปล่อย trophies_add_achieved_completed
trophy_id: String|int
-> ID ของถ้วยรางวัลที่จะเพิ่มให้กับผู้ใช้ หมายเหตุ: จำเป็นต้องตั้งค่าชื่อผู้ใช้และโทเค็นใน GameJolt
singleton
ลบรางวัลที่ได้รับก่อนหน้านี้สำหรับผู้ใช้รายใดรายหนึ่ง ปล่อย trophies_remove_achieved_completed
trophy_id: String|int
-> ID ของถ้วยรางวัลที่จะลบออกจากผู้ใช้ หมายเหตุ: จำเป็นต้องตั้งค่าชื่อผู้ใช้และโทเค็นใน GameJolt
singleton
ตั้งค่าข้อมูลในที่เก็บข้อมูล ปล่อย data_store_set_completed
key: String
-> คีย์ของรายการข้อมูลที่คุณต้องการตั้งค่าdata: String|Array|Dictionary
-> ข้อมูลที่คุณต้องการตั้งค่าglobal_data: bool
(เป็นทางเลือก) -> หากตั้งค่าเป็น true
จะละเว้นชื่อผู้ใช้และโทเค็นที่ตั้งค่าใน GameJolt
และประมวลผลข้อมูลทั่วโลกแทนข้อมูลผู้ใช้หมายเหตุ:
global_data
เป็น false
จะต้องตั้งค่าชื่อผู้ใช้และโทเค็นใน GameJolt
singleton อัพเดตข้อมูลในที่เก็บข้อมูล ปล่อย 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
singleton ลบข้อมูลออกจากที่เก็บข้อมูล ปล่อย data_store_remove_completed
key: String
-> คีย์ของรายการข้อมูลที่คุณต้องการลบglobal_data: bool
(เป็นทางเลือก) -> หากตั้งค่าเป็น true
จะละเว้นชื่อผู้ใช้และโทเค็นที่ตั้งค่าใน GameJolt
และประมวลผลข้อมูลทั่วโลกแทนข้อมูลผู้ใช้หมายเหตุ:
global_data
เป็น false
จะต้องตั้งค่าชื่อผู้ใช้และโทเค็นใน GameJolt
singleton ส่งกลับข้อมูลจากที่เก็บข้อมูล ปล่อย data_store_fetch_completed
key: String
-> คีย์ของรายการข้อมูลที่คุณต้องการดึงข้อมูลglobal_data: bool
(เป็นทางเลือก) -> หากตั้งค่าเป็น true
จะละเว้นชื่อผู้ใช้และโทเค็นที่ตั้งค่าใน GameJolt
และประมวลผลข้อมูลทั่วโลกแทนข้อมูลผู้ใช้หมายเหตุ:
global_data
เป็น false
จะต้องตั้งค่าชื่อผู้ใช้และโทเค็นใน GameJolt
singleton ส่งคืนคีย์ทั้งหมดในที่เก็บข้อมูลส่วนกลางของเกม หรือส่งคืนคีย์ทั้งหมดในที่เก็บข้อมูลของผู้ใช้ ปล่อย data_store_get_keys_completed
pattern: String
(เป็นทางเลือก) -> รูปแบบที่จะใช้กับชื่อคีย์ในที่เก็บข้อมูลglobal_data: bool
(เป็นทางเลือก) -> หากตั้งค่าเป็น true
จะละเว้นชื่อผู้ใช้และโทเค็นที่ตั้งค่าใน GameJolt
และประมวลผลข้อมูลทั่วโลกแทนข้อมูลผู้ใช้หมายเหตุ:
"*"
"key"
ค่าส่งคืน "key"
สามารถปรากฏได้มากกว่าหนึ่งครั้งglobal_data
เป็น false
จะต้องตั้งค่าชื่อผู้ใช้และโทเค็นใน GameJolt
singleton ส่งกลับรายชื่อเพื่อนของผู้ใช้ ปล่อย friends_completed
หมายเหตุ: จำเป็นต้องตั้งค่าชื่อผู้ใช้และโทเค็นใน GameJolt
singleton
ส่งกลับเวลาของเซิร์ฟเวอร์ Game Jolt ปล่อย time_completed
คำขอแบบแบตช์คือชุดของคำขอย่อยที่ช่วยให้นักพัฒนาสามารถส่งการเรียก API หลายครั้งด้วยคำขอ HTTP เดียว หากต้องการใช้การเรียกแบบแบตช์ในโค้ดของคุณ ให้ทำการร้องขอการโทรระหว่าง 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