61 lines
1.5 KiB
Bash
61 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
cd /data
|
|
|
|
if [[ "$BL_INST_FORCE" -eq 1 ]] || [ ! -f "Blockland.exe" ]; then
|
|
source "install-bl"
|
|
fi
|
|
|
|
if [ -z "$BL_PORT" ]; then
|
|
echo "Please provide a port by setting BL_PORT"
|
|
exit -1
|
|
fi
|
|
|
|
if [ -z "$BL_GAMEMODE" ]; then
|
|
echo "Please provide a gamemode by setting BL_GAMEMODE"
|
|
exit -1
|
|
fi
|
|
|
|
if [ -z "$BL_SERVER_NAME" ]; then
|
|
echo "Please provide a server name by setting BL_SERVER_NAME"
|
|
exit -1
|
|
fi
|
|
|
|
if [[ "$BL_MAX_PLAYERS" -lt 1 ]]; then
|
|
echo "BL_MAX_PLAYERS must be greater than 0"
|
|
exit -1
|
|
fi
|
|
|
|
if [[ "$BL_DEDI_LAN" -eq 0 ]]; then
|
|
if [ -z "$BL_DTOKEN" ]; then
|
|
echo "Please provide a dtoken by setting BL_DTOKEN"
|
|
exit -1
|
|
fi
|
|
|
|
dedi=dedicated
|
|
else
|
|
dedi=dedicatedLAN
|
|
fi
|
|
|
|
unset DISPLAY
|
|
|
|
# If the wine prefix doesn't exist, create it using wineboot
|
|
# rather than having it be created by launching Blockland,
|
|
# as Blockland will hang otherwise.
|
|
if [ ! -d "$HOME/.wine" ]; then
|
|
echo "Creating wine prefix..."
|
|
wineboot -i
|
|
|
|
# Annoyingly, if Blockland is launched too quickly after wineboot,
|
|
# CreateWindowExA fails which means winsockWindow in winNet.cc@184
|
|
# in TGE is set to NULL. This causes all networking in Blockland
|
|
# to not function correctly, as WinsockProc will not be called.
|
|
echo "Waiting for wine to fully init..."
|
|
sleep 3
|
|
fi
|
|
|
|
echo "Launching Blockland..."
|
|
xvfb-run -a wine "Blockland.exe" ptlaaxobimwroe -${dedi} -port $BL_PORT -dtoken $BL_DTOKEN -gamemode $BL_GAMEMODE -serverName $BL_SERVER_NAME -maxPlayers $BL_MAX_PLAYERS $BL_EXTRA_ARGS
|