#!/bin/bash
# ======================================================
#   HOKAGE LEGEND MAIN MENU (Optimized Gradient)
# ======================================================

# COLOR VALIDATION
clear
y='\033[1;33m' #yellow
BGX="\033[42m"
CYAN="\033[96m"
z="\033[96m"
f="\033[1;97;41m"
RED='\033[0;31m'
NC='\033[0m'
gray="\e[1;30m"
Blue="\033[0;34m"
green='\033[0;32m'
grenbo="\e[92;1m"
purple="\033[1;95m"
YELL='\033[0;33m'

# ==================================================
# FUNGSI GRADASI FAST RENDER (EMAS -> BIRU -> UNGU)
# ==================================================
print_gradient() {
    local text="$1"
    awk -v text="$text" 'BEGIN {
        len = length(text);
        # Definisi Warna: Emas (Gold) -> Biru (Medium Blue) -> Ungu (Blue Violet)
        r_start=255; g_start=215; b_start=0;
        r_mid=0;     g_mid=128;   b_mid=255;
        r_end=138;   g_end=43;    b_end=226;

        for (i=0; i<len; i++) {
            ratio = i / (len-1);
            if (ratio <= 0.5) {
                # Fase 1: Emas ke Biru
                f = ratio * 2;
                r = int(r_start + (r_mid - r_start) * f);
                g = int(g_start + (g_mid - g_start) * f);
                b = int(b_start + (b_mid - b_start) * f);
            } else {
                # Fase 2: Biru ke Ungu
                f = (ratio - 0.5) * 2;
                r = int(r_mid + (r_end - r_mid) * f);
                g = int(g_mid + (g_end - g_mid) * f);
                b = int(b_mid + (b_end - b_mid) * f);
            }
            printf "\033[38;2;%d;%d;%dm%s", r, g, b, substr(text, i+1, 1);
        }
        printf "\033[0m\n";
    }'
}
# ==================================================

# SYSTEM INFO GATHERING
# Mengambil data IP dan ISP sekali saja untuk mempercepat loading
IPVPS=$(curl -s ipv4.icanhazip.com)
ISP=$(cat /root/.info/.isp 2>/dev/null || echo "Unknown ISP")
CITY=$(cat /root/.info/.city 2>/dev/null || echo "Unknown City")
NS=$(cat /etc/xray/dns 2>/dev/null)
domain=$(cat /etc/xray/domain 2>/dev/null)
RAM=$(free -m | awk 'NR==2 {print $2}')
# Optimasi pengambilan load CPU agar tidak berat
LOADCPU=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}')
MODEL=$(cat /etc/os-release | grep -w PRETTY_NAME | head -n1 | sed 's/=//g' | sed 's/"//g' | sed 's/PRETTY_NAME//g')
CORE=$(grep -c cpu[0-9] /proc/stat)
DATEVPS=$(date +'%d-%m-%Y')
TIMEZONE=$(date +'%H-%M-%S')
SERONLINE=$(uptime -p | cut -d " " -f 2-10000)

clear
MYIP=$(curl -sS ipv4.icanhazip.com)
echo ""

# LICENSING CHECK (Sederhana)
izinsc="https://raw.githubusercontent.com/hokagelegend9999/ijin/refs/heads/main/alpha"
# Ambil semua data user sekali jalan untuk mengurangi request curl
USER_DATA=$(curl -s ${izinsc} | grep $MYIP)
username=$(echo "$USER_DATA" | awk '{print $2}')
valid=$(echo "$USER_DATA" | awk '{print $3}')

# Simpan ke file lokal (opsional, untuk cache)
echo "$username" >/usr/bin/user
echo "$valid" >/usr/bin/e

# DETAIL ORDER
oid=$(cat /usr/bin/ver 2>/dev/null)
exp=$valid

# CERTIFICATE STATUS
today=$(date +"%Y-%m-%d")
d1=$(date -d "$valid" +%s)
d2=$(date -d "$today" +%s)
certifacate=$(((d1 - d2) / 86400))

# Status Expired Or Active
if [[ "$d1" -ge "$d2" ]]; then
    sts="${green}Active${NC}"
else
    sts="${RED}Expired${NC}"
fi

# Getting CPU & RAM Info
tram=$( free -m | awk 'NR==2 {print $2}' )
uram=$( free -m | awk 'NR==2 {print $3}' )
fram=$( free -m | awk 'NR==2 {print $4}' )

clear
# SERVICE STATUS CHECK
# Menggunakan systemctl is-active untuk cek lebih cepat & akurat daripada grep text
cek_service() {
    if systemctl is-active --quiet "$1"; then
        echo "${green}ON🟢${NC}"
    else
        echo "${RED}🔴${NC} "
    fi
}

# Cek WS ePro manual karena service name mungkin beda (ws)
ssh_ws_status=$(systemctl is-active --quiet ws && echo "${green}ON🟢${NC}" || echo "${RED}🔴${NC} ")

status_ssh=$(cek_service ssh)
status_haproxy=$(cek_service haproxy)
status_xray=$(cek_service xray)
status_nginx=$(cek_service nginx)
status_dropbear=$(cek_service dropbear)
status_zivpn=$(cek_service zivpn)
status_udp_custom=$(cek_service udp-custom)

# INFO AKUN (XRAY)
# Menggunakan grep -c langsung tanpa loop
vla=$(grep -c -E "^#& " "/etc/xray/config.json" 2>/dev/null || echo 0)
let vla=$vla/2
vma=$(grep -c -E "^### " "/etc/xray/config.json" 2>/dev/null || echo 0)
let vma=$vma/2
trb=$(grep -c -E "^#! " "/etc/xray/config.json" 2>/dev/null || echo 0)
let trb=$trb/2
ssa=$(grep -c -E "^#ss# " "/etc/xray/config.json" 2>/dev/null || echo 0)
let ssa=$ssa/2
ssh1=$(awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd | wc -l)

# VISUAL ASSETS
KANAN="\033[1;32m<\033[1;33m<\033[1;31m<\033[1;31m$NC"
KIRI="\033[1;32m>\033[1;33m>\033[1;31m>\033[1;31m$NC"
r="\033[1;31m" 
a=" ${CYAN}ACCOUNT PREMIUM" 

# ==================================================
# HEADER MENU
# ==================================================
echo -e " "
print_gradient "╭══════════════════════════════════════════════════════════╮"
print_gradient "│    WELCOME TO  HOKAGE LEGEND STORE AUTOSCRIPT PREMIUM    │"
print_gradient "╰══════════════════════════════════════════════════════════╯"
echo -e " ${z}══════════════════════════════════════════════════════════${NC}"
echo -e " ${z}$NC$r ⇲ $NC$y System OS ${NC}        $Blue=$NC $MODEL${NC}"
echo -e " ${z}$NC$r ⇲ $NC$y ISP ${NC}              $Blue=$NC $ISP${NC}"
echo -e " ${z}$NC$r ⇲ $NC$y CITY ${NC}             $Blue=$NC $CITY${NC}"
echo -e " ${z}$NC$r ⇲ $NC$y Server RAM ${NC}       $Blue=$NC $tram MB $NC"
echo -e " ${z}$NC$r ⇲ $NC$y Core Cpu ${NC}         $Blue=$NC $CORE${NC}"
echo -e " ${z}$NC$r ⇲ $NC$y Uptime Server ${NC}    $Blue=$NC $SERONLINE${NC}"
echo -e " ${z}$NC$r ⇲ $NC$y Date ${NC}             $Blue=$NC $DATEVPS${NC}"
echo -e " ${z}$NC$r ⇲ $NC$y Time ${NC}             $Blue=$NC $TIMEZONE${NC}"
echo -e " ${z}$NC$r ⇲ $NC$y Domain ${NC}           $Blue=$NC $domain${NC}"
echo -e " ${z}══════════════════════════════════════════════════════════${NC}"
echo -e "             ${KIRI} ${Blue}INFORMATION ACCOUNT ON VPS${NC} ${KANAN}"
echo -e "           ${NC}┌─────────────────────────────────────┐${NC}"
echo -e "                 ${CYAN}ACCOUNT SSH/OVPN/UDP${NC}   $y=$NC $ssh1${NC}"
echo -e "                 ${CYAN}ACCOUNT VMESS/WS/GRPC${NC}  $y=$NC $vma$NC"
echo -e "                 ${CYAN}ACCOUNT VLESS/WS/GRPC${NC}  $y=$NC $vla$NC" 
echo -e "                 ${CYAN}ACCOUNT TROJAN/WS/GRPC${NC} $y=$NC $trb${NC}"
echo -e "                 ${CYAN}ACCOUNT SHADOW/WS/GRPC${NC} $y=$NC $ssa${NC}"
echo -e "           ${NC}└─────────────────────────────────────┘${NC}"
echo -e "               ${KIRI} ${RED} HOKAGE LEGEND STORE TUNNELING  ${NC} ${KANAN}"
echo -e " ${z}╭════════════════╮╭══════════════════╮╭════════════════════╮${NC}"
echo -e " ${z}│${NC}$y SSH$NC     : $status_ssh" "  $y NGINX$NC      : $status_nginx" "    $y XRAY$NC    : $status_xray  $NC${z}│$NC" 
echo -e " ${z}│${NC}$y WS-ePRO$NC : $ssh_ws_status"  " $y  DROPBEAR$NC   : $status_dropbear" "    $y HAPROXY$NC : $status_haproxy  $NC${z}│$NC" 
echo -e " ${z}│${NC}$y ZiVPN$NC   : $status_zivpn"    "  $y UDP-CUSTOM$NC : $status_udp_custom" "                     $NC${z}│$NC" 
echo -e " ${z}╰════════════════╯╰══════════════════╯╰════════════════════╯${NC}"
echo -e "             ${KIRI} ${grenbo}⇱ ALL FITUR SC TUNNELING ⇲${NC} ${KANAN}"
echo -e "    ${z}══════════════════════════════════════════════════════${NC}"
echo -e "             ${z}$NC [${r}01${NC}]$green MENU SSH$NC        ${z}│$NC [${r}06${NC}]$green MENU TRIAL$NC     ${z} $NC"
echo -e "             ${z}$NC [${r}02${NC}]$green MENU VMESS$NC      ${z}│$NC [${r}07${NC}]$green SPEEDTEST$NC    ${z} $NC"
echo -e "             ${z}$NC [${r}03${NC}]$green MENU VLESS$NC      ${z}│$NC [${r}08${NC}]$green MENU UTILITY$NC   ${z} $NC"
echo -e "             ${z}$NC [${r}04${NC}]$green MENU TROJAN$NC     ${z}│$NC [${r}09${NC}]$green MENU ZIVPN$NC     ${z} $NC"
echo -e "             ${z}$NC [${r}05${NC}]$green MENU SSWS$NC       ${z}│$NC [${r}10${NC}]$green CEK VPS$NC        ${z} $NC"
echo -e "    ${z}══════════════════════════════════════════════════════${NC}"
echo -e "             ${KIRI}${z} INFORMATION YOUR ACTIVE PERIOD ${z}${KANAN}"
echo -e " ${z}╭══════════════════════════════════════════════════════════╮${NC}"
echo -e " ${z}    $NC${z} Developer$NC  ${z} =$NC HOKAGE LEGEND STORE"
echo -e " ${z}    $NC${z} Telegram$NC   ${z} =$NC https://t.me/hokagelegend1"
echo -e " ${z}    $NC${z} IP ADDRESS ${z} =$NC $IPVPS${NC}"
echo -e " ${z}    $NC${z} User$NC       ${z} =$NC $username"
echo -e " ${z}    $NC${z} Exp Script$NC ${z} =$NC $exp $certifacate Days$NC $sts"
echo -e " ${z}╰══════════════════════════════════════════════════════════╯${NC}"
echo -e "         ${KIRI}\033[5m\033[35mTHANKS YOU FOR \033[34mUSING SCRIPT \033[31mHOKAGE LEGEND\033[0m${KANAN}"
echo -e ""
read -p " PILIH MENU DENGAN CARA KETIK 1/10 : " opt
echo -e ""
case $opt in
1 | 01) clear ; m-sshws ;;
2 | 02) clear ; m-vmess ;;
3 | 03) clear ; m-vless ;;
4 | 04) clear ; m-trojan ;;
5 | 05) clear ; m-ssws ;;
6 | 06) clear ; m-trial ;;
7 | 07) clear ; speedtest ;;
8 | 08) clear ; menu-x ;;
9 | 09) clear ; zivpn-menu ;;
10 | 10) clear ; cek-vps ;;
0 | 00) exit ;;
x) menu ;;
*) clear ; echo -e ; menu ;;
esac