EaglerForge/README.md

92 lines
4.4 KiB
Markdown

# EaglerForge
### Play Minecraft 1.8 in your browser, supports singleplayer and multiplayer with a javascript modding API
![EaglercraftX 1.8 Screenshot Main Menu](https://github.com/eaglerforge/EaglerForge/assets/95340057/474f88c5-3574-4cd2-9780-3d55f94a13e7)
### EaglerForge mods menu screenshot
![305109047-1985db59-ed58-4c6c-84cf-51c3ff996fa9](https://github.com/eaglerforge/EaglerForge/assets/95340057/72d73c72-a8ad-429b-b00a-c3e5d9ab0739)
### This repository contains:
- **Utilities to decompile Minecraft 1.8 and apply patch files to it**
- **Source code to provide the LWJGL keyboard, mouse, and OpenGL APIs in a browser**
- **Patch files to mod the Minecraft 1.8 source code to make it browser-compatible**
- **Browser-modified portions of Minecraft 1.8's open-source dependencies**
- **Plugins for Minecraft servers to allow the Eagler client to connect to them**
- **a Javascript Modding API**
### This repository does NOT contain:
- **Any portion of the decompiled Minecraft 1.8 source code or resources**
- **Any portion of Mod Coder Pack and its config files**
- **Data that can be used alone to reconstruct portions of the game's source code**
- **Software configured by default to allow users to play without owning a copy of Minecraft**
## Getting Started:
# NOTE - In order to compile this repo you MUST own a genuine copy of Minecraft: Java Edition
### To compile the latest version of the client, on Windows:
1. Make sure you have at least Java 11 installed and added to your PATH
2. Download (clone) this repository to your computer
3. Double click `CompileLatestClient.bat`, a GUI resembling a classic Windows installer should open
4. Follow the steps shown to you in the new window to finish compiling
### To compile the latest version of the client, on Linux/macOS:
1. Make sure you have at least Java 11 installed
2. Download (clone) this repository to your computer
3. Open a terminal in the folder the repository was cloned to
4. Type `chmod +x CompileLatestClient.sh` and hit enter
5. Type `./CompileLatestClient.sh` and hit enter, a GUI resembling a classic Windows installer should open
6. Follow the steps shown to you in the new window to finish compiling
## Launch Options
The EaglercraftX 1.8 client is configured primarily through a variable called `window.eaglercraftXOpts` that must be set before the client starts up.
The default eaglercraftXOpts values are this:
const relayId = Math.floor(Math.random() * 3);
window.eaglercraftXOpts = {
demoMode: false,
container: "game_frame",
assetsURI: "assets.epk",
localesURI: "lang/",
worldsDB: "worlds",
servers: [
{ addr: "ws://localhost:8081/", name: "Local test server" }
],
relays: [
{ addr: "wss://relay.deev.is/", comment: "lax1dude relay #1", primary: relayId == 0 },
{ addr: "wss://relay.lax1dude.net/", comment: "lax1dude relay #2", primary: relayId == 1 },
{ addr: "wss://relay.shhnowisnottheti.me/", comment: "ayunami relay #1", primary: relayId == 2 }
]
};
### List of available options
- `container:` the ID of the HTML element to create the canvas in **(required)**
- `assetsURI:` the URL of the assets.epk file **(required)**
- `localesURI:` the URL where extra .lang files can be found
- `worldsDB:` the name of the IndexedDB database to store worlds in
- `demoMode:` whether to launch the game in Java edition demo mode
- `servers:` a list of default servers to display on the Multiplayer screen
- `relays:` the default list of shared world relays to use for invites
- `checkShaderGLErrors:` enables more verbose OpenGL error logging for the shaders
- `enableDownloadOfflineButton:` whether to show a "Download Offline" button on the title screen
- `downloadOfflineButtonLink:` overrides the download link for the "Download Offline" button
- `html5CursorSupport:` enables support for showing the CSS "pointer" cursor over buttons
- `allowUpdateSvc:` enables the certificate-based update system
- `allowUpdateDL:` allows the client to download new updates it finds
- `logInvalidCerts:` print update certificates with invalid signatures to console
- `enableSignatureBadge:` shows a badge on the title screen indicating if the digital signature is valid
- `checkRelaysForUpdates:` proprietary feature used in offline downloads
- `mods` a list of mods you want to load into the game when it launches