Skip to content

Error boundary for checksum in 1.21.11 #1488

@TAOtxi

Description

@TAOtxi
  • mineflayer latest
  • minecraft-version 1.21.11

problem

In 1.21.11, the following error will be thrown after using bot.chat several times.

RangeError [ERR_OUT_OF_RANGE]: Write error for undefined : The value of "value" is out of range. It must be >= 0 and <= 255. Received -9
    at writeU_Int8 (node:internal/buffer:740:11)
    at Buffer.writeUInt8 (node:internal/buffer:750:10)
    at Object.writer [as u8] (D:\Code\mc\mineflayer\test\node_modules\protodef\src\datatypes\numeric.js:97:25)
    at Object.packet_chat_message (eval at compile (D:\Code\mc\mineflayer\test\node_modules\protodef\src\compiler.js:262:12), <anonymous>:3208:24)
    at eval (eval at compile (D:\Code\mc\mineflayer\test\node_modules\protodef\src\compiler.js:262:12), <anonymous>:3835:64)
    at packet (eval at compile (D:\Code\mc\mineflayer\test\node_modules\protodef\src\compiler.js:262:12), <anonymous>:3895:9)
    at CompiledProtodef.write (D:\Code\mc\mineflayer\test\node_modules\protodef\src\compiler.js:76:12)
    at e.message (D:\Code\mc\mineflayer\test\node_modules\protodef\src\compiler.js:102:25)
    at tryCatch (D:\Code\mc\mineflayer\test\node_modules\protodef\src\utils.js:50:16)
    at CompiledProtodef.createPacketBuffer (D:\Code\mc\mineflayer\test\node_modules\protodef\src\compiler.js:102:5) {
  code: 'ERR_OUT_OF_RANGE',
  field: 'play.toServer'
}

The chat_message packet is:

{
  message: '5',
  timestamp: 1778598229848n,
  salt: 1n,
  signature: <Buffer 2a 03 ba e0 e5 ef 6a 3e 07 6d 1c 8a 66 5e 6d 95 7e 08 e8 3d da fb 60 73 f6 9c fd 8a e6 d2 5c 51 22 8a 1f 0c 09 33 74 85 86 2c ae 3b 94 db 67 0b 36 cf ... 206 more bytes>,
  offset: 1,
  checksum: -9,
  acknowledged: <Buffer 00 00 0c>
}

#1442 mention:

The Minecraft 1.21.5+ protocol expects checksums to be signed bytes (range -128 to 127) rather than unsigned bytes (range 0-255)

I think the checksum boundary need to update to -128 to 127 in 1.21.5+, but I don't know how to fix it...

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions