Code Monkey home page Code Monkey logo

zenithproxy's Introduction

ZenithProxy

Discord

Minecraft Minecraft Minecraft Code size GitHub repo size Downloads Lines of Code

Minecraft proxy/bot intended for use on 2b2t.org.

Unlike a traditional MC bot, you can login to it like a normal MC server and control the account.

The primary purpose is to have accounts always online in-game and securely shared by multiple people.

This project is also used to support the 2b2t.vc API and Discord Bot.

What is a proxy?
This proxy itself consists of two components:
1. A Minecraft Server ("Proxy Server")
2. A Minecraft Client ("Proxy Client")

Players use a Minecraft client to connect to the Proxy Server as you would a normal MC server.
The Proxy Client connects to a destination MC server (i.e. 2b2t.org).
The Player's packets to the Proxy Server get forwarded to the Proxy Client which forwards them to the destination
MC server.

Player MC Client -> Proxy Server -> Proxy Client -> MC Server

When no Player Client is connected the Proxy Client can still act as a bot: moving around, chatting, etc.
How does it work?
The Proxy caches the client's world state including chunks, entities, other players, etc. to allow Player Clients to connect at any time.

The Proxy is also able to read/modify/cancel/send arbitrary packets in either direction at any time. This is used to simulate
player movements, spectator mode, discord chat relay, and more.

Features

  • High performance and efficiency on minimal hardware, <300MB RAM per java instance or <150MB on linux.
  • Integrated ViaVersion
    • Can connect to (almost) any MC server and players can connect with (almost) any MC client
  • Secure Whitelist system - share MC accounts without sharing passwords
  • Extensive Discord Bot integration for management and monitoring
    • Chat relay
    • Customizable pings, alerts, and notifications. e.g. Player in visual range alerts
  • Command System - Discord, In-game, and Terminal
    • 25+ commands and modules to configure every feature
  • Spectator mode
    • Multiple players can connect to the proxy and spectate the player
  • Advanced AntiAFK with full player movement simulation
  • Modules including AutoEat, AutoDisconnect, AutoReconnect, AutoRespawn, AutoTotem, KillAura, Spammer, AutoReply
  • Many, many, more features.

Getting Started

Setup and Download

System Requirements

  1. Linux, Windows, or Mac computer. I recommend using a VPS (droplet) from DigitalOcean:
  2. Java 21+ (Not required for linux release channel on supported CPU)
    • The ZenithProxy launcher will install Java 21 automatically if not already installed

Launcher

  1. Download the launcher zip for your system
    • For other systems, download the Python version (Universal). Requires Python 3.10+
  2. Unzip the file.
  3. Double click or run the launcher executable in a terminal:
    • Windows: .\launch.exe
    • Linux/Mac: ./launch
    • (Terminal Only) Python Universal: ./launch.sh (Linux/Mac) or .\launch.bat (Windows)
How do I download a file from a Linux terminal?
  • Use wget in the terminal
  • Example: wget https://github.com/rfresh2/ZenithProxy/releases/download/launcher-v3/ZenithProxy-launcher-linux-amd64.zip
Recommended unzip tools
Recommended Terminals

Run

  • The launcher will ask for all configuration on first launch
    • Or run the launcher with the --setup flag. e.g. .\launch.exe --setup
  • Use the connect command to link an MC account and log in once ZenithProxy is launched
  • Command Prefixes:
    • Discord: . (e.g. .help)
    • In-game: / OR ! -> (e.g. /help)
    • Terminal: N/A -> (e.g. help)

Running on Linux Servers

See the Linux Guide

I highly recommend using a terminal multiplexer - a program that manages terminal sessions.

If you do not use one, ZenithProxy will be killed after you exit your SSH session.

Configuration

Release Channels

  • (Default) java - Supports all operating systems
  • (Recommended) linux - Linux native x86_64 executable. ~50% reduced memory usage and instant startup

DNS Setup

  • To use a domain name you need the following DNS records:
    • an A record to the public IP address of your server Example
    • an SRV record for _minecraft._tcp with the port and the A record as its target. Example

Discord Bot Setup

  • Create a discord bot here: discord.com/developers
  • Enable Message Content Intent under the "Bot" tab. Example
  • Invite the discord bot to a server.
  • Create a role for users to manage the proxy, a channel to manage the proxy in, and a channel for the chat relay. The bot's role must have permissions to send and receive messages in both channels
  • Configure in ZenithProxy using the discord command. Or run the launcher with the --setup flag.

Running Multiple Instances

Create a new folder for each instance with its own copy of the launcher files. Example

Instances must be independently run and configured. i.e. separate terminal sessions, discord bots, ports, config files, etc.

See the Linux Guide for help copying files, creating folders, etc.

2b2t Limits

2b2t limits accounts without priority queue based on:

  1. Accounts currently connected per IP address
  2. In-game session time, excluding time in queue.

Current limits are documented in a discord channel

Special Thanks

zenithproxy's People

Contributors

bradcarnage avatar damatrix avatar dependabot[bot] avatar emotionallove avatar hpfxd avatar ironexception avatar manaball123 avatar natopotato390 avatar odpay avatar pothemagicdragon avatar rfresh2 avatar unzorz avatar vademon avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.