Преглед на файлове

Update: 更新模组下载方式,一次登录请求下载全部mod

Dcrclub преди 1 месец
родител
ревизия
765eb3f8f9
променени са 1 файла, в които са добавени 31 реда и са изтрити 8 реда
  1. 31 8
      DockerFile/updatemod.sh

+ 31 - 8
DockerFile/updatemod.sh

@@ -46,16 +46,39 @@ if [ -n "$MOD_IDS" ]; then
     echo "开始更新Mod..." >> "$LOG_FILE"
     IFS=',' read -ra MOD_ARRAY <<< "$MOD_IDS"
     
+    # 创建SteamCMD脚本文件
+    SCRIPT_FILE="/opt/steamcmd/update_mods.txt"
+    echo "创建SteamCMD脚本文件: $SCRIPT_FILE" >> "$LOG_FILE"
+    
+    # 写入登录信息
+    echo "login $STEAM_USERNAME $STEAM_PASSWORD" > "$SCRIPT_FILE"
+    
+    # 为每个Mod ID添加下载命令
     for mod_id in "${MOD_ARRAY[@]}"; do
-        echo "更新Mod ID: $mod_id" >> "$LOG_FILE"
-        ./steamcmd.sh +login $STEAM_USERNAME $STEAM_PASSWORD +workshop_download_item 221100 $mod_id +quit
-        
-        if [ $? -eq 0 ]; then
-            echo "Mod $mod_id 更新完成" >> "$LOG_FILE"
-        else
-            echo "Mod $mod_id 更新失败" >> "$LOG_FILE"
-        fi
+        echo "添加Mod ID: $mod_id 到更新脚本" >> "$LOG_FILE"
+        echo "workshop_download_item 221100 $mod_id validate" >> "$SCRIPT_FILE"
     done
+    
+    # 添加退出命令
+    echo "quit" >> "$SCRIPT_FILE"
+    
+    # 显示脚本内容(用于调试)
+    echo "SteamCMD脚本内容:" >> "$LOG_FILE"
+    cat "$SCRIPT_FILE" >> "$LOG_FILE"
+    
+    # 执行SteamCMD脚本
+    echo "开始执行SteamCMD脚本..." >> "$LOG_FILE"
+    ./steamcmd.sh +run_script update_mods.txt
+    
+    if [ $? -eq 0 ]; then
+        echo "所有Mod更新完成" >> "$LOG_FILE"
+    else
+        echo "Mod更新过程中出现错误" >> "$LOG_FILE"
+    fi
+    
+    # 清理脚本文件
+    rm -f "$SCRIPT_FILE"
+    echo "清理临时脚本文件" >> "$LOG_FILE"
 else
     echo "未配置Mod ID,跳过Mod更新" >> "$LOG_FILE"
 fi