Archived
0

JoinGamePacket

This commit is contained in:
2021-05-02 16:25:31 +03:00
parent a317e3e2c2
commit 3b3a80ca0a
7 changed files with 134 additions and 2 deletions

View File

@@ -2,13 +2,13 @@ package mc.server;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import mc.protocol.ChannelContext;
import mc.protocol.ProtocolConstant;
import mc.protocol.*;
import mc.protocol.model.ServerInfo;
import mc.protocol.packets.PingPacket;
import mc.protocol.packets.client.HandshakePacket;
import mc.protocol.packets.client.LoginStartPacket;
import mc.protocol.packets.client.StatusServerRequestPacket;
import mc.protocol.packets.server.JoinGamePacket;
import mc.protocol.packets.server.LoginSuccessPacket;
import mc.protocol.packets.server.StatusServerResponse;
import mc.protocol.serializer.TextSerializer;
@@ -20,6 +20,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Base64;
import java.util.Collections;
import java.util.Random;
import java.util.UUID;
@Slf4j
@@ -27,6 +28,7 @@ import java.util.UUID;
public class PacketHandler {
private final Config config;
private final Random random = new Random(System.currentTimeMillis());
public void onHandshake(ChannelContext<HandshakePacket> channel) {
channel.setState(channel.getPacket().getNextState());
@@ -62,7 +64,21 @@ public class PacketHandler {
loginSuccessPacket.setUuid(UUID.randomUUID());
loginSuccessPacket.setName(loginStartPacket.getName());
log.info("{}", loginSuccessPacket);
channel.getCtx().writeAndFlush(loginSuccessPacket);
channel.setState(State.PLAY);
JoinGamePacket joinGamePacket = new JoinGamePacket();
joinGamePacket.setEntityId(random.nextInt());
joinGamePacket.setGameMode(GameMode.SPECTATOR);
joinGamePacket.setDimension(0/*Overworld*/);
joinGamePacket.setDifficulty(Difficulty.PEACEFUL);
joinGamePacket.setLevelType(LevelType.FLAT);
log.info("{}", joinGamePacket);
channel.getCtx().write(joinGamePacket);
channel.getCtx().flush();
}
private static String faviconToBase64(Path iconPath) {