Updated singleplayer build script

This commit is contained in:
ceikry 2022-06-01 19:24:45 -05:00
parent 9ee3393206
commit b1623587e4

View file

@ -1,50 +1,65 @@
#!/bin/bash
echo "Cloning latest build..."
if [ -f gradlew ]
then
chmod +x gradlew
mkdir -p Single-Player
remote="https://gitlab.com/2009scape/2009scape"
echo Building Client...
cd Client
../gradlew jar
cd ..
cp Client/build/libs/client-1.0.0.jar Single-Player/client.jar
echo
tag=$(git ls-remote --tags --exit-code --refs "$remote" | sed -E 's/^[[:xdigit:]]+[[:space:]]+refs\/tags\/(.+)/\1/g' | sort -t'-' -k3,3n -k1,1M -k2,2n | tail -1)
echo Building Management-Server...
cd Management-Server
../gradlew jar
cd ..
cp Management-Server/build/libs/managementserver-1.0.0.jar Single-Player/ms.jar
echo
echo "Selected tag: $tag"
echo Building Server...
cd Server
../gradlew jar
cd ..
cp Server/build/libs/server-1.0.0.jar Single-Player/server.jar
echo
# Clone as shallowly as possible. Remote is the last argument.
git -c advice.detachedHead=false clone --branch "$tag" --depth 1 --quiet "$remote"
echo Copying server data...
rm -rf Single-Player/data
cp -R Server/data Single-Player/data
cp -R Management-Server/managementprops Single-Player/managementprops
cp Server/db_exports/*.sql Single-Player/data
# Set Debug/Dev mode to false on single player server config
cat Server/worldprops/default.json | sed -e 's/\"debug\": true/\"debug\": false/' | sed -e 's/\"dev\": true/\"dev\": false/' > Single-Player/worldprops/default.json
# Replace Live server addresses with localhost
cat Client/config.json | sed -e 's/play.2009scape.org/localhost/' > Single-Player/config.json
echo
echo Done!
else
echo ERR: Run in 2009scape source directory to build
if [ -e "data" ]; then
echo "Backing up existing user data..."
mkdir data-backup
mv data/eco data-backup/eco
mv data/players data-backup/players
mv data/serverstore data-bacup/serverstore
rm -fr data
fi
rm -fr worldprops
rm -fr managementprops
rm ms.jar
rm server.jar
rm client.jar
cd 2009scape
echo "Building Management-Server"
cd Management-Server
sh mvnw -DskipTests package > /dev/null
mv target/*-with-dependencies.jar ../../ms.jar
mv managementprops ../..
cd ..
echo "Building Server (This will probably take a while.)"
cd Server
sh mvnw clean > /dev/null
sh mvnw -DskipTests package > /dev/null
mv target/*-with-dependencies.jar ../../server.jar
mv data ../..
mv worldprops ../..
cd ../..
rm -fr 2009scape
echo "Downloading Client"
wget --quiet "cdn.2009scape.org/2009scape.jar"
mkdir jars
mv 2009scape.jar jars/client.jar
mv server.jar jars
mv ms.jar jars
if [ -e "data-backup" ]; then
echo "Restoring existing user data..."
mv data-backup/eco data/eco
mv data-backup/players data/players
mv data-backup/serverstore data/serverstore
rm -fr data-backup
fi
echo "Modifying server config for singleplayer..."
cat worldprops/default.conf | sed -e 's/dev = true/dev = false/' | sed -e 's/debug = true/debug = false/' | sed -e 's/daily_restart = true/daily_restart = false/' | sed -e 's/activity = "2009scape classic."/activity = "Singleplayer"/' | sed -e 's/bots_influence_ge_price = true/bots_influence_ge_price = false/' > worldprops/sp.conf
mv worldprops/sp.conf worldprops/default.conf