From a1ffed1942331b2c6586107bca549b678f4fe042 Mon Sep 17 00:00:00 2001 From: Hiroku Date: Sun, 20 Mar 2022 22:26:53 +1000 Subject: [PATCH] Fixed EntitySpawnExtension buffer being unable to be read from, Fix #208 (#220) * Fixed EntitySpawnExtension buffer being unable to read from, #208 * Release the extensions buffer when it is no longer needed * Cleaned the buffer fix for EntitySpawnExtension Co-authored-by: Paul --- .../dev/architectury/networking/fabric/SpawnEntityPacket.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fabric/src/main/java/dev/architectury/networking/fabric/SpawnEntityPacket.java b/fabric/src/main/java/dev/architectury/networking/fabric/SpawnEntityPacket.java index d535f5b2..1183314a 100644 --- a/fabric/src/main/java/dev/architectury/networking/fabric/SpawnEntityPacket.java +++ b/fabric/src/main/java/dev/architectury/networking/fabric/SpawnEntityPacket.java @@ -84,6 +84,8 @@ public class SpawnEntityPacket { var deltaX = buf.readDouble(); var deltaY = buf.readDouble(); var deltaZ = buf.readDouble(); + // Retain this buffer so we can use it in the queued task (EntitySpawnExtension) + buf.retain(); context.queue(() -> { var entityType = Registry.ENTITY_TYPE.byId(entityTypeId); if (entityType == null) { @@ -105,6 +107,7 @@ public class SpawnEntityPacket { if (entity instanceof EntitySpawnExtension ext) { ext.loadAdditionalSpawnData(buf); } + buf.release(); Minecraft.getInstance().level.putNonPlayerEntity(id, entity); entity.lerpMotion(deltaX, deltaY, deltaZ); });