# Beta 1.4_01
TeaVM port of Minecraft Alpha Beta 1.4_01 using u50 classes from EaglercraftX

### Download locally: [Singleplayer_Offline_Download_Version.html](javascript/Eaglercraft_Beta_1.4_01.html)

## Technical Details

The game saves worlds to your browser's persistent local storage via [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API), the vanilla MCRegion chunk loader has been rewritten to store chunks as single files instead, without compression to speed up load and save times. These files are then stored in an IndexedDB table in the browser's local storage as ArrayBuffers with string keys describing the coordinates of the chunk.

This is done because there is no efficient way to emulate a `java.nio.RandomAccessFile` using IndexedDB. Browser already implement IndexedDB using a storage system similar to MCRegion by default, which will group many small objects together into single large files. Therefore storing each chunk as a single virtual file in IndexedDB will not cause the severe fragmentation issues and folder lag like the original Minecraft Classic chunk storage did.

This also means that the save format in this port is compatible with Beta 1.3 and Beta 1.7.3, but not with stock Beta 1.4 because it uses MCRegion.

## Compiling

Like the 1.5.2 Eaglercraft (and my 1.6.4 port), just import this entire repository as a gradle project and run `CompileJS.sh`. It will generate a `classes.js` in the `javascript` folder of this repository.

To change any textures and stuff, make your changes in `lwjgl-rundir/resources` and then run `CompileEPK.sh` to generate a new `assets.epk` in the `javascript` folder where `classes.js` is. Copy the new `javascript/assets.epk` onto your website over the old one to update it.

**Make sure you install java and add it to your PATH, or these scripts will not work.**

# Multiplayer
When setting up a multiplayer server use Peyton's [Beta Proxy](https://github.com/PeytonPlayz595/betaProxy/) with a vanilla Beta 1.4_01 server, available [here](https://files.betacraft.uk/server-archive/beta/b1.4_01.jar)

Make sure `online-mode` is set to `false` in the server config, and set the PVN to 10 in the BetaProxy config
