diff --git a/Minecraft.World/Network/Packets/SetEntityMotionPacket.cpp b/Minecraft.World/Network/Packets/SetEntityMotionPacket.cpp index bff87c5bd..cb6d2a42c 100644 --- a/Minecraft.World/Network/Packets/SetEntityMotionPacket.cpp +++ b/Minecraft.World/Network/Packets/SetEntityMotionPacket.cpp @@ -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); diff --git a/flake.nix b/flake.nix index 24d0e6679..9897d7fc6 100644 --- a/flake.nix +++ b/flake.nix @@ -32,6 +32,7 @@ libvorbis ]; packages = with pkgs; [ + python3 gcc15 lld cmake diff --git a/scripts/copy_assets_to_client.py b/scripts/copy_assets_to_client.py index 9670a2dcb..6e69231f4 100644 --- a/scripts/copy_assets_to_client.py +++ b/scripts/copy_assets_to_client.py @@ -23,11 +23,11 @@ src_assets = Path(project_source_root / "Minecraft.Assets") # clear out any old assets if dest_common.exists(): - shutil.rmtree(dest_common) - shutil.rmtree(client_build_dir / "music") - shutil.rmtree(client_build_dir / "Sound") + shutil.rmtree(dest_common, ignore_errors=True) + shutil.rmtree(client_build_dir / "music", ignore_errors=True) + shutil.rmtree(client_build_dir / "Sound", ignore_errors=True) # XXX: Check "copy DLC" bellow for info - # shutil.rmtree(client_build_dir / "DurangoMedia") + # shutil.rmtree(client_build_dir / "DurangoMedia", ignore_errors=True) # copy `Minecraft.Assets/Common` into the build directory for the client. shutil.copytree(