From a1548fd35d4650fc2aff47b4962a6c1151faf907 Mon Sep 17 00:00:00 2001 From: TheMode Date: Tue, 30 Mar 2021 22:42:11 +0200 Subject: [PATCH] Remove packet caching to CacheablePacket#getCache Signed-off-by: TheMode --- .../network/player/NettyPlayerConnection.java | 31 +++---------------- 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/src/main/java/net/minestom/server/network/player/NettyPlayerConnection.java b/src/main/java/net/minestom/server/network/player/NettyPlayerConnection.java index e6aef1096..0efb81a11 100644 --- a/src/main/java/net/minestom/server/network/player/NettyPlayerConnection.java +++ b/src/main/java/net/minestom/server/network/player/NettyPlayerConnection.java @@ -20,8 +20,6 @@ import net.minestom.server.network.packet.server.login.SetCompressionPacket; import net.minestom.server.utils.BufUtils; import net.minestom.server.utils.PacketUtils; import net.minestom.server.utils.cache.CacheablePacket; -import net.minestom.server.utils.cache.TemporaryCache; -import net.minestom.server.utils.cache.TimedBuffer; import net.minestom.server.utils.validate.Check; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -136,32 +134,13 @@ public class NettyPlayerConnection extends PlayerConnection { if (getPlayer() != null) { // Flush happen during #update() if (serverPacket instanceof CacheablePacket && MinecraftServer.hasPacketCaching()) { - final CacheablePacket cacheablePacket = (CacheablePacket) serverPacket; - final UUID identifier = cacheablePacket.getIdentifier(); - - if (identifier == null) { - // This packet explicitly asks to do not retrieve the cache - write(serverPacket, skipTranslating); + // Check if the packet is cached or can be + final FramedPacket cachedPacket = CacheablePacket.getCache(serverPacket); + if (cachedPacket != null) { + write(cachedPacket); } else { - final long timestamp = cacheablePacket.getTimestamp(); - // Try to retrieve the cached buffer - TemporaryCache temporaryCache = cacheablePacket.getCache(); - TimedBuffer timedBuffer = temporaryCache.retrieve(identifier); - - // Update the buffer if non-existent or outdated - final boolean shouldUpdate = timedBuffer == null || - timestamp > timedBuffer.getTimestamp(); - - if (shouldUpdate) { - // Buffer freed by guava cache #removalListener - final ByteBuf buffer = PacketUtils.createFramedPacket(serverPacket, true); - timedBuffer = new TimedBuffer(buffer, timestamp); - temporaryCache.cache(identifier, timedBuffer); - } - - write(new FramedPacket(timedBuffer.getBuffer())); + write(serverPacket, skipTranslating); } - } else { write(serverPacket, skipTranslating); }