#!/usr/bin/env bash set -e BASE_URL="https://raw.githubusercontent.com/botgwjkkxzz/Protect-panel-pterodactyl/main" # ===== WARNA ===== RED="\033[31m" GREEN="\033[32m" YELLOW="\033[33m" BLUE="\033[34m" CYAN="\033[36m" RESET="\033[0m" # Disable warna jika terminal tidak support if [ -z "$TERM" ] || [ "$TERM" = "dumb" ]; then RED=""; GREEN=""; YELLOW=""; BLUE=""; CYAN=""; RESET="" fi # ===== PRINT HELPER ===== cecho() { printf "%b\n" "$1" } cls() { clear 2>/dev/null || printf "\n" } # ===== SPINNER ===== spinner() { local i=0 local sp='|/-\' while [ $i -lt 8 ]; do printf "\r${CYAN}%c${RESET} Installing..." "${sp:i%4:1}" sleep 0.15 i=$((i+1)) done printf "\r" } # ===== PROGRESS BAR ===== progress_bar() { local i for i in $(seq 0 20); do printf "\r${GREEN}[" printf "%0.s█" $(seq 1 "$i") printf "%0.s░" $(seq "$((i+1))" 20) printf "]${RESET}" sleep 0.05 done printf "\n" } # ===== INSTALL FUNCTION ===== install_one() { local NAME="$1" cecho "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${RESET}" cecho "${YELLOW}▶ Script${RESET} : ${CYAN}$NAME${RESET}" if [ -f "$NAME" ]; then cecho "${YELLOW}⚠ Status${RESET} : ALREADY INSTALLED (SKIP)" sleep 0.5 return fi spinner progress_bar if curl -fsSL "$BASE_URL/$NAME" -o "$NAME"; then chmod +x "$NAME" cecho "${GREEN}✔ Status${RESET} : INSTALLED" else cecho "${RED}✖ Status${RESET} : FAILED" fi sleep 0.5 } pause() { printf "\n${YELLOW}Tekan ENTER untuk kembali ke menu utama...${RESET}" read _ } # ===== MENU LOOP ===== while true; do cls cecho "${BLUE}======================================${RESET}" cecho "${CYAN} Z Y U R A P R O T E C T${RESET}" cecho "${BLUE}======================================${RESET}" cecho "${YELLOW} INSTALLER PROTECT BY ZYURA${RESET}" printf "\n" cecho "${GREEN}1)${RESET} Install satu script" cecho "${GREEN}2)${RESET} Install semua script" cecho "${GREEN}3)${RESET} Keluar" printf "\n" printf "${CYAN}Pilih [1-3]: ${RESET}" read pilih case "$pilih" in 1) cls cecho "${CYAN}========== PILIH SCRIPT ==========${RESET}" for i in $(seq 1 11); do cecho "$i) zyura$i" done printf "\n${CYAN}Pilih nomor: ${RESET}" read n [ "$n" -ge 1 ] 2>/dev/null && [ "$n" -le 11 ] && install_one "zyura$n" || cecho "${RED}Pilihan tidak valid${RESET}" pause ;; 2) cls cecho "${YELLOW}🚀 INSTALL SEMUA SCRIPT ZYURA${RESET}" TOTAL=11 COUNT=0 for sc in zyura1 zyura2 zyura3 zyura4 zyura5 zyura6 zyura7 zyura8 zyura9 zyura10 zyura11; do COUNT=$((COUNT+1)) cecho "${CYAN}[$COUNT/$TOTAL]${RESET}" install_one "$sc" done cls cecho "${GREEN}======================================${RESET}" cecho "${GREEN} ✔ BERHASIL INSTAL SEMUA SCRIPT${RESET}" cecho "${CYAN} PROTECT BY ZYURA${RESET}" cecho "${GREEN}======================================${RESET}" pause ;; 3) cls cecho "${CYAN}Keluar dari installer...${RESET}" exit 0 ;; *) cecho "${RED}Pilihan tidak valid${RESET}" sleep 1 ;; esac done