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.
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
You'll need Java 21 or above to run PistomQueue. You need only execute it like so:
java -jar PistomQueue-<VERSION>.jar
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"
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.