dining bench facing fix

This commit is contained in:
Darto KLoning
2026-10-03 16:02:19 +07:00
parent 2132d9d7f3
commit cae5b33c3b
9 changed files with 391 additions and 531 deletions
+178
View File
@@ -0,0 +1,178 @@
#!/usr/bin/env bash
set -u
cd "$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" || exit 1
[[ -f gradle.properties ]] || { echo "[ERROR] gradle.properties tidak ditemukan."; exit 1; }
get_prop() { sed -n "s/^$1=//p" gradle.properties | tail -n 1 | tr -d '\r'; }
refresh() {
MOD_VERSION="$(get_prop mod_version)"; MOD_VERSION="${MOD_VERSION:-unknown}"
MINECRAFT_VERSION="$(get_prop minecraft_version)"; MINECRAFT_VERSION="${MINECRAFT_VERSION:-26.2}"
ARCHIVES_BASE_NAME="$(get_prop archives_base_name)"; ARCHIVES_BASE_NAME="${ARCHIVES_BASE_NAME:-handcrafted}"
JAR_PATH="$PWD/build/libs/$ARCHIVES_BASE_NAME-$MOD_VERSION.jar"
TAG="v$MOD_VERSION"
}
compile_mod() {
echo
echo "[COMPILE] Building $ARCHIVES_BASE_NAME $MOD_VERSION..."
if [[ -f ./compile.sh ]]; then
bash ./compile.sh --build-only || return 1
elif [[ -f ./gradlew ]]; then
chmod +x ./gradlew 2>/dev/null || true
./gradlew clean build --console=plain || return 1
else
echo "[ERROR] compile.sh maupun gradlew tidak ditemukan."
return 1
fi
[[ -f "$JAR_PATH" ]] || { echo "[ERROR] JAR tidak ditemukan: $JAR_PATH"; return 1; }
echo "[OK] JAR: $JAR_PATH"
}
push_git() {
echo
echo "[GIT] Push..."
command -v git >/dev/null 2>&1 || { echo "[ERROR] Git tidak ditemukan."; return 1; }
git rev-parse --is-inside-work-tree >/dev/null 2>&1 || {
echo "[ERROR] Folder belum menjadi Git repository."
echo "Jalankan: git init"
return 1
}
git remote get-url origin >/dev/null 2>&1 || { echo "[ERROR] Remote origin belum dikonfigurasi."; return 1; }
if [[ -n "$(git status --porcelain)" ]]; then
git status --short
read -r -p "Commit message [Handcrafted $MOD_VERSION]: " msg
msg="${msg:-Handcrafted $MOD_VERSION}"
git add -A || return 1
git commit -m "$msg" || return 1
else
echo "[INFO] Working tree bersih."
fi
branch="$(git branch --show-current)"
[[ -n "$branch" ]] || { echo "[ERROR] Branch aktif tidak ditemukan."; return 1; }
git push origin "$branch" || { echo "[ERROR] Push gagal."; return 1; }
echo "[OK] Push selesai."
}
test_mod() {
echo
echo "[TEST] Menjalankan Minecraft test client..."
if [[ -f ./gradlew ]]; then
chmod +x ./gradlew 2>/dev/null || true
./gradlew runClient --console=plain
rc=$?
[[ $rc -eq 0 ]] || echo "[WARN] Test client selesai dengan exit code $rc."
else
echo "[ERROR] gradlew tidak ditemukan."
return 1
fi
return 0
}
make_release() {
echo
[[ -f "$JAR_PATH" ]] || { echo "[ERROR] Release dibatalkan: JAR $MOD_VERSION tidak ditemukan."; return 1; }
command -v git >/dev/null 2>&1 || { echo "[ERROR] Git tidak ditemukan."; return 1; }
git rev-parse --is-inside-work-tree >/dev/null 2>&1 || { echo "[ERROR] Bukan Git repository."; return 1; }
if git rev-parse "$TAG" >/dev/null 2>&1; then
echo "[INFO] Tag $TAG sudah ada. Tidak membuat ulang."
return 0
fi
echo "JAR : $JAR_PATH"
echo "Tag : $TAG"
read -r -p "Buat release tag $TAG? [Y/N]: " ans
[[ "$ans" =~ ^[Yy]$ ]] || return 0
git tag -a "$TAG" -m "Handcrafted v$MOD_VERSION for Fabric $MINECRAFT_VERSION" || return 1
if git remote get-url origin >/dev/null 2>&1; then
git push origin "$TAG" || { echo "[WARN] Tag lokal dibuat, tetapi push tag gagal."; return 1; }
fi
echo "[OK] Release tag $TAG selesai."
echo "[INFO] JAR release: $JAR_PATH"
}
menu4() {
echo
echo "============================================"
echo " Handcrafted Workflow"
echo " Minecraft : $MINECRAFT_VERSION"
echo " Version : $MOD_VERSION"
echo " JAR : ditemukan"
echo "============================================"
echo "[1] Push Git"
echo "[2] Mod Testing"
echo "[3] Make Release"
echo "[4] Exit"
read -r -p "Pilih: " x
case "$x" in
1) push_git; after_push ;;
2) test_mod; after_test ;;
3) make_release; after_release ;;
*) exit 0 ;;
esac
}
after_push() {
while true; do
echo; echo "[1] Mod Testing"; echo "[2] Make Release"; echo "[3] Exit"
read -r -p "Pilih: " x
case "$x" in
1) test_mod; after_test; return ;;
2) make_release; after_release; return ;;
*) exit 0 ;;
esac
done
}
after_test() {
while true; do
echo; echo "[1] Push Git"; echo "[2] Make Release"; echo "[3] Exit"
read -r -p "Pilih: " x
case "$x" in
1) push_git; after_push; return ;;
2) make_release; after_release; return ;;
*) exit 0 ;;
esac
done
}
after_release() {
while true; do
echo; echo "[1] Push Git"; echo "[2] Mod Testing"; echo "[3] Exit"
read -r -p "Pilih: " x
case "$x" in
1) push_git; after_push; return ;;
2) test_mod; after_test; return ;;
*) exit 0 ;;
esac
done
}
refresh
if [[ ! -f "$JAR_PATH" ]]; then
echo
echo "[INFO] Build $MOD_VERSION belum ditemukan. Compile otomatis..."
compile_mod || true
fi
refresh
if [[ -f "$JAR_PATH" ]]; then
menu4
else
echo
echo "Build belum tersedia."
echo "[1] Push Git"
echo "[2] Mod Testing"
echo "[3] Exit"
read -r -p "Pilih: " x
case "$x" in
1) push_git; after_push ;;
2) test_mod; after_test ;;
*) exit 0 ;;
esac
fi