Created
June 8, 2021 23:28
-
-
Save Elletra/61d4fd6b8650c36e27b5ca6674b8f6b3 to your computer and use it in GitHub Desktop.
Updated Greek2Me Linux Hosting Script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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