diff --git a/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/connector/BallKeepAliveHandler.java b/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/connector/BallKeepAliveHandler.java index cfbcc6e..3e868a0 100644 --- a/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/connector/BallKeepAliveHandler.java +++ b/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/connector/BallKeepAliveHandler.java @@ -2,19 +2,23 @@ package cn.hamster3.mc.plugin.ball.common.connector; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.SimpleUserEventChannelHandler; +import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.handler.timeout.IdleStateEvent; @ChannelHandler.Sharable -public class BallKeepAliveHandler extends SimpleUserEventChannelHandler { +public class BallKeepAliveHandler extends ChannelInboundHandlerAdapter { public static final BallKeepAliveHandler INSTANCE = new BallKeepAliveHandler(); private BallKeepAliveHandler() { - super(true); + super(); } @Override - protected void eventReceived(ChannelHandlerContext context, IdleStateEvent event) { - context.channel().writeAndFlush("ping"); + public void userEventTriggered(ChannelHandlerContext context, Object event) throws Exception { + if (event instanceof IdleStateEvent) { + context.channel().writeAndFlush("ping"); + return; + } + super.userEventTriggered(context, event); } }