openbrawl-client/Protocol/Messages/KeepAliveMessage.js
2025-06-21 00:41:45 +03:00

45 lines
913 B
JavaScript

const ByteStream = require("../../ByteStream/ByteStream")
class KeepAliveMessage {
constructor(config, crypto, logger, data = null) {
this.config = config
this.crypto = crypto
this.logger = logger
this.type = 20108
this.data = data
}
encode() {
const stream = new ByteStream()
stream.writeUInt32(Math.floor(Date.now() / 1000))
stream.writeUInt32(this.data?.counter || 0)
this.logger.debug(`Encoding KeepAliveMessage`, {
timestamp: Math.floor(Date.now() / 1000),
counter: this.data?.counter || 0,
})
return stream.getBuffer()
}
decode(buffer) {
const stream = new ByteStream(buffer)
const data = {
timestamp: stream.readUInt32(),
counter: stream.readUInt32(),
}
this.logger.debug(`Decoded KeepAliveMessage`, data)
return data
}
getType() {
return this.type
}
}
module.exports = KeepAliveMessage