sudo apt update

sudo apt install openjdk-25-jre -y
sudo apt install nodejs npm -y
sudo apt install unzip -y

mkdir -p minecraft-panel
mkdir -p minecraft-server

pwd > base_directory
base_directory=$(cat base_directory)

wget https://jlp-webseite.ddns.net/files/minecraft/minecraft-panel/minecraft-panel.zip
mv minecraft-panel.zip minecraft-panel
cd minecraft-panel
unzip minecraft-panel.zip
whoami > user



sed -i "s|/home/ubuntu|$base_directory|g" server.js


totalRam=$(awk '/MemTotal/ {printf "%.0f \n", $2/1024}' /proc/meminfo)
systemRam=$((totalRam / 7))
serverRam=$(($totalRam - $systemRam))
echo "TotalRAM = $totalRam"
echo "SystemRAM = $systemRam"
echo "ServerRAM = $serverRam"

touch ram
echo "${serverRam}M" > ram


echo "Bitte Port des Java Servers eingeben!"
echo "Der Port davor ist belegt und der Port danach ist der Bedrock Port!"
read port

touch port
echo "$port" > port
WEB_PORT=$(($port - 1))
FTP_PORT=$(($port + 2))

sed -i "s/const PORT = 3000;/const PORT = $WEB_PORT;/" server.js


sudo sed -i "/^#\?Port /a Port $FTP_PORT" /etc/ssh/sshd_config


cd ..

cd minecraft-server
echo "Bitte Minecraft Version eingeben!"
read version
bash <(wget -O - https://jlp-webseite.ddns.net/mcsvr/automation/NoUserInput/NoAutomatedStart/mcsvr-install-nui-nas.sh) "$version" "vanilla" "ubuntu" 

wget -O server-icon.png https://jlp-webseite.ddns.net/files/minecraft/minecraft-panel/standart-server-icon.png

cd ..
# server.properties Pfad
SERVER_PROPERTIES="minecraft-server/server.properties"

# Nur wenn die Datei existiert
if [ -f "$SERVER_PROPERTIES" ]; then
    # Port ersetzen oder Zeile hinzufügen, falls nicht vorhanden
    if grep -q "^server-port=" "$SERVER_PROPERTIES"; then
        sed -i "s/^server-port=.*/server-port=$port/" "$SERVER_PROPERTIES"
    else
        echo "server-port=$port" >> "$SERVER_PROPERTIES"
    fi
fi

echo "Port in server.properties auf $port gesetzt!"

read -p "Autostart einrichten? (y/n): " autostart

if [ "$autostart" = "y" ]; then
    (crontab -l 2>/dev/null; echo "@reboot cd $base_directory/minecraft-panel && node server.js") | crontab -
    (crontab -l 2>/dev/null; echo "@reboot cd $base_directory/minecraft-panel && bash start.sh") | crontab -
fi

cd minecraft-panel
wget https://jlp-webseite.ddns.net/files/minecraft/minecraft-panel/version.json
nohup node server.js >/dev/null 2>&1 &
cd ..

wget https://jlp-webseite.ddns.net/files/minecraft/minecraft-panel/update.sh

 printf '%*s\n' "$(tput cols)" '' | tr ' ' '#' 
echo "Setup abgeschlossen!"
echo "Webserver läuft auf Port $WEB_PORT!"

if [ "$autostart" = "n" ]; then
echo " "
echo "Bitte in crontab noch das hier eingeben:"
echo "@reboot cd $base_directory/minecraft-panel && node server.js"
echo "@reboot cd $base_directory/minecraft-panel && bash start.sh"
fi

echo " "
echo "Initial Zugangsdaten:"
echo "Benutzername = admin"
echo "Passwort = geheim"
echo " "
IP=$(hostname -I | awk '{print $1}')
echo "Panel erreichbar unter: http://$IP:$WEB_PORT"
 printf '%*s\n' "$(tput cols)" '' | tr ' ' '#' 

echo "Es ist ein Reboot des Gerätes nötig um die einstellungen anzupassen!"

rm minecraft-panel.sh