From 8abcd9cbd03f7a6f8b651ab1660f251381751acc Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Sun, 23 Mar 2025 00:35:19 +0800 Subject: [PATCH] =?UTF-8?q?fix(bukkit):=20=E4=BF=AE=E5=A4=8DreceivePacket?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E5=87=BA=E7=8E=B0=E7=9A=84=E6=BD=9C=E5=9C=A8?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/network/BukkitNetworkManager.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java index c37cec1c3..606f31b5a 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java @@ -270,15 +270,23 @@ public class BukkitNetworkManager implements NetworkManager, Listener { public void receivePacket(@NotNull NetWorkUser player, Object packet) { Channel channel = player.nettyChannel(); - List handlerNames = channel.pipeline().names(); - if (handlerNames.contains("decompress")) { - channel.pipeline().context("decompress").fireChannelRead(packet); - } else { - if (handlerNames.contains("decrypt")) { - channel.pipeline().context("decrypt").fireChannelRead(packet); + if (channel.isOpen()) { + List handlerNames = channel.pipeline().names(); + if (handlerNames.contains("via-encoder")) { + channel.pipeline().context("via-decoder").fireChannelRead(packet); + } else if (handlerNames.contains("ps_decoder_transformer")) { + channel.pipeline().context("ps_decoder_transformer").fireChannelRead(packet); + } else if (handlerNames.contains("decompress")) { + channel.pipeline().context("decompress").fireChannelRead(packet); } else { - channel.pipeline().context("splitter").fireChannelRead(packet); + if (handlerNames.contains("decrypt")) { + channel.pipeline().context("decrypt").fireChannelRead(packet); + } else { + channel.pipeline().context("splitter").fireChannelRead(packet); + } } + } else { + ((ByteBuf) packet).release(); } }