package protocolsupportpocketstuff.packet.play; import io.netty.buffer.ByteBuf; import org.bukkit.World.Environment; import org.bukkit.util.Vector; import protocolsupport.protocol.ConnectionImpl; import protocolsupport.protocol.serializer.VarNumberSerializer; import protocolsupport.protocol.typeremapper.pe.PEPacketIDs; import protocolsupportpocketstuff.packet.PEPacket; public class DimensionPacket extends PEPacket { private Environment enviroment; private Vector position; public DimensionPacket() { } public DimensionPacket(Environment environment, Vector position) { this.enviroment = environment; this.position = position; } @Override public int getPacketId() { return PEPacketIDs.CHANGE_DIMENSION; } @Override public void toData(ConnectionImpl connection, ByteBuf serializer) { VarNumberSerializer.writeSVarInt(serializer, toPocketDimension(enviroment)); serializer.writeFloat((float) position.getX()); serializer.writeFloat((float) position.getY()); serializer.writeFloat((float) position.getZ()); serializer.writeBoolean(true); //unused value } @Override public void readFromClientData(ConnectionImpl connection, ByteBuf clientData) { } private static int toPocketDimension(Environment dimId) { switch (dimId) { case NETHER: { return 1; } case THE_END: { return 2; } case NORMAL: { return 0; } default: { throw new IllegalArgumentException(String.format("Unknown dim id %s", dimId)); } } } }