Files
pyMCDPS/deploy.sh

163 lines
3.9 KiB
Bash
Raw Normal View History

2024-10-11 18:12:24 +02:00
#!/bin/bash
2024-10-11 20:40:56 +02:00
2024-10-11 18:12:24 +02:00
# Script in strict mode
2024-10-11 20:46:15 +02:00
set -eu
2024-10-11 18:12:24 +02:00
# --------------------------------------------------------------------------
# Imports
# --------------------------------------------------------------------------
# Beginning Of the Script by cerberus
cat <<EOF
__ __ ____ ____ ____
| \/ / ___|| _ \/ ___|
| |\/| \___ \| | | \___ \\
| | | |___) | |_| |___) |
|_| |_|____/|____/|____/
EOF
2024-10-11 19:50:01 +02:00
# --------------------------------------------------------
# Checking Dependencies
# --------------------------------------------------------
2024-10-11 18:12:24 +02:00
read -p "Is java installed? (y/n): " answer
2024-10-11 20:54:18 +02:00
if ["$answer" == n]; then
2024-10-11 20:26:49 +02:00
# echo "apt blah"
sudo apt update && sudo apt upgrade
sudo apt install -y openjdk-17-jdk
sudo apt install -y openjdk-17-jre-headless tmux
sudo echo "#!/bin/bash" >> /etc/rc.local
sudo echo "exec 1>/tmp/rc.local.log 2>&1" >> /etc/rc.local
sudo echo "set -x " >> /etc/rc.local
sudo chmod a+x /etc/rc.local
2024-10-11 18:12:24 +02:00
fi
# --------------------------------------------------------
# Modloader Selection
# --------------------------------------------------------
echo What Modloader should be used?
modloader=("Forge" "Fabric")
select opt in "${modloader[@]}"
do
case $opt in
"Forge")
break
;;
"Fabric")
echo "Fabric is not supported yet"
exit 1
break
;;
*)
echo "Invalid selection"
;;
esac
done
# --------------------------------------------------------
# Select MC-Version
# --------------------------------------------------------
echo What MC-Version do you want to deploy?
versions=("1.21.1" "1.21" "1.20.6" "1.20.4" "1.20.3" "1.20.2" "1.20.1")
select opt in "${versions[@]}"
do
case $opt in
"1.21.1")
2024-10-11 19:50:01 +02:00
echo "Not Supported yet"
2024-10-11 18:12:24 +02:00
break
;;
"1.21")
2024-10-11 19:50:01 +02:00
echo "Not Supported yet"
2024-10-11 18:12:24 +02:00
break
;;
"1.20.6")
2024-10-11 19:50:01 +02:00
echo "Not Supported yet"
2024-10-11 18:12:24 +02:00
break
;;
"1.20.4")
2024-10-11 19:50:01 +02:00
echo "Not Supported yet"
2024-10-11 18:12:24 +02:00
break
;;
"1.20.3")
2024-10-11 19:50:01 +02:00
echo "Not Supported yet"
2024-10-11 18:12:24 +02:00
break
;;
"1.20.2")
2024-10-11 19:50:01 +02:00
echo "Not Supported yet"
2024-10-11 18:12:24 +02:00
break
;;
"1.20.1")
minecraft_version="1.20.1"
2024-10-11 18:26:42 +02:00
forge_version="47.3.0"
2024-10-11 18:12:24 +02:00
break
;;
*)
echo "Invalid selection"
;;
esac
done
# echo How much RAM do you want to use?
# echo What mods do you want to use?
# echo Which mods do you want to add?
2024-10-11 19:50:01 +02:00
# --------------------------------------------------------
# Installation Misc
# --------------------------------------------------------
# Set Working Directory
working_dir="$HOME/minecraft_server"
2024-10-11 18:26:42 +02:00
2024-10-11 19:50:01 +02:00
# Connecting Versions
2024-10-11 18:12:24 +02:00
mc_forge_version="${minecraft_version}-${forge_version}"
2024-10-11 19:50:01 +02:00
# Creating Installer-URL Template
2024-10-11 18:26:42 +02:00
URL="https://maven.minecraftforge.net/net/minecraftforge/forge/${mc_forge_version}/forge-${mc_forge_version}-installer.jar"
2024-10-11 19:50:01 +02:00
# --------------------------------------------------------
# Downloading Installer
# --------------------------------------------------------
2024-10-11 18:26:42 +02:00
2024-10-11 19:50:01 +02:00
echo "Downloading installer...."
mkdir ${working_dir}
cd ${working_dir}
wget "$working_dir" "$URL" > /dev/null 2>&1 & # no output for wget
2024-10-11 18:55:08 +02:00
2024-10-11 19:50:01 +02:00
# Waiting for download to finish
2024-10-11 18:49:31 +02:00
PID=$!
2024-10-11 18:55:08 +02:00
(
while kill -0 $PID 2> /dev/null; do
echo "Downloading....."
sleep 2
done
echo "Download finished."
2024-10-11 18:58:35 +02:00
) &&
2024-10-11 18:55:08 +02:00
2024-10-11 18:12:24 +02:00
echo "Installing Server"
2024-10-11 18:18:02 +02:00
sleep 2
2024-10-11 20:26:49 +02:00
java -jar forge-${mc_forge_version}-installer.jar --installServer
2024-10-11 18:12:24 +02:00
echo "Removing Installer"
2024-10-11 20:26:49 +02:00
rm "forge-${mc_forge_version}-installer.jar"
2024-10-11 18:12:24 +02:00
2024-10-11 18:48:21 +02:00
touch "${working_dir}/start_server.sh"
2024-10-11 18:12:24 +02:00
chmod +x "${working_dir}/start_server.sh"
2024-10-11 18:48:21 +02:00
2024-10-11 19:50:01 +02:00
echo "Creating Start Script"
#!/bin/bash
echo "#!/bin/bash" > "${working_dir}/start_server.sh"
echo "tmux new -s minecraft_server "java @user_jvm_args.txt @libraries/net/minecraftforge/forge/${mc_forge_version}/unix_args.txt '$@'"" >> "${working_dir}/start_server.sh"