Skip to content

Protonull/PistomQueue

Repository files navigation

PistomQueue

GitHub GitHub Repo stars

PistomQueue is a standalone implementation of PistonQueue for Minestom. Since the queue login is handled by the proxy, the server is largely just there to host the players while they wait: they'll be whisked off the server again when a slot opens. This is a great use case for Minestom.

Install

You can either use the provided latest build here or you can compile it yourself with JDK 21 by doing:

git clone https://github.com/Protonull/PistomQueue.git
cd PistomQueue
./gradlew build

The resulting jar will be located at: build/libs/PistomQueue-<VERSION>.jar

Usage

You'll need Java 21 or above to run PistomQueue. You need only execute it like so:

java -jar PistomQueue-<VERSION>.jar

Options

PistomQueue permits the following options:

# Don't try to copy paste this script, the comments (and empty lines) break it.

java -jar \
    
    # The server's hostname
    -Dhost="0.0.0.0" \
    
    # The server's port
    -Dport=25565 \
    
    # Whether players should be hidden from one another
    -DhidePlayers=false \
    
    # Whether chatting should be disabled
    -DdisableChat=false \
    
    # Whether to play a chime to players when they're close to the front of the queue
    -DplayXP=true \
    
    # The names of those, separated by commas, who should be exempt from restrictions
    -DexemptedPlayers="FirstPlayer,SecondPlayer,__Third-Player__" \
    
    # What proxy to use, if any:
    # - NONE
    # - BUNGEE
    # - VELOCITY
    -Dproxy="NONE" \
    
    # (OPTIONAL) Your Bungee tokens, assuming you've specified Bungee as your proxy, separated by commas
    -DbungeeTokens="Token1,Token2" \
    
    # (CONDITIONAL) Your Velocity secret, which is required assuming you've specified Velocity as your proxy
    -DvelocitySecret="YourSecret"

Testing

This repo comes with a test-setup that you can run:

  • sh run/proxy/StartProxy.sh: This will start a Velocity proxy with PistonQueue on port 25565.

  • sh run/server/StartServer.sh: This will start a PaperMC target server on port 25570. You accept Minecraft's EULA by running this script.

  • ./gradlew run: This will start PistomQueue on port 25571.