Skip to main content

Hooks (Server-side)

Hooks

onPlayerConnecting

ทำงานเมื่อผู้เล่นทำการเชื่อมต่อกับเซิร์ฟเวอร์

บรรทัดที่ 16
function Hooks.onPlayerConnecting(payload)
return true
end

Parameters

  • payload: table<{ player: table, deferrals: table }>
    • ตารางข้อมูล
      • player: table<{ [key]: any }>
      • deferrals: table<{ [key]: function }>
        • ฟังก์ชันสำหรับการเลื่อนการเชื่อมต่อ (ดูข้อมูลเพิ่มเติมได้ที่ Deferring connections)
          • update: function
            • ส่งข้อความไปยังไคลเอนต์ที่เชื่อมต่อ
          • presentCard: function
            • ส่งข้อมูล Adaptive Card ไปยังไคลเอนต์ที่เชื่อมต่อ
          • done: function
            • สิ้นสุดกระบวนการ deferral โดยจำเป็นต้องรออย่างน้อยหนึ่ง tick ก่อนที่จะเรียกใช้ done
            • หากระบุ failureReason การเชื่อมต่อจะถูกปฏิเสธ และไคลเอนต์จะเห็นข้อความที่ระบุเหตุผลไว้ หากไม่ระบุ failureReason ไคลเอนต์จะได้รับอนุญาตให้เข้าร่วมเซิร์ฟเวอร์
          • handover: function
            • อนุญาตให้กำหนดชุดของ endpoints สำหรับผู้เล่นในขณะที่กำลังเชื่อมต่อ

Returns

  • allow: boolean | nil
    • ตอบกลับ true หากอนุญาตให้เชื่อมต่อ
    • ตอบกลับ false | nil หากต้องการยกเลิกการเชื่อมต่อ

onPlayerJoining

ทำงานเมื่อผู้เล่นกำลังเข้าร่วมกับเซิร์ฟเวอร์

บรรทัดที่ 23
function Hooks.onPlayerJoining(payload)
return true
end

Parameters

Returns

  • allow: boolean | nil
    • ตอบกลับ true หากอนุญาตให้เชื่อมต่อ
    • ตอบกลับ false | nil หากต้องการยกเลิกการเชื่อมต่อ (เตะออกจากเซิร์ฟเวอร์)

onPlayerDataLoaded

ทำงานเมื่อผู้เล่นเชื่อมต่อและข้อมูลของผู้เล่นถูกโหลดแล้ว

บรรทัดที่ 60
function Hooks.onPlayerDataLoaded(payload)
return payload
end

Parameters

Returns

onPlayerConnectionSpam

ทำงานเมื่อผู้เล่นเชื่อมต่อบ่อยและเร็วเกินกำหนด

บรรทัดที่ 67
function Hooks.onPlayerConnectionSpam(payload)    
return false
end

Parameters

  • payload: table<{ player: table, data: table }>
    • ตารางข้อมูล
      • player: table<{ [key]: any }>
      • data: table<{ [key]: any }>
        • ข้อมูลการเชื่อมต่อบ่อยและเร็วเกินกำหนด
          • attempts: integer
            • จำนวนครั้งที่พยายาม
          • lastAttempt: integer
            • พยายามครั้งสุดท้ายเวลา (Unix time)
          • isBlocked: boolean
            • ค่าเป็น true หากถูกบล็อคแล้ว
          • reason: string
            • เหตุผลที่ปฏิเสธการเชื่อมต่อ

Returns

  • allow: boolean | nil
    • ตอบกลับ true หากอนุญาตให้เชื่อมต่อ
    • ตอบกลับ false | nil หากต้องการยกเลิกการเชื่อมต่อ (รอคูลดาวน์ / บล็อกชั่วคราว)

onPlayerPingExceeded

ทำงานเมื่อผู้เล่นเชื่อมต่อและการตอบสนองของเครือข่ายผู้เล่นช้าเกินกำหนด

บรรทัดที่ 74
function Hooks.onPlayerPingExceeded(payload)
return false
end

Parameters

Returns

  • allow: boolean | nil
    • ตอบกลับ true หากอนุญาตให้เชื่อมต่อ
    • ตอบกลับ false | nil หากต้องการยกเลิกการเชื่อมต่อ

onBannedHwidDetected

ทำงานเมื่อผู้เล่นเชื่อมต่อและตรวจพบ HWIDs ของผู้เล่นอื่นที่ถูกแบน

บรรทัดที่ 104
function Hooks.onBannedHwidDetected(payload)
return false
end

Parameters

  • payload: table<{ player: table, data: table }>
    • ตารางข้อมูล
      • player: table<{ [key]: any }>
      • data: table<{ [key]: any }>
        • ข้อมูลของผู้เล่นที่ถูกแบน
          • matchedHwids: table<{ [index]: string }>
            • ข้อมูล HWIDs ที่ตรงกัน
          • identifier: string
          • banId: string
            • รหัสอ้างอิงการแบน
          • banDetails: table<{ [key]: any }> | nil

Returns

  • allow: boolean | nil
    • ตอบกลับ true หากอนุญาตให้เชื่อมต่อ
    • ตอบกลับ false | nil หากต้องการยกเลิกการเชื่อมต่อ

onBannedIdentifierDetected

ทำงานเมื่อผู้เล่นเชื่อมต่อและตรวจพบ Identifiers ของผู้เล่นที่ถูกแบน

บรรทัดที่ 130
function Hooks.onBannedIdentifierDetected(payload)
return false
end

Parameters

Returns

  • allow: boolean | nil
    • ตอบกลับ true หากอนุญาตให้เชื่อมต่อ
    • ตอบกลับ false | nil หากต้องการยกเลิกการเชื่อมต่อ

onPlayerInactiveDetected

ทำงานเมื่อผู้เล่นเชื่อมต่อและสถานะถูกตั้งเป็นระงับการใช้งานเนื่องจากไม่เข้าร่วมเซิร์ฟเวอร์ตามระยะเวลาที่กำหนด

บรรทัดที่ 137
function Hooks.onPlayerInactiveDetected(payload)
return false
end

Parameters

  • payload: table<{ player: table, data: table }>

Returns

  • allow: boolean | nil
    • ตอบกลับ true หากอนุญาตให้เชื่อมต่อ
    • ตอบกลับ false | nil หากต้องการยกเลิกการเชื่อมต่อ

onPlayerAirtimeRejected

ทำงานเมื่อผู้เล่นเชื่อมต่อและ Airtime ไม่เพียงพอ (ระบบจำกัดเวลาในการเล่น โดยผู้เล่นจะต้องเติม Airtime เพื่อเพิ่มเวลาในการเล่น)

บรรทัดที่ 144
function Hooks.onPlayerAirtimeRejected(payload)
return false
end

Parameters

  • payload: table<{ player: table, data: table }>
    • ตารางข้อมูล
      • player: table<{ [key]: any }>
      • data: table<{ [key]: any }>
        • ข้อมูลแอร์ไทม์ของผู้เล่น
          • airtime_left: integer
            • จำนวนแอร์ไทม์คงเหลือของผู้เล่น

Returns

  • allow: boolean | nil
    • ตอบกลับ true หากอนุญาตให้เชื่อมต่อ
    • ตอบกลับ false | nil หากต้องการยกเลิกการเชื่อมต่อ

onPlayerBoundIdMismatch

ทำงานเมื่อผู้เล่นเชื่อมต่อและใช้งานบัญชีที่ผูกไว้ไม่ตรงกับฐานข้อมูล

บรรทัดที่ 151
function Hooks.onPlayerBoundIdMismatch(payload)
return false
end

Parameters

Returns

  • allow: boolean | nil
    • ตอบกลับ true หากอนุญาตให้เชื่อมต่อ
    • ตอบกลับ false | nil หากต้องการยกเลิกการเชื่อมต่อ

onAddPlayerToQueue

ทำงานก่อนเพิ่มข้อมูลผู้เล่นไปยังระบบคิวรอเข้าร่วมเซิร์ฟเวอร์

บรรทัดที่ 158
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)

Returns