Hooks (Server-side)
Hooks
onPlayerConnecting
ทำงานเมื่อผู้เล่นทำการเชื่อมต่อกับเซิร์ฟเวอร์
function Hooks.onPlayerConnecting(payload)
return true
end
Parameters
- payload:
table<{ player: table, deferrals: table }>
- ตารางข้อมูล
- player:
table<{ [key]: any }>
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- tempId:
integer
- Temp ID ของผู้เล่น
- identifier:
string
- ตัวระบุหลัก ของผู้เล่น
- bindId:
string
|nil
- ตัวระบุที่ผูกไว้กับตัวระบุหลัก ของผู้เล่น
- tempId:
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- deferrals:
table<{ [key]: function }>
- ฟังก์ชันสำหรับการเลื่อนการเชื่อมต่อ (ดูข้อมูลเพิ่มเติมได้ที่ Deferring connections)
- update:
function
- ส่งข้อความไปยังไคลเอนต์ที่เชื่อมต่อ
- presentCard:
function
- ส่งข้อมูล Adaptive Card ไปยังไคลเอนต์ที่เชื่อมต่อ
- done:
function
- สิ้นสุดกระบวนการ deferral โดยจำเป็นต้องรออย่างน้อยหนึ่ง tick ก่อนที่จะเรียกใช้ done
- หากระบุ
failureReason
การเชื่อมต่อจะถูกปฏิเสธ และไคลเอนต์จะเห็นข้อความที่ระบุเหตุผลไว้ หากไม่ระบุfailureReason
ไคลเอน ต์จะได้รับอนุญาตให้เข้าร่วมเซิร์ฟเวอร์
- handover:
function
- อนุญาตให้กำหนดชุดของ endpoints สำหรับผู้เล่นในขณะที่กำลังเชื่อมต่อ
- update:
- ฟังก์ชันสำหรับการเลื่อนการเชื่อมต่อ (ดูข้อมูลเพิ่มเติมได้ที่ Deferring connections)
- player:
- ตารางข้อมูล
Returns
- allow:
boolean
|nil
- ตอบกลับ
true
หากอนุญาตให้เชื่อมต่อ - ตอบกลับ
false
|nil
หากต้องการยกเลิกการเชื่อมต่อ
- ตอบกลับ
onPlayerJoining
ทำงานเมื่อผู้เล่นกำลังเข้าร่วมกับเซิร์ฟเวอร์
function Hooks.onPlayerJoining(payload)
return true
end
Parameters
- payload:
table<{ player: table }>
- ตารางข้อมูล
- player:
table<{ [key]: any }>
- ข้อมูลของผู้เล่นเมื่อกำลังเข้าร่วม
- tempId:
integer
- Temp ID ของผู้เล่น
- netId:
integer
- Net ID ของผู้เล่น
- identifier:
string
|nil
- ตัวระบุหลัก ของผู้เล่น
- bindId:
string
|nil
- ตัวระบุที่ผูกไว้กับตัวระบุหลัก ของผู้เล่น
- tempId:
- ข้อมูลของผู้เล่นเมื่อกำลังเข้าร่วม
- player:
- ตารางข้อมูล
Returns
- allow:
boolean
|nil
- ตอบกลับ
true
หากอนุญาตให้เชื่อมต่อ - ตอบกลับ
false
|nil
หากต้องการยกเลิกการเชื่อมต่อ (เตะออกจากเซิร์ฟเวอร์)
- ตอบกลับ
onPlayerDataLoaded
ทำงานเมื่อผู้เล่นเชื่อมต่อและข้อมูลของผู้เล่นถูกโหลดแล้ว
function Hooks.onPlayerDataLoaded(payload)
return payload
end
Parameters
- payload:
table<{ [key]: any }>
Returns
- payload:
table<{ [key]: any }>
onPlayerConnectionSpam
ทำงานเมื่อผู้เล่นเชื่อมต่อบ่อยและเร็วเกินกำหนด
function Hooks.onPlayerConnectionSpam(payload)
return false
end
Parameters
- payload:
table<{ player: table, data: table }>
- ตารางข้อมูล
- player:
table<{ [key]: any }>
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- tempId:
integer
- Temp ID ของผู้เล่น
- identifier:
string
- ตัวระบุหลัก ของผู้เล่น
- bindId:
string
|nil
- ตัวระบุที่ผูกไว้กับตัวระบุหลัก ของผู้เล่น
- tempId:
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- data:
table<{ [key]: any }>
- ข้อมูลการเชื่อมต่อบ่อยและเร็วเกินกำหนด
- attempts:
integer
- จำนวนครั้งที่พยายาม
- lastAttempt:
integer
- พยายามครั้งสุดท้ายเวลา (Unix time)
- isBlocked:
boolean
- ค่าเป็น
true
หากถูกบล็อคแล้ว
- ค่าเป็น
- reason:
string
- เหตุผลที่ปฏิเสธการเชื่อมต่อ
- attempts:
- ข้อมูลการเชื่อมต่อบ่อยและเร็วเกินกำหนด
- player:
- ตารางข้อมูล
Returns
- allow:
boolean
|nil
- ตอบกลับ
true
หากอนุญาตให้เชื่อมต่อ - ตอบกลับ
false
|nil
หากต้องการยกเลิกการเชื่อมต่อ (รอคูลดาวน์ / บล็อกชั่วคราว)
- ตอบกลับ
onPlayerPingExceeded
ทำงานเมื่อผู้เล่นเชื่อมต่อและการตอบสนองของเครือข่ายผู้เล่นช้าเกินกำหนด
function Hooks.onPlayerPingExceeded(payload)
return false
end
Parameters
- payload:
table<{ player: table }>
- ตารางข้อมูล
- player:
table<{ [key]: any }>
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- tempId:
integer
- Temp ID ของผู้เล่น
- identifier:
string
- ตัวระบุหลัก ของผู้เล่น
- bindId:
string
|nil
- ตัวระบุที่ผูกไว้กับตัวระบุหลัก ของผู้เล่น
- ping:
integer
- ค่า Ping ของผู้เล่น
- tempId:
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- player:
- ตารางข้อมูล
Returns
- allow:
boolean
|nil
- ตอบกลับ
true
หากอนุญาตให้เชื่อมต่อ - ตอบกลับ
false
|nil
หากต้องการยกเลิกการเชื่อมต่อ
- ตอบกลับ
onBannedHwidDetected
ทำงานเมื่อผู้เล่นเชื่อมต่อและตรวจพบ HWIDs ของผู้เล่นอื่นที่ถูกแบน
function Hooks.onBannedHwidDetected(payload)
return false
end
Parameters
- payload:
table<{ player: table, data: table }>
- ตารางข้อมูล
- player:
table<{ [key]: any }>
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- tempId:
integer
- Temp ID ของผู้เล่น
- identifier:
string
- ตัวระบุหลัก ของผู้เล่น
- bindId:
string
|nil
- ตัวระบุที่ผูกไว้กับตัวระบุหลัก ของผู้เล่น
- hwids:
table<{ [index]: string }>
- ข้อมูล HWIDs ของผู้เล่นที่พบเมื่อเชื่อมต่อ
- tempId:
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- data:
table<{ [key]: any }>
- ข้อมูลของผู้เล่นที่ถูกแบน
- matchedHwids:
table<{ [index]: string }>
- ข้อมูล HWIDs ที่ตรงกัน
- identifier:
string
- ตัวระบุของผู้เล่นที่ถูกแบน
- banId:
string
- รหัสอ้างอิงการแบน
- banDetails:
table<{ [key]: any }>
|nil
- matchedHwids:
- ข้อมูลของผู้เล่นที่ถูกแบน
- player:
- ตารางข้อมูล
Returns
- allow:
boolean
|nil
- ตอบกลับ
true
หากอนุญาตให้เชื่อมต่อ - ตอบกลับ
false
|nil
หากต้องการยกเลิกการเชื่อมต่อ
- ตอบกลับ
onBannedIdentifierDetected
ทำงานเมื่อผู้เล่นเชื่อมต่อและตรวจพบ Identifiers ของผู้เล่นที่ถูกแบน
function Hooks.onBannedIdentifierDetected(payload)
return false
end
Parameters
- payload:
table<{ player: table, data: table }>
- ตารางข้อมูล
- player:
table<{ [key]: any }>
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- tempId:
integer
- Temp ID ของผู้เล่น
- identifier:
string
- ตัวระบุหลัก ของผู้เล่น
- bindId:
string
|nil
- ตัวระบุที่ผูกไว้กับตัวระบุหลัก ของผู้เล่น
- tempId:
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- data:
table<{ [key]: any }>
- ข้อมูลการแบน
- status:
table<{ id: integer, name: string }>
- ข้อมูลสถานะการถูกแบน
- banDetails:
table<{ [key]: any }>
|nil
- status:
- ข้อมูลการแบน
- player:
- ตารางข้อมูล
Returns
- allow:
boolean
|nil
- ตอบกลับ
true
หากอนุญาตให้เชื่อมต่อ - ตอบกลับ
false
|nil
หากต้องการยกเลิกการเชื่อมต่อ
- ตอบกลับ
onPlayerInactiveDetected
ทำงานเมื่อผู้เล่นเชื่อมต่อและสถานะถูกตั้งเป็นระงับการใช้งานเนื่องจากไม่เข้าร่วมเซิร์ฟเวอร์ตามระยะเวลาที่กำหนด
function Hooks.onPlayerInactiveDetected(payload)
return false
end
Parameters
- payload:
table<{ player: table, data: table }>
- ตารางข้อมูล
- player:
table<{ [key]: any }>
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- tempId:
integer
- Temp ID ของผู้เล่น
- identifier:
string
- ตัวระบุหลัก ของผู้เล่น
- bindId:
string
|nil
- ตัวระบุที่ผูกไว้กับตัวระบุหลัก ของผู้เล่น
- tempId:
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- data:
table<{ [key]: any }>
- ข้อมูลการถูกระงับ
- status:
table<{ id: integer, name: string }>
- ข้อมูลสถานะการถูกระงับ
- last_seen:
string
- วันที่และเวลาที่พบผู้เล่นครั้งล่าสุด ในรูปแบบ
YYYY-MM-DD HH:MM:SS
เช่น"2026-05-21 14:33:00"
- วันที่และเวลาที่พบผู้เล่นครั้งล่าสุด ในรูปแบบ
- limit_days:
integer
- status:
- ข้อมูลการถูกระงับ
- player:
- ตารางข้อมูล
Returns
- allow:
boolean
|nil
- ตอบกลับ
true
หากอนุญาตให้เชื่อมต่อ - ตอบกลับ
false
|nil
หากต้องการยกเลิกการเชื่อมต่อ
- ตอบกลับ
onPlayerAirtimeRejected
ทำงานเมื่อผู้เล่นเชื่อมต่อและ Airtime ไม่เพียงพอ (ระบบจำกัดเวลาในการเล่น โดยผู้เล่นจะต้องเติม Airtime เพื่อเพิ่มเวลาในการเล่น)
function Hooks.onPlayerAirtimeRejected(payload)
return false
end
Parameters
- payload:
table<{ player: table, data: table }>
- ตารางข้อมูล
- player:
table<{ [key]: any }>
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- tempId:
integer
- Temp ID ของผู้เล่น
- identifier:
string
- ตัวระบุหลัก ของผู้เล่น
- bindId:
string
|nil
- ตัวระบุที่ผูกไว้กับตัวระบุหลัก ของผู้เล่น
- tempId:
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- data:
table<{ [key]: any }>
- ข้อมูลแอร์ไทม์ของผู้เล่น
- airtime_left:
integer
- จำนวนแอร์ไทม์คงเหลือของผู้เล่น
- airtime_left:
- ข้อมูลแอร์ไทม์ของผู้เล่น
- player:
- ตารางข้อมูล
Returns
- allow:
boolean
|nil
- ตอบกลับ
true
หากอนุญาตให้เชื่อมต่อ - ตอบกลับ
false
|nil
หากต้องการยกเลิกการเชื่อมต่อ
- ตอบกลับ
onPlayerBoundIdMismatch
ทำงานเมื่อผู้เล่นเชื่อมต่อและใช้งานบัญชีที่ผูกไว้ไม่ตรงกับฐานข้อมูล
function Hooks.onPlayerBoundIdMismatch(payload)
return false
end
Parameters
- payload:
table<{ player: table, data: table }>
- ตารางข้อมูล
- player:
table<{ [key]: any }>
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- tempId:
integer
- Temp ID ของผู้เล่น
- identifier:
string
- ตัวระบุหลัก ของผู้เล่น
- bindId:
string
|nil
- ตัวระบุที่ผูกไว้กับตัวระบุหลัก ของผู้เล่น
- tempId:
- ข้อมูลของผู้เล่นเมื่อเชื่อมต่อ
- data:
table<{ [key]: any }>
- ข้อมูลของผู้เล่น
- boundId:
string
- ตัวระบุที่ผูกไว้กับตัวระบุหลัก บนฐานข้อมูล
- boundId:
- ข้อมูลของผู้เล่น
- player:
- ตารางข้อมูล
Returns
- allow:
boolean
|nil
- ตอบกลับ
true
หากอนุญาตให้เชื่อมต่อ - ตอบกลับ
false
|nil
หากต้องการยกเลิกการเชื่อมต่อ
- ตอบกลับ
onAddPlayerToQueue
ทำงานก่อนเพิ่มข้อมูลผู้เล่นไปยังระบบคิวรอเข้าร่วมเซิร์ฟเวอร์
function Hooks.onAddPlayerToQueue(payload)
return payload
end
Parameters
- payload:
table<{ [key]: any }>
- ข้อมูลของผู้เล่นที่จะใช้งานภายในระบบคิว
- tempId:
integer
- Temp ID ของผู้เล่น
- identifier:
string
- ตัวระบุหลัก ของผู้เล่น
- name:
string
- ชือของผู้เล่น
- points:
integer
- จำนวนคิวพ้อยท์ของผู้เล่น
- position:
integer
- ลำดับของผู้เล่นในคิว
- joinTime:
integer
- เวลาที่ผู้เล่นเข้าร่วมคิว (Unix time)
- lastPingCheck:
integer
- เวลาที่ตรวจสอบ Ping ของผู้เล่นครั้งล่าสุด (Unix time)
- tempId:
- ข้อมูลของผู้เล่นที่จะใช้งานภายในระบบคิว
Returns
- payload:
table<{ [key]: any }>