#!/data/data/com.termux/files/usr/bin/bash

echo -e "\e[94;47mAndroid Minecraft server setup\e[0m\nby 1050TI_top"

cd

sleep 3

echo "1. Настройка доступа к хранилищу"
yes | termux-setup-storage

echo "2. Установка Java 21"
pkg install openjdk-21 -y

echo "3. Установка jq"
pkg install jq -y

echo "4. Создание папки сервера"
read -p "Введите название папки в которой будет сервер: " server_folder
mkdir -p storage/shared/${server_folder}

cd storage/shared/${server_folder}

echo "5. Установка Paper"
while true; do
    read -p "Введите версию сервера (например, 1.16.5, 1.19.4, 1.21.4): " server_version
    
    paper_builds=$(curl -s https://api.papermc.io/v2/projects/paper/versions/${server_version}/builds)
    latest_build=$(echo "$paper_builds" | jq -r '.builds | map(.build) | .[-1]')

    if [ -n "$latest_build" ]; then
        jar_name=paper-${server_version}-${latest_build}.jar
        download_url="https://api.papermc.io/v2/projects/paper/versions/${server_version}/builds/${latest_build}/downloads/${jar_name}"

        curl -o server.jar $download_url
    
        break
    else
        echo "Версия ${server_version} не найдена"
    fi
done

echo "6. Создание eula.txt (кому она собсна нужна?)"
echo "eula=true" > eula.txt

echo "7. Создание скрипта запуска"
read -p "Введите минимально выделяемое количество ОЗУ (в мегабайтах): " min_ram
read -p "Введите максимально выделяемое количество ОЗУ (в мегабайтах): " max_ram
echo -e "#!/data/data/com.termux/files/usr/bin/bash\n\njava -Xms${min_ram}M -Xmx${max_ram}M --add-modules=jdk.incubator.vector -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -DPaper.IgnoreJavaVersion=true -jar server.jar --nogui" > start.sh

sleep 3

echo "Готово! Сервер успешно установлен"
echo ""
echo "Инструкция по запуску:"
echo "1. Пропишите cd storage/shared/${server_folder}"
echo "2. Пропишите sh start.sh"
echo ""
echo "Примечание:"
echo "Папка с сервером находится в корневой папке памяти вашего устройства"