Initial commit

This commit is contained in:
wfz
2026-07-26 14:41:36 +08:00
commit f741a0c8e8
90 changed files with 10774 additions and 0 deletions

105
script/start.sh Executable file
View File

@@ -0,0 +1,105 @@
#!/usr/bin/env bash
# ZP2 Startup Script for macOS/Linux / ZP2 macOS/Linux 启动脚本
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
BACKEND_DIR="$PROJECT_DIR/backend"
FRONTEND_DIR="$PROJECT_DIR/frontend"
# Colors / 颜色
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
info() { echo -e "${GREEN}[INFO]${NC} $1"; }
warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
error() { echo -e "${RED}[ERROR]${NC} $1"; }
# Check prerequisites / 检查依赖
check_prereqs() {
info "Checking prerequisites / 检查依赖..."
if ! command -v java &>/dev/null; then
error "Java not found. Please install Java 17+. / 未找到 Java请安装 Java 17+。"
exit 1
fi
JAVA_VER=$(java -version 2>&1 | head -1 | cut -d'"' -f2 | cut -d'.' -f1)
if [ "$JAVA_VER" -lt 17 ]; then
error "Java 17+ required, found Java $JAVA_VER / 需要 Java 17+,当前为 Java $JAVA_VER"
exit 1
fi
info "Java $JAVA_VER OK"
if ! command -v mvn &>/dev/null; then
error "Maven not found. Please install Maven. / 未找到 Maven请安装 Maven。"
exit 1
fi
info "Maven OK"
if ! command -v node &>/dev/null; then
error "Node.js not found. Please install Node.js. / 未找到 Node.js请安装 Node.js。"
exit 1
fi
info "Node.js $(node -v) OK"
}
# Build backend / 构建后端
build_backend() {
info "Building backend / 构建后端..."
cd "$BACKEND_DIR"
mvn package -q
info "Backend built successfully / 后端构建成功"
}
# Start backend / 启动后端
start_backend() {
info "Starting backend server on port 8080 / 启动后端服务器 (端口 8080)..."
cd "$PROJECT_DIR"
nohup java -jar backend/target/zombie-crisis-server-1.0.0.jar > "$PROJECT_DIR/backend.log" 2>&1 &
BACKEND_PID=$!
echo "$BACKEND_PID" > "$PROJECT_DIR/.backend.pid"
info "Backend started (PID: $BACKEND_PID) / 后端已启动 (PID: $BACKEND_PID)"
}
# Start frontend / 启动前端
start_frontend() {
info "Starting frontend dev server / 启动前端开发服务器..."
cd "$FRONTEND_DIR"
if [ ! -d "node_modules" ]; then
info "Installing frontend dependencies / 安装前端依赖..."
npm install
fi
info "Frontend dev server starting at http://localhost:3000 / 前端开发服务器地址: http://localhost:3000"
npm run dev
}
# Handle Ctrl+C / 处理 Ctrl+C
cleanup() {
if [ -f "$PROJECT_DIR/.backend.pid" ]; then
PID=$(cat "$PROJECT_DIR/.backend.pid")
info "Stopping backend (PID: $PID) / 停止后端 (PID: $PID)..."
kill "$PID" 2>/dev/null || true
rm -f "$PROJECT_DIR/.backend.pid"
fi
exit 0
}
trap cleanup INT TERM
# Main / 主流程
echo "=================================="
echo " ZP2 Game Server Launcher"
echo " ZP2 游戏服务器启动器"
echo "=================================="
echo ""
check_prereqs
build_backend
start_backend
start_frontend