bedrock-protocol
Advanced tools
Comparing version 3.37.0 to 3.38.0
@@ -0,1 +1,6 @@ | ||
## 3.38.0 | ||
* [Support 1.21.2, and add missing versions to type definitions (#510)](https://github.com/PrismarineJS/bedrock-protocol/commit/5d3986924d3f262708d7c7e55a7f410f12c7903c) (thanks @CreeperG16) | ||
* [Fix example in README.md for 1.21 (#506)](https://github.com/PrismarineJS/bedrock-protocol/commit/c4593aa355d6ce9e2ac65cc2102cd9285a6b6449) (thanks @Ant767) | ||
* [Don't send now deprecated tick sync packets on 1.21 and newer (#504)](https://github.com/PrismarineJS/bedrock-protocol/commit/84c5231b92df9f5f1a09b29a05e7abfed62f1c2b) (thanks @w0ahL) | ||
## 3.37.0 | ||
@@ -2,0 +7,0 @@ * [Support 1.21.0](https://github.com/PrismarineJS/bedrock-protocol/commit/5b2d78792c9b4c070d727a9028a6b3a266483e1c) (thanks @CreeperG16) |
@@ -6,3 +6,3 @@ import EventEmitter from 'events' | ||
declare module 'bedrock-protocol' { | ||
type Version = '1.20.40' | '1.20.30' | '1.20.10' | '1.20.0' | '1.19.80' | '1.19.70' | '1.19.63' | '1.19.62' | '1.19.60' | '1.19.51' | '1.19.50' | '1.19.41' | '1.19.40' | '1.19.31' | '1.19.30' | '1.19.22' | '1.19.21' | '1.19.20' | '1.19.11' | '1.19.10' | '1.19.2' | '1.19.1' | '1.18.31' | '1.18.30' | '1.18.12' | '1.18.11' | '1.18.10' | '1.18.2' | '1.18.1' | '1.18.0' | '1.17.41' | '1.17.40' | '1.17.34' | '1.17.30' | '1.17.11' | '1.17.10' | '1.17.0' | '1.16.220' | '1.16.210' | '1.16.201' | ||
type Version = '1.21.2' | '1.21.0' | '1.20.80' | '1.20.71' | '1.20.61' | '1.20.50' | '1.20.40' | '1.20.30' | '1.20.10' | '1.20.0' | '1.19.80' | '1.19.70' | '1.19.63' | '1.19.62' | '1.19.60' | '1.19.51' | '1.19.50' | '1.19.41' | '1.19.40' | '1.19.31' | '1.19.30' | '1.19.22' | '1.19.21' | '1.19.20' | '1.19.11' | '1.19.10' | '1.19.2' | '1.19.1' | '1.18.31' | '1.18.30' | '1.18.12' | '1.18.11' | '1.18.10' | '1.18.2' | '1.18.1' | '1.18.0' | '1.17.41' | '1.17.40' | '1.17.34' | '1.17.30' | '1.17.11' | '1.17.10' | '1.17.0' | '1.16.220' | '1.16.210' | '1.16.201' | ||
@@ -9,0 +9,0 @@ export interface Options { |
{ | ||
"name": "bedrock-protocol", | ||
"version": "3.37.0", | ||
"version": "3.38.0", | ||
"description": "Minecraft Bedrock Edition protocol library", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -14,3 +14,3 @@ # bedrock-protocol | ||
- Supports Minecraft Bedrock version 1.16.201, 1.16.210, 1.16.220, 1.17.0, 1.17.10, 1.17.30, 1.17.40, 1.18.0, 1.18.11, 1.18.30, 1.19.1, 1.19.10, 1.19.20, 1.19.21, 1.19.30, 1.19.40, 1.19.41, 1.19.50, 1.19.60, 1.19.62, 1.19.63, 1.19.70, 1.19.80, 1.20.0, 1.20.10, 1.20.30, 1.20.40, 1.20.50, 1.20.61, 1.20.71, 1.20.80, 1.21.0 | ||
- Supports Minecraft Bedrock version 1.16.201, 1.16.210, 1.16.220, 1.17.0, 1.17.10, 1.17.30, 1.17.40, 1.18.0, 1.18.11, 1.18.30, 1.19.1, 1.19.10, 1.19.20, 1.19.21, 1.19.30, 1.19.40, 1.19.41, 1.19.50, 1.19.60, 1.19.62, 1.19.63, 1.19.70, 1.19.80, 1.20.0, 1.20.10, 1.20.30, 1.20.40, 1.20.50, 1.20.61, 1.20.71, 1.20.80, 1.21.0, 1.21.2 | ||
- Parse and serialize packets as JavaScript objects | ||
@@ -58,3 +58,3 @@ - Automatically respond to keep-alive packets | ||
client.queue('text', { | ||
type: 'chat', needs_translation: false, source_name: client.username, xuid: '', platform_chat_id: '', | ||
type: 'chat', needs_translation: false, source_name: client.username, xuid: '', platform_chat_id: '', filtered_message: '', | ||
message: `${packet.source_name} said: ${packet.message} on ${new Date().toLocaleString()}` | ||
@@ -61,0 +61,0 @@ }) |
@@ -42,2 +42,6 @@ const cipher = require('./transforms/encryption') | ||
versionLessThanOrEqualTo (version) { | ||
return this.options.protocolVersion <= (typeof version === 'string' ? Versions[version] : version) | ||
} | ||
startEncryption (iv) { | ||
@@ -44,0 +48,0 @@ this.encryptionEnabled = true |
@@ -59,27 +59,32 @@ const { Client } = require('./client') | ||
client.queue('client_cache_status', { enabled: false }) | ||
client.queue('tick_sync', { request_time: BigInt(Date.now()), response_time: 0n }) | ||
if (client.versionLessThanOrEqualTo('1.20.80')) client.queue('tick_sync', { request_time: BigInt(Date.now()), response_time: 0n }) | ||
sleep(500).then(() => client.queue('request_chunk_radius', { chunk_radius: client.viewDistance || 10 })) | ||
}) | ||
// Send tick sync packets every 10 ticks | ||
const keepAliveInterval = 10 | ||
const keepAliveIntervalBig = BigInt(keepAliveInterval) | ||
let keepalive | ||
client.tick = 0n | ||
client.once('spawn', () => { | ||
keepalive = setInterval(() => { | ||
// Client fills out the request_time and the server does response_time in its reply. | ||
client.queue('tick_sync', { request_time: client.tick, response_time: 0n }) | ||
client.tick += keepAliveIntervalBig | ||
}, 50 * keepAliveInterval) | ||
if (client.versionLessThanOrEqualTo('1.20.80')) { | ||
const keepAliveInterval = 10 | ||
const keepAliveIntervalBig = BigInt(keepAliveInterval) | ||
client.on('tick_sync', async packet => { | ||
client.emit('heartbeat', packet.response_time) | ||
client.tick = packet.response_time | ||
let keepalive | ||
client.tick = 0n | ||
client.once('spawn', () => { | ||
keepalive = setInterval(() => { | ||
// Client fills out the request_time and the server does response_time in its reply. | ||
client.queue('tick_sync', { request_time: client.tick, response_time: 0n }) | ||
client.tick += keepAliveIntervalBig | ||
}, 50 * keepAliveInterval) | ||
client.on('tick_sync', async packet => { | ||
client.emit('heartbeat', packet.response_time) | ||
client.tick = packet.response_time | ||
}) | ||
}) | ||
}) | ||
client.once('close', () => { | ||
clearInterval(keepalive) | ||
}) | ||
client.once('close', () => { | ||
clearInterval(keepalive) | ||
}) | ||
} | ||
} | ||
@@ -89,2 +94,3 @@ | ||
const con = new RakClient({ host, port }) | ||
try { | ||
@@ -91,0 +97,0 @@ return advertisement.fromServerName(await con.ping()) |
@@ -6,3 +6,3 @@ const mcData = require('minecraft-data') | ||
// Currently supported verson. Note, clients with newer versions can still connect as long as data is in minecraft-data | ||
const CURRENT_VERSION = '1.21.0' | ||
const CURRENT_VERSION = '1.21.2' | ||
@@ -9,0 +9,0 @@ const Versions = Object.fromEntries(mcData.versions.bedrock.filter(e => e.releaseType === 'release').map(e => [e.minecraftVersion, e.version])) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
157907
3140