Archived
0

add PingHandler

This commit is contained in:
2020-05-13 18:31:57 +03:00
parent c903554d7b
commit 3dfff8c0f2
3 changed files with 16 additions and 6 deletions

View File

@@ -14,12 +14,14 @@ import static mc.server.network.impl.NettyConstants.ATTR_STATE;
public class HandshakeHandler extends AbstractPacketHandler<HandshakePacket> {
private final Provider<StatusHandler> statusHandlerProvider;
private final Provider<PingHandler> pingHandlerProvider;
@Override
protected void channelRead1(ChannelHandlerContext ctx, HandshakePacket packet) {
log.info("{}", packet);
ctx.channel().attr(ATTR_STATE).set(packet.getNextState());
ctx.pipeline().replace("handshake_handler", "status_handler", statusHandlerProvider.get());
ctx.channel().pipeline().replace("handshake_handler", "status_handler", statusHandlerProvider.get());
ctx.channel().pipeline().addAfter("status_handler", "ping_handler", pingHandlerProvider.get());
}
}

View File

@@ -0,0 +1,12 @@
package mc.server.network.impl.handler;
import io.netty.channel.ChannelHandlerContext;
import mc.protocol.status.PingPacket;
public class PingHandler extends AbstractPacketHandler<PingPacket> {
@Override
protected void channelRead1(ChannelHandlerContext ctx, PingPacket packet) {
ctx.writeAndFlush(packet).channel().disconnect();
}
}

View File

@@ -5,14 +5,11 @@ import io.netty.channel.ChannelHandlerContext;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import mc.protocol.ProtocolConstant;
import mc.protocol.State;
import mc.protocol.dto.ServerInfo;
import mc.protocol.status.client.StatusServerRequest;
import mc.protocol.status.server.StatusServerResponse;
import mc.protocol.text.Text;
import static mc.server.network.impl.NettyConstants.ATTR_STATE;
@Slf4j
@RequiredArgsConstructor(onConstructor = @__({ @Inject }))
public class StatusHandler extends AbstractPacketHandler<StatusServerRequest> {
@@ -32,7 +29,6 @@ public class StatusHandler extends AbstractPacketHandler<StatusServerRequest> {
StatusServerResponse response = new StatusServerResponse();
response.setServerInfoDto(serverInfo);
ctx.channel().writeAndFlush(response)/*.channel().disconnect()*/;
ctx.channel().attr(ATTR_STATE).set(State.PLAY); //TODO просто что бы был UnknownPacket
ctx.channel().writeAndFlush(response);
}
}