mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/4jcraft.git
synced 2026-05-31 07:45:09 +00:00
SetEntityMotionPacket::write() was sending raw entity ID without masking, changing it to mask the ID to 11 bits first since large entity IDs were accidentally setting the compression flag bit and causing wrong number of bytes to be read by receiver.
This commit is contained in:
@@ -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 )
|
||||
{
|
||||
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(ya/16);
|
||||
dos->writeByte(za/16);
|
||||
}
|
||||
else
|
||||
{
|
||||
dos->writeShort(id);
|
||||
// same thing as line 80 here
|
||||
dos->writeShort((id & 0x07FF));
|
||||
dos->writeShort(xa);
|
||||
dos->writeShort(ya);
|
||||
dos->writeShort(za);
|
||||
|
||||
Reference in New Issue
Block a user