package jk_5.nailed.server.network.handler; import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import jk_5.nailed.server.network.NettyChannelInitializer; import net.minecraft.network.handshake.client.C00Handshake; import net.minecraft.network.login.server.S00PacketDisconnect; import net.minecraft.util.ChatComponentText; @ChannelHandler.Sharable public class ServerStartingConnectionDestroyer extends SimpleChannelInboundHandler<C00Handshake> { private ServerStartingConnectionDestroyer() { super(false); } public static final ServerStartingConnectionDestroyer INSTANCE = new ServerStartingConnectionDestroyer(); @Override protected void channelRead0(ChannelHandlerContext ctx, C00Handshake packet) throws Exception { if(!NettyChannelInitializer.serverStarting){ ctx.fireChannelRead(packet); ctx.pipeline().remove(this); }else{ ctx.writeAndFlush(new S00PacketDisconnect(new ChatComponentText("Server is still starting! Please wait before connecting!"))).addListener(ChannelFutureListener.CLOSE); } } }