diff --git a/DockerFile/start.sh b/DockerFile/start.sh index 85cb048..6b49a52 100644 --- a/DockerFile/start.sh +++ b/DockerFile/start.sh @@ -80,7 +80,7 @@ start_dayzserver() { cd /root/Steam/steamapps/common/DayZServer # 启动服务器之前,检查mod是否有更新. - bash /opt/updatemod.sh + bash /opt/updatemod.sh update_server updatemodpath="/root/Steam/steamapps/workshop/content/221100" target_dir="/root/Steam/steamapps/common/DayZServer/client_mod" @@ -238,7 +238,7 @@ else echo "DayZServer已安装,检查更新" # 切换到SteamCMD目录 cd /opt/steamcmd - ./steamcmd.sh +login $STEAM_USERNAME $STEAM_PASSWORD +app_update 223350 validate +quit + # ./steamcmd.sh +login $STEAM_USERNAME $STEAM_PASSWORD +app_update 223350 validate +quit echo "启动DayZServer..." cd /root/Steam/steamapps/common/DayZServer start_dayzserver diff --git a/DockerFile/updatemod.sh b/DockerFile/updatemod.sh index 7effbcb..84adaf9 100644 --- a/DockerFile/updatemod.sh +++ b/DockerFile/updatemod.sh @@ -10,10 +10,20 @@ fi # 设置日志文件路径 LOG_FILE="/var/log/updatemod.log" -echo "==========================================" >> "$LOG_FILE" -echo "开始更新DayZ Mod..." >> "$LOG_FILE" -echo "时间: $(date)" >> "$LOG_FILE" -echo "==========================================" >> "$LOG_FILE" +# 检查是否传入update_server参数 +UPDATE_SERVER=false +if [ "$1" = "update_server" ]; then + UPDATE_SERVER=true + echo "==========================================" >> "$LOG_FILE" + echo "开始更新DayZ服务器和Mod..." >> "$LOG_FILE" + echo "时间: $(date)" >> "$LOG_FILE" + echo "==========================================" >> "$LOG_FILE" +else + echo "==========================================" >> "$LOG_FILE" + echo "开始更新DayZ Mod..." >> "$LOG_FILE" + echo "时间: $(date)" >> "$LOG_FILE" + echo "==========================================" >> "$LOG_FILE" +fi # 检查环境变量 if [ -z "$STEAM_USERNAME" ] || [ -z "$STEAM_PASSWORD" ]; then @@ -26,15 +36,6 @@ fi cd /opt/steamcmd -if [ ! -f "/opt/steamcmd/steamcmd.sh" ]; then - echo "SteamCMD未安装,开始下载和安装..." >> "$LOG_FILE" - wget -O /opt/steamcmd/steamcmd_linux.tar.gz ${STEAMCMD_URL} - tar xvzf /opt/steamcmd/steamcmd_linux.tar.gz -C /opt/steamcmd - rm /opt/steamcmd/steamcmd_linux.tar.gz - chmod +x /opt/steamcmd/steamcmd.sh - echo "SteamCMD安装完成!" >> "$LOG_FILE" -fi - if [ -n "$MOD_IDS" ]; then echo "开始更新Mod..." >> "$LOG_FILE" IFS=',' read -ra MOD_ARRAY <<< "$MOD_IDS" @@ -44,6 +45,12 @@ if [ -n "$MOD_IDS" ]; then echo "login $STEAM_USERNAME $STEAM_PASSWORD" > "$SCRIPT_FILE" + # 如果需要更新服务器,先添加服务器更新指令 + if [ "$UPDATE_SERVER" = true ]; then + echo "添加DayZ服务器更新指令 (ID: 223350)" >> "$LOG_FILE" + echo "app_update 223350 validate" >> "$SCRIPT_FILE" + fi + for mod_id in "${MOD_ARRAY[@]}"; do echo "添加Mod ID: $mod_id 到更新脚本" >> "$LOG_FILE" echo "workshop_download_item 221100 $mod_id validate" >> "$SCRIPT_FILE"