#!/usr/bin/env sh
set -eu

GRADLE_VERSION="8.8"
PROJECT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
GRADLE_HOME="${PROJECT_DIR}/.gradle-local/gradle-${GRADLE_VERSION}"
GRADLE_ZIP="${PROJECT_DIR}/.gradle-local/gradle-${GRADLE_VERSION}-bin.zip"
GRADLE_URL="https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip"

mkdir -p "$PROJECT_DIR/.gradle-local"

if command -v /usr/libexec/java_home >/dev/null 2>&1; then
  JDK17_HOME="$(/usr/libexec/java_home -v 17 2>/dev/null || true)"
  if [ -n "$JDK17_HOME" ]; then
    export JAVA_HOME="$JDK17_HOME"
    export PATH="$JAVA_HOME/bin:$PATH"
  fi
fi

JAVA_MAJOR="$(java -version 2>&1 | awk -F[\".] '/version/ { print $2; exit }')"
if [ -z "$JAVA_MAJOR" ]; then
  echo "【注意】没有找到 Java。请安装 JDK 17 后再运行 ./gradlew build。"
  exit 1
fi

if [ "$JAVA_MAJOR" != "17" ]; then
  echo "【注意】当前 Java 版本是 ${JAVA_MAJOR}，Forge 1.20.1 构建需要 JDK 17。"
  echo "请安装 JDK 17，例如 Temurin 17，然后重新运行：./gradlew build"
  echo "macOS 安装后本脚本会自动选择 Java 17。"
  exit 1
fi

if [ ! -x "$GRADLE_HOME/bin/gradle" ]; then
  echo "HumanFallCraft: first build needs Gradle ${GRADLE_VERSION}; it will be saved in .gradle-local."
  echo "HumanFallCraft: download URL: ${GRADLE_URL}"

  if command -v curl >/dev/null 2>&1; then
    curl -L --fail -o "$GRADLE_ZIP" "$GRADLE_URL"
  elif command -v wget >/dev/null 2>&1; then
    wget -O "$GRADLE_ZIP" "$GRADLE_URL"
  else
    echo "【注意】未找到 curl 或 wget，无法自动下载 Gradle。"
    echo "请安装 curl，或手动下载 ${GRADLE_URL} 后放到：${GRADLE_ZIP}"
    exit 1
  fi

  unzip -q "$GRADLE_ZIP" -d "$PROJECT_DIR/.gradle-local"
fi

exec "$GRADLE_HOME/bin/gradle" "$@"
