diff --git a/src/main/java/net/minestom/server/network/packet/server/CachedPacket.java b/src/main/java/net/minestom/server/network/packet/server/CachedPacket.java index 5fb96bffb..fd38efcfa 100644 --- a/src/main/java/net/minestom/server/network/packet/server/CachedPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/CachedPacket.java @@ -54,6 +54,9 @@ public final class CachedPacket implements SendablePacket { * but {@link #retrieve()} should be privileged otherwise. */ public @NotNull ServerPacket packet() { + FramedPacket cache; + if (updated == 1 && (cache = packet.get()) != null) + return cache.packet(); // Avoid potential packet allocation return packetSupplier.get(); } diff --git a/src/main/java/net/minestom/server/network/packet/server/FramedPacket.java b/src/main/java/net/minestom/server/network/packet/server/FramedPacket.java index 70cce3fbf..1f38761f9 100644 --- a/src/main/java/net/minestom/server/network/packet/server/FramedPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/FramedPacket.java @@ -14,7 +14,6 @@ import java.nio.ByteBuffer; @ApiStatus.Internal public record FramedPacket(@NotNull ServerPacket packet, @NotNull ByteBuffer body) implements SendablePacket { - public FramedPacket { body = body.position(0).asReadOnlyBuffer(); }