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> { public class HandshakeHandler extends AbstractPacketHandler<HandshakePacket> {
private final Provider<StatusHandler> statusHandlerProvider; private final Provider<StatusHandler> statusHandlerProvider;
private final Provider<PingHandler> pingHandlerProvider;
@Override @Override
protected void channelRead1(ChannelHandlerContext ctx, HandshakePacket packet) { protected void channelRead1(ChannelHandlerContext ctx, HandshakePacket packet) {
log.info("{}", packet); log.info("{}", packet);
ctx.channel().attr(ATTR_STATE).set(packet.getNextState()); 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.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import mc.protocol.ProtocolConstant; import mc.protocol.ProtocolConstant;
import mc.protocol.State;
import mc.protocol.dto.ServerInfo; import mc.protocol.dto.ServerInfo;
import mc.protocol.status.client.StatusServerRequest; import mc.protocol.status.client.StatusServerRequest;
import mc.protocol.status.server.StatusServerResponse; import mc.protocol.status.server.StatusServerResponse;
import mc.protocol.text.Text; import mc.protocol.text.Text;
import static mc.server.network.impl.NettyConstants.ATTR_STATE;
@Slf4j @Slf4j
@RequiredArgsConstructor(onConstructor = @__({ @Inject })) @RequiredArgsConstructor(onConstructor = @__({ @Inject }))
public class StatusHandler extends AbstractPacketHandler<StatusServerRequest> { public class StatusHandler extends AbstractPacketHandler<StatusServerRequest> {
@@ -32,7 +29,6 @@ public class StatusHandler extends AbstractPacketHandler<StatusServerRequest> {
StatusServerResponse response = new StatusServerResponse(); StatusServerResponse response = new StatusServerResponse();
response.setServerInfoDto(serverInfo); response.setServerInfoDto(serverInfo);
ctx.channel().writeAndFlush(response)/*.channel().disconnect()*/; ctx.channel().writeAndFlush(response);
ctx.channel().attr(ATTR_STATE).set(State.PLAY); //TODO просто что бы был UnknownPacket
} }
} }