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

81
script/start.bat Normal file
View File

@@ -0,0 +1,81 @@
@echo off
REM ZP2 Startup Script for Windows / ZP2 Windows 启动脚本
setlocal EnableDelayedExpansion
set "SCRIPT_DIR=%~dp0"
set "PROJECT_DIR=%SCRIPT_DIR%.."
set "BACKEND_DIR=%PROJECT_DIR%\backend"
set "FRONTEND_DIR=%PROJECT_DIR%\frontend"
echo ================================
echo ZP2 Game Server Launcher
echo ZP2 游戏服务器启动器
echo ================================
echo.
REM Check prerequisites / 检查依赖
echo [INFO] Checking prerequisites / 检查依赖...
where java >nul 2>nul
if %ERRORLEVEL% neq 0 (
echo [ERROR] Java not found. Please install Java 17+. / 未找到 Java请安装 Java 17+。
exit /b 1
)
for /f "tokens=3" %%g in ('java -version 2^>^1 ^| findstr /i "version"') do (
set "JAVA_VER=%%g"
set "JAVA_VER=!JAVA_VER:"=!"
)
echo [INFO] Java !JAVA_VER! found / 找到 Java !JAVA_VER!
where mvn >nul 2>nul
if %ERRORLEVEL% neq 0 (
echo [ERROR] Maven not found. Please install Maven. / 未找到 Maven请安装 Maven。
exit /b 1
)
echo [INFO] Maven found / 找到 Maven
where node >nul 2>nul
if %ERRORLEVEL% neq 0 (
echo [ERROR] Node.js not found. Please install Node.js. / 未找到 Node.js请安装 Node.js。
exit /b 1
)
for /f "tokens=*" %%v in ('node -v') do echo [INFO] %%v found / 找到 %%v
echo.
REM Build backend / 构建后端
echo [INFO] Building backend / 构建后端...
cd /d "%BACKEND_DIR%"
call mvn package -q
if %ERRORLEVEL% neq 0 (
echo [ERROR] Backend build failed / 后端构建失败
exit /b 1
)
echo [INFO] Backend built successfully / 后端构建成功
echo.
REM Start backend / 启动后端
echo [INFO] Starting backend server on port 8080 / 启动后端服务器 (端口 8080)...
cd /d "%PROJECT_DIR%"
start "ZP2 Backend" java -jar backend\target\zombie-crisis-server-1.0.0.jar
echo [INFO] Backend started in new window / 后端已在新窗口中启动
echo.
REM Start frontend / 启动前端
echo [INFO] Starting frontend dev server / 启动前端开发服务器...
cd /d "%FRONTEND_DIR%"
if not exist "node_modules\" (
echo [INFO] Installing frontend dependencies / 安装前端依赖...
call npm install
)
echo [INFO] Frontend dev server starting at http://localhost:3000 / 前端开发服务器地址: http://localhost:3000
echo.
echo Press Ctrl+C to stop the frontend. Backend runs in a separate window.
echo 按 Ctrl+C 停止前端,后端运行在独立窗口中。
echo.
call npm run dev

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