diff --git a/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/handlers/LoginHandler.java b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/handlers/LoginHandler.java index e66a6b3..f31d4ee 100644 --- a/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/handlers/LoginHandler.java +++ b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/handlers/LoginHandler.java @@ -8,6 +8,7 @@ import io.netty.channel.Channel; import io.netty.channel.ChannelFutureListener; import mc.core.network.proto_1_12_2.State; import mc.core.network.proto_1_12_2.TeleportManager; +import mc.core.network.proto_1_12_2.netty.wrappers.WrapperNetChannel; import mc.core.network.proto_1_12_2.packets.*; import mc.core.player.Look; import mc.core.player.Player; @@ -74,7 +75,7 @@ public class LoginHandler extends AbstractStateHandler implements LoginStateHand pkt3.setFlying(true); pkt3.setGodMode(true); pkt3.setInstantDestroyBlocks(true); - channel.write(pkt2); + channel.write(pkt3); channel.flush(); // Player Position And Look @@ -83,6 +84,9 @@ public class LoginHandler extends AbstractStateHandler implements LoginStateHand pkt4.setLook(player.getLook()); pkt4.setTeleportId(TeleportManager.getInstance().append(player, player.getLocation())); channel.writeAndFlush(pkt4); + + player.setChannel(new WrapperNetChannel(channel)); + playerManager.joinServer(player); } } } diff --git a/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/WrapperNetChannel.java b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/WrapperNetChannel.java new file mode 100644 index 0000000..7838455 --- /dev/null +++ b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/wrappers/WrapperNetChannel.java @@ -0,0 +1,50 @@ +/* + * DmitriyMX + * 2018-06-23 + */ +package mc.core.network.proto_1_12_2.netty.wrappers; + +import io.netty.channel.Channel; +import lombok.RequiredArgsConstructor; +import mc.core.network.NetChannel; +import mc.core.network.SCPacket; +import mc.core.network.proto_1_12_2.packets.KeepAlivePacket; +import mc.core.text.Text; + +import java.util.Random; + +@RequiredArgsConstructor +public class WrapperNetChannel implements NetChannel { + private static final Random RAND = new Random(); + private final Channel channel; + + @Override + public void sendKeepAlive() { + writeAndFlush(new KeepAlivePacket(RAND.nextLong())); + } + + @Override + public void sendTimeUpdate(long value) { + + } + + @Override + public void sendChatMessage(Text text) { + + } + + @Override + public void writeAndFlush(SCPacket pkt) { + channel.writeAndFlush(pkt); + } + + @Override + public void write(SCPacket pkt) { + channel.write(pkt); + } + + @Override + public void flush() { + channel.flush(); + } +}