diff --git a/src/main/java/mc/server/network/impl/handler/AbstractPacketHandler.java b/src/main/java/mc/server/network/impl/handler/AbstractPacketHandler.java index 8a4da37..09fa7f8 100644 --- a/src/main/java/mc/server/network/impl/handler/AbstractPacketHandler.java +++ b/src/main/java/mc/server/network/impl/handler/AbstractPacketHandler.java @@ -4,12 +4,11 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import mc.protocol.Packet; -public abstract class AbstractPacketHandler

extends SimpleChannelInboundHandler { +public abstract class AbstractPacketHandler

extends SimpleChannelInboundHandler

{ - @SuppressWarnings("unchecked") @Override - protected void channelRead0(ChannelHandlerContext ctx, Packet msg) throws Exception { - channelRead1(ctx, (P) msg); + protected void channelRead0(ChannelHandlerContext ctx, P msg) throws Exception { + channelRead1(ctx, msg); } protected abstract void channelRead1(ChannelHandlerContext ctx, P packet) throws Exception; diff --git a/src/main/java/mc/server/network/impl/handler/StatusHandler.java b/src/main/java/mc/server/network/impl/handler/StatusHandler.java index 5fff44b..bfe6751 100644 --- a/src/main/java/mc/server/network/impl/handler/StatusHandler.java +++ b/src/main/java/mc/server/network/impl/handler/StatusHandler.java @@ -1,20 +1,38 @@ package mc.server.network.impl.handler; +import com.google.inject.Inject; 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 { @Override protected void channelRead1(ChannelHandlerContext ctx, StatusServerRequest packet) { log.info("{}", packet); - StatusServerResponse response = new StatusServerResponse(); - response.setInfo("some info server text"); + final ServerInfo.Version version = new ServerInfo.Version(); + version.setName(ProtocolConstant.PROTOCOL_VERSION_VALUE); + version.setProtocol(ProtocolConstant.PROTOCOL_VERSION); - ctx.channel().writeAndFlush(response).channel().disconnect(); + final ServerInfo serverInfo = new ServerInfo(); + serverInfo.setVersion(version); + serverInfo.setDescription(Text.of("MC-SERVER 1.8.8")); + + StatusServerResponse response = new StatusServerResponse(); + response.setServerInfoDto(serverInfo); + + ctx.channel().writeAndFlush(response)/*.channel().disconnect()*/; + ctx.channel().attr(ATTR_STATE).set(State.PLAY); //TODO просто что бы был UnknownPacket } }