q13x-eaglerproxy/README.md

62 lines
3.4 KiB
Markdown
Raw Permalink Normal View History

2022-12-18 05:39:38 -08:00
# EaglercraftX (1.8.9) WebSocket Proxy
2022-12-28 21:23:39 -08:00
## This repository has been archived as EaglerX's client and bungee [source code](https://gitlab.com/lax1dude/eaglercraftx-1.8) has been released. Please migrate to it if you haven't already!
2022-12-20 18:38:40 -08:00
### Demo: `wss://eaglerx-server.worldeditaxe.repl.co/server` ([EaglerX 1.8.9 client](https://web.arch.lol/mc/1.8.8/) only)
2022-12-20 11:34:41 -08:00
![Two EaglerX clients connected to the same server](./assets/demo.png)
2022-12-18 05:39:38 -08:00
## What is this?
2022-12-20 18:44:02 -08:00
A WebSocket proxy that allows EaglercraftX 1.8 clients to connect to an offline vanilla Minecraft server with (mostly working) Eaglercraft skin support. This is meant to be a replacement for the unreleased official EaglercraftX bungee until it releases. It supports all offline 1.8.9 servers and even online servers when modified!
**Note:** Don't expect magic. Some things may or may not work. While the proxy has shown to be stable and working during testing, you may encounter some bugs.
2022-12-18 05:39:38 -08:00
## Setup Guide
### Prerequisites
* Node.js v12 and up
2022-12-20 11:28:12 -08:00
* An **OFFLINE** 1.8.9-compatible Minecraft server or proxy
2022-12-21 01:18:03 -08:00
### Setup
2022-12-20 11:28:12 -08:00
#### If Repl.it is acceptable, fork the [demo](https://replit.com/@WorldEditAxe/eaglerx-server) and connect to it. All proxy files will be under the `proxy` folder.
2022-12-21 01:43:40 -08:00
1. Download the latest package available on this repository.
2. Open a terminal and go to the folder of the repository. Run `npm i`.
2022-12-18 05:39:38 -08:00
3. Edit `config.js` to configure your proxy. Below is a small breakdown of the configuration file.
```js
export const config = {
2022-12-20 11:28:12 -08:00
// The name of the proxy. (unused, required for MOTD)
name: "Proxy",
// The address to bind the WebSocket server to.
bindHost: "0.0.0.0",
// The port to bind the WebSocket server to.
// Use 80 if security.enabled is false, and 443 when it is true.
bindPort: 80,
// The max amount of concurrent connections allowed at once. (player cap)
2022-12-18 05:39:38 -08:00
maxPlayers: 20,
motd: {
2022-12-20 11:28:12 -08:00
// The file path that leads to an image.
// A 64x64 image is recommended, but any image with a 1:1 ratio will work.
iconURL: "./icon.webp",
2022-12-18 05:39:38 -08:00
// The first line of the MOTD.
l1: "hi",
2022-12-20 11:28:12 -08:00
// The second line of the MOTD.
2022-12-18 05:39:38 -08:00
l2: "lol"
},
server: {
2022-12-20 11:28:12 -08:00
// The hostname/IP of the remote server you want the proxy to connect to.
2022-12-18 05:39:38 -08:00
host: "127.0.0.1",
2022-12-20 11:28:12 -08:00
// The port of the remote server you want the proxy to connect to.
// On most Minecraft server installations, the default port is 25565.
2022-12-18 05:39:38 -08:00
port: 25565
},
security: {
2022-12-20 11:28:12 -08:00
// Set this to true to enable encryption (wss://).
// If you're using Repl.it, there's no need to enable encryption as it comes by default on all repls.
// You will need to obtain certificate files in order to enable encryption.
2022-12-18 05:39:38 -08:00
enabled: false,
2022-12-20 11:28:12 -08:00
// The private key file provided to you by your certificate authority.
2022-12-18 05:39:38 -08:00
key: null,
2022-12-20 11:28:12 -08:00
// The certificate file provided to you by your certificate authority.
2022-12-18 05:39:38 -08:00
cert: null
}
};
```
2022-12-18 05:44:15 -08:00
3. Start your proxy by running `node index.js`.
4. Connect to your server. For the server address, use the folllowing format: `ws://<IP>:<port>`. If you are using encryption, replace `ws://` with `wss://`.
2022-12-21 01:18:03 -08:00
## Creating Issues
2022-12-21 01:17:40 -08:00
When creating a new issue, please:
- Refrain from opening duplicate issues. If your issue is already there, please join in on the conversation there instead!
- Provide a brief description of the issue, what you expected, and what you got instead. Avoid unhelpful and overly short summaries - we need to know what's wrong!