Skip to content

Commit

Permalink
Update #0 - First Release
Browse files Browse the repository at this point in the history
  • Loading branch information
lax1dude committed Dec 25, 2022
0 parents commit e7179fa
Show file tree
Hide file tree
Showing 2,154 changed files with 256,324 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#
# https://help.github.com/articles/dealing-with-line-endings/
#

*.bat text eol=crlf
*.sh text eol=lf
gradlew text eol=lf
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
buildtools_config.json
MinecraftSrc.zip
/MinecraftSrc/*
/pullrequest_merged_*
/patches.*
/mcp918/*
!/mcp918/readme.txt
!/mcp918/assetsIndexTransformer.json
/rundir/*
/##TEAVM.TMP##/*
553 changes: 553 additions & 0 deletions CREDITS

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions CompileLatestClient.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@echo off
title CompileLatestClient
java -cp "buildtools/BuildTools.jar" net.lax1dude.eaglercraft.v1_8.buildtools.gui.CompileLatestClientGUI
del /S /Q "##TEAVM.TMP##\*"
rmdir /S /Q "##TEAVM.TMP##"
pause
3 changes: 3 additions & 0 deletions CompileLatestClient.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh
java -cp "buildtools/BuildTools.jar" net.lax1dude.eaglercraft.v1_8.buildtools.gui.CompileLatestClientGUI
rm -rf "##TEAVM.TMP##"
64 changes: 64 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@

Copyright (c) 2022 LAX1DUDE. All Rights Reserved.

WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES NORMALLY
FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED TO SHARE,
DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE SOFTWARE IN THIS
REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.

NOT FOR COMMERCIAL OR MALICIOUS USE

Prohibited sharing, distribution, and repurposing these files includes but is not
limited to: Publicly sharing or distributing any significant portion, modified or
unmodified, of any source code files produced by the buildtools commands without
minification or obfuscation, with the exception of patch files. Publicly
repurposing, without permission, the source code for any file which is a part of
the Eaglercraft runtime, as in any additional source files required for output of
buildtools commands to run on a specific platform. Publicly repurposing, without
permission, any resource file found in the project's default resource pack that
does not exist in vanilla Minecraft resource packs. And, additionally, publicly
repurposing, without permission, any data produced by the act of compiling or
converting the files described in these previous three cases, besides the compiled
or minified application (the 'game') itself.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

Prohibited commercial use includes selling access to any files or data (including
the game itself) contained or produced by this repository, requiring the direct
forced viewing of advertisement presented when a user attempts to load a compiled
version of this project (or follow a hyperlink to the project's source or files
derived from it, examples include using adfoc.us or adf.ly on your site), and
selling content in any form that can only be accessed through the use of this
project or files produced by or derived from it. Making a pay-to-win multiplayer
server, for example, would be prohibited under these terms.

Malicious use includes creating and/or distributing modified versions of the
game's 1.8 client (often referred to as "hacked clients") which give you an unfair
advantage on multiplayer servers, creating and/or distributing modified clients
which allow you to exploit bugs in EaglercraftXBungee or Eagler-compatible server
software, creating and/or distributing modified clients which allow you to exploit
bugs in Minecraft servers or Minecraft-compatible server software, or creating
and/or distributing modified clients which allow you to exploit bugs in portions of
any other software used in companion with EaglerXBungee or on an Eagler-compatible
server (e.g. VIAaaS, NGINX, Caddy)

Distribution of any file or a product of compilation or conversion covered by this
document must retain all existing copyright notices found within the file and
folders before any modifications were made.

BY VIOLATING THESE TERMS YOU AGREE TO A BLOCK/BAN FROM ALL SOURCES OF DOCUMENTATION
AND SUPPORT FOR THIS PROJECT, PERMISSION TO USE THESE FILES WAS GIVEN TO YOU IN
GOOD FAITH THAT THE WORK WILL NOT BE ABUSED, AND VIOLATING THIS AGREEMENT IS A
DEMONSTRATION OF A LACK OF RESPECT AND GOOD INTENTIONS ON BEHALF OF YOUR EFFORTS TO
LEARN HOW TO USE THESE TOOLS CORRECTLY AND IS JUSTIFICATION FOR YOUR EXCLUSION FROM
ANY AND ALL SOURCES OF DOCUMENTATION OR SUPPORT THAT WILL ASSIST YOU TO CONTINUE TO
VIOLATE THESE TERMS
67 changes: 67 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# EaglercraftX 1.8

### Play real Minecraft 1.8 in your browser, currently only supports multiplayer

![EaglercraftX 1.8 Screenshot Main Menu](https://g.deev.is/eaglercraft/eaglerx-480p.png)

## ATTENTION MOJANG/MICROSOFT EMPLOYEE ASSIGNED TO STALK ME:

### THIS REPOSITORY DOES NOT CONTAIN YOUR INTELLECTUAL PROPERTY

### FILING A FALSE DMCA IS ILLEGAL AND IMMORAL

### 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**
- **Source code for an OpenGL 1.3 emulator built on top of WebGL 2.0**
- **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**

### This repository does NOT contain:

- **Any portion of the decompiled Minecraft 1.8 source code or resources**
- **Any portion of Mod Coder Pack and it's config files**
- **Data that can be used alone to reconstruct portions of the game's source code**
- **Code configured by default to allow users to play without owning a copy of Minecraft**

## Getting Started:

### 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

## Making a Server:

**EaglercraftX 1.8's server is a BungeeCord/Waterfall PLUGIN, not an entire "fork" of bungeecord like the 1.5 Eaglerbungee was, and I can't believe I have to clarify this too but the EaglerXBungee 1.8 plugin is not compatible with the old 1.5 bungee, you must migrate to the latest version of official BungeeCord/Waterfall to use it**

Simply set up the latest version of BungeeCord or Waterfall and download [EaglerXBungee-Latest.jar](https://gitlab.com/lax1dude/eaglercraftx-1.8/-/raw/main/gateway/EaglercraftXBungee/EaglerXBungee-Latest.jar) and place it in the plugins directory.

Then to actually log in to the server with Eaglercraft, first join your server using vanilla Minecraft Java Edition 1.8 and run the new `/eagler` command to set a password. Then leave the server and switch to your EaglercraftX client.

Set your EaglercraftX username to the same username as the vanilla minecraft account you set the password with, then when you try to join your server it will present you with a login screen where you can enter the password you set. If the password is correct it will let you join the server.

**NOTE: If you set `online_mode` to `false` on BungeeCord/Waterfall's config.yml, the password system will be disabled and you will be able to join with any username without setting a password like Eaglercraft 1.5. This should only ever be used for testing.**

A config guide will be added here too eventually

## Contributing:

This part of the guide is incomplete

## Developing a Client:

There is currently no system in place to make forks of 1.8 and merge commits made to the patch files in this repository with the patch files or workspace of the fork, you're on your own if you try to keep a fork of this repo for reasons other than to contribute to it
4 changes: 4 additions & 0 deletions build_clean_tmp.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@echo off
title BuildTools: clean
java -jar buildtools/BuildTools.jar clean
pause
2 changes: 2 additions & 0 deletions build_clean_tmp.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
java -jar buildtools/BuildTools.jar clean
4 changes: 4 additions & 0 deletions build_help.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@echo off
title BuildTools: help
java -jar buildtools/BuildTools.jar help
pause
2 changes: 2 additions & 0 deletions build_help.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
java -jar buildtools/BuildTools.jar help
4 changes: 4 additions & 0 deletions build_init.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@echo off
title BuildTools: init
java -jar buildtools/BuildTools.jar init
pause
2 changes: 2 additions & 0 deletions build_init.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
java -jar buildtools/BuildTools.jar init
4 changes: 4 additions & 0 deletions build_make_pullrequest.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@echo off
title BuildTools: pullrequest
java -jar buildtools/BuildTools.jar pullrequest
pause
2 changes: 2 additions & 0 deletions build_make_pullrequest.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
java -jar buildtools/BuildTools.jar pullrequest
4 changes: 4 additions & 0 deletions build_make_unpatched.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@echo off
title BuildTools: unpatched
java -jar buildtools/BuildTools.jar unpatched
pause
2 changes: 2 additions & 0 deletions build_make_unpatched.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
java -jar buildtools/BuildTools.jar unpatched
4 changes: 4 additions & 0 deletions build_make_workspace.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@echo off
title BuildTools: workspace
java -jar buildtools/BuildTools.jar workspace
pause
2 changes: 2 additions & 0 deletions build_make_workspace.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
java -jar buildtools/BuildTools.jar workspace
4 changes: 4 additions & 0 deletions build_merge_direct.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@echo off
title BuildTools: merge_direct
java -jar buildtools/BuildTools.jar merge_direct
pause
2 changes: 2 additions & 0 deletions build_merge_direct.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
java -jar buildtools/BuildTools.jar merge_direct
4 changes: 4 additions & 0 deletions build_merge_pullrequest.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@echo off
title BuildTools: merge
java -jar buildtools/BuildTools.jar merge
pause
2 changes: 2 additions & 0 deletions build_merge_pullrequest.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
java -jar buildtools/BuildTools.jar merge
4 changes: 4 additions & 0 deletions build_test_pullrequest.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@echo off
title BuildTools: pullrequest_test
java -jar buildtools/BuildTools.jar pullrequest_test
pause
2 changes: 2 additions & 0 deletions build_test_pullrequest.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
java -jar buildtools/BuildTools.jar pullrequest_test
Binary file added buildtools/BuildTools.jar
Binary file not shown.
Binary file added buildtools/Java11Check.jar
Binary file not shown.
4 changes: 4 additions & 0 deletions buildtools/MAINFEST-README-PLEASE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

when you export the BuildTools source as a jar you must copy the "MANIFEST.MF" file in this directory into the "META-INF" directory inside the JAR!!

reasons: limitations in eclipse/intellij, lazyness
4 changes: 4 additions & 0 deletions buildtools/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Manifest-Version: 1.0
Main-Class: net.lax1dude.eaglercraft.v1_8.buildtools.EaglerBuildTools
Class-Path: Java11Check.jar deps/asm-signature.jar deps/commons-csv-1.9.0.jar deps/commons-io-2.11.0.jar deps/eclipse-formatter.jar deps/java-diff-utils-4.11.jar deps/json-20220320.jar

Binary file added buildtools/TeaVMBridge.jar
Binary file not shown.
Binary file added buildtools/deps/asm-signature.jar
Binary file not shown.
Binary file added buildtools/deps/commons-csv-1.9.0-javadoc.jar
Binary file not shown.
Binary file added buildtools/deps/commons-csv-1.9.0.jar
Binary file not shown.
Binary file added buildtools/deps/commons-io-2.11.0-javadoc.jar
Binary file not shown.
Binary file added buildtools/deps/commons-io-2.11.0.jar
Binary file not shown.
Binary file added buildtools/deps/eclipse-formatter.jar
Binary file not shown.
Binary file added buildtools/deps/java-diff-utils-4.11-javadoc.jar
Binary file not shown.
Binary file added buildtools/deps/java-diff-utils-4.11.jar
Binary file not shown.
Binary file added buildtools/deps/json-20220320-javadoc.jar
Binary file not shown.
Binary file added buildtools/deps/json-20220320.jar
Binary file not shown.
Binary file added buildtools/production-favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
48 changes: 48 additions & 0 deletions buildtools/production-index-ext.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Play minecraft 1.8 in your browser" />
<meta name="keywords" content="eaglercraft, eaglercraftx, minecraft, 1.8, 1.8.8" />
<title>EaglercraftX 1.8</title>
<meta property="og:locale" content="en-US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="EaglercraftX 1.8" />
<meta property="og:description" content="Play minecraft 1.8 in your browser" />
<meta property="og:image" content="favicon.png" />
<link type="image/png" rel="shortcut icon" href="favicon.png" />
<script type="text/javascript" src="classes.js"></script>
<script type="text/javascript" src="fix-webm-duration.js"></script>
<script type="text/javascript">
"use strict";
window.addEventListener("load", () => {
if(document.location.href.startsWith("file:")) {
alert("HTTP please, do not open this file locally, run a local HTTP server and load it via HTTP");
}else {
var opts = window.eaglercraftXOpts;

if(typeof opts === "function") window.eaglercraftXOpts = opts = opts();
if(typeof opts === "undefined") window.eaglercraftXOpts = opts = {};

if(!opts.container) opts.container = "game_frame";
if(!opts.assetsURI) opts.assetsURI = "assets.epk";
if(!opts.localesURI) opts.localesURI = "lang/";

if(!opts.joinServer) {
var q = window.location.search;
if(typeof q === "string" && q.startsWith("?")) {
q = new URLSearchParams(q);
var s = q.get("server");
if(s) opts.joinServer = s;
}
}

main();
}
});
</script>
</head>
<body style="margin:0px;width:100vw;height:100vh;overflow:hidden;" id="game_frame">
</body>
</html>
52 changes: 52 additions & 0 deletions buildtools/production-index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Play minecraft 1.8 in your browser" />
<meta name="keywords" content="eaglercraft, eaglercraftx, minecraft, 1.8, 1.8.8" />
<title>EaglercraftX 1.8</title>
<meta property="og:locale" content="en-US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="EaglercraftX 1.8" />
<meta property="og:description" content="Play minecraft 1.8 in your browser" />
<meta property="og:image" content="favicon.png" />
<link type="image/png" rel="shortcut icon" href="favicon.png" />
<script type="text/javascript" src="classes.js"></script>
<script type="text/javascript" src="fix-webm-duration.js"></script>
<script type="text/javascript">
"use strict";
window.addEventListener("load", () => {
if(document.location.href.startsWith("file:")) {
alert("HTTP please, do not open this file locally, run a local HTTP server and load it via HTTP");
}else {

// %%%%%%%%% launch options %%%%%%%%%%%%

window.eaglercraftXOpts = {
container: "game_frame",
assetsURI: "assets.epk",
localesURI: "lang/",
servers: [
/* example: { addr: "ws://localhost:8081/", name: "Local test server" } */
]
};

// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

var q = window.location.search;
if(typeof q === "string" && q.startsWith("?")) {
q = new URLSearchParams(q);
var s = q.get("server");
if(s) window.eaglercraftXOpts.joinServer = s;
}

main();

}
});
</script>
</head>
<body style="margin:0px;width:100vw;height:100vh;overflow:hidden;" id="game_frame">
</body>
</html>
Loading

0 comments on commit e7179fa

Please sign in to comment.