Merge pull request #144 from MathiewMay/dev

Fixed packet desync caused by entity ID overflowing
This commit is contained in:
ThePixelMoon 2026-03-09 22:26:55 +02:00 committed by GitHub
commit 17e113f292
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -73,18 +73,20 @@ void SetEntityMotionPacket::read(DataInputStream *dis) //throws IOException
} }
} }
void SetEntityMotionPacket::write(DataOutputStream *dos) //throws IOException void SetEntityMotionPacket::write(DataOutputStream *dos) //throws IOException
{ {
if( useBytes ) if( useBytes )
{ {
dos->writeShort(id | 0x800); // Masking the id to 11 bits before writing to account for large entitty ids.
dos->writeShort((id & 0x07FF) | 0x800);
dos->writeByte(xa/16); dos->writeByte(xa/16);
dos->writeByte(ya/16); dos->writeByte(ya/16);
dos->writeByte(za/16); dos->writeByte(za/16);
} }
else else
{ {
dos->writeShort(id); // same thing as line 80 here
dos->writeShort((id & 0x07FF));
dos->writeShort(xa); dos->writeShort(xa);
dos->writeShort(ya); dos->writeShort(ya);
dos->writeShort(za); dos->writeShort(za);