Skip to content

Instantly share code, notes, and snippets.

@Elletra
Created June 8, 2021 23:28
Show Gist options
  • Save Elletra/61d4fd6b8650c36e27b5ca6674b8f6b3 to your computer and use it in GitHub Desktop.
Save Elletra/61d4fd6b8650c36e27b5ca6674b8f6b3 to your computer and use it in GitHub Desktop.
Updated Greek2Me Linux Hosting Script
#!/bin/sh
## Blockland Dedicated Server Launcher
## Written by Greek2me.
# Define defaults.
attach_screen=false
game_mode="Custom"
server_mode="dedicated"
server_number=-1
server_path="$HOME/blockland-server"
server_port=
server_token=
# Parse arguments.
OPTIND=1
while getopts "ac:d:g:ln:p:t:" opt; do
case "$opt" in
a) attach_screen=true
;;
c) server_customArgs=$OPTARG
;;
d) server_path=$OPTARG
;;
g) game_mode=$OPTARG
;;
l) server_mode="dedicatedLAN"
;;
n) server_number=$OPTARG
;;
p) server_port=-port $OPTARG
;;
t) server_token=$OPTARG
;;
esac
done
shift $((OPTIND-1))
[ "$1" = "--" ] && shift
# Make sure they specified the required dToken.
if [ -z "$server_token" ]; then
echo "No dToken specified! Please specify one with -t"
exit 1
fi
# Validate the server path.
if [ ! -f "$server_path/Blockland.exe" ]; then
echo "No Blockland server was found at $server_path."
exit 1
fi
# Determine which server number this is.
if [ "$server_number" -lt 0 ]; then
server_number=$(screen -list | grep -c blockland-server)
fi
# Launch the server.
WINEDEBUG=-msvcrt screen -dmS blockland-server$server_number xvfb-run -a wine wineconsole --backend=curses $server_path/Blockland.exe ptlaaxobimwroe -$server_mode -dtoken $server_token -gamemode $game_mode $server_port $server_customArgs
sleep 1
# Check that the server exists.
if screen -list | grep -q "blockland-server$server_number"; then
echo "Starting server $server_number"
echo " > Running game mode $game_mode"
else
echo "Failed to start server."
exit 1
fi
# Attach to the server.
if [ "$attach_screen" = true ]; then
screen -x blockland-server$server_number
if [ $? -gt 0 ]; then
echo "Failed to attach to server."
fi
fi
@Elletra
Copy link
Author

Elletra commented Jun 8, 2021

Added support for the dToken argument and also silenced an annoying error message.

Latest versions of Wine don't seem to work with Blockland, so I'd recommend using 5.0.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment