fix: missing mod-playerbots module process

This commit is contained in:
uprightbass360
2025-10-26 03:03:02 -04:00
parent 33df39f430
commit 323186cce2
5 changed files with 76 additions and 15 deletions

1
.gitignore vendored
View File

@@ -15,3 +15,4 @@ node_modules/
.env
package-lock.json
package.json
.modules_state

View File

@@ -61,6 +61,9 @@ Options:
--keep-running Do not pre-stop runtime stack before rebuild
--skip-rebuild Skip source rebuild even if modules require it
--yes, -y Auto-confirm deployment and rebuild prompts
--watch-logs Tail worldserver logs even if --no-watch was set earlier
--log-tail LINES Override WORLD_LOG_TAIL (number of log lines to show)
--once Run status checks once (alias for --no-watch)
-h, --help Show this help
This command automates the module workflow: sync modules, rebuild source if needed,

View File

@@ -225,14 +225,20 @@ fi
echo 'Installing enabled modules...'
# Playerbots handling - integrated into custom AzerothCore branch
if [ "$MODULE_PLAYERBOTS" = "1" ]; then
echo '🤖 Playerbots module enabled...'
echo ' 📖 Playerbots are integrated into the uprightbass360/azerothcore-wotlk-playerbots source'
echo ' No separate module repository needed - functionality built into core'
echo ' 🔧 REBUILD REQUIRED: Container must be rebuilt with playerbots source'
# Playerbots handling - integrated into uprightbass360 AzerothCore fork
if [ "$MODULE_PLAYERBOTS" = "1" ] && [ ! -d "mod-playerbots" ]; then
echo '🤖 Installing mod-playerbots module (required for uprightbass360 images)...'
echo ' 📖 Project: https://github.com/mod-playerbots/mod-playerbots'
echo ' Core C++ functionality built into uprightbass360/azerothcore-wotlk-playerbots images'
echo ' 🗄️ Installing SQL schemas, configurations, and database structure'
echo ' 🔧 Module provides: DBC tables, bot names, AI configs, travel nodes, etc.'
echo ' 📋 POST-INSTALL: Requires manual account/character configuration'
# No git clone needed - playerbots are integrated into the source tree
# Clone the official mod-playerbots module for SQL and configuration files
git clone https://github.com/mod-playerbots/mod-playerbots.git mod-playerbots
echo ' ✅ mod-playerbots module installed successfully'
echo ' 📊 Module contains SQL for 3 databases: world, characters, playerbots'
fi
# Install AOE Loot if enabled
@@ -723,6 +729,7 @@ REBUILD_REQUIRED=0
# Create current module state hash
for module_var in MODULE_PLAYERBOTS MODULE_AOE_LOOT MODULE_LEARN_SPELLS MODULE_FIREWORKS MODULE_INDIVIDUAL_PROGRESSION MODULE_AHBOT MODULE_AUTOBALANCE MODULE_TRANSMOG MODULE_NPC_BUFFER MODULE_DYNAMIC_XP MODULE_SOLO_LFG MODULE_1V1_ARENA MODULE_PHASED_DUELS MODULE_BREAKING_NEWS MODULE_BOSS_ANNOUNCER MODULE_ACCOUNT_ACHIEVEMENTS MODULE_AUTO_REVIVE MODULE_GAIN_HONOR_GUARD MODULE_ELUNA MODULE_TIME_IS_TIME MODULE_POCKET_PORTAL MODULE_RANDOM_ENCHANTS MODULE_SOLOCRAFT MODULE_PVP_TITLES MODULE_NPC_BEASTMASTER MODULE_NPC_ENCHANTER MODULE_INSTANCE_RESET MODULE_LEVEL_GRANT MODULE_ARAC MODULE_ASSISTANT MODULE_REAGENT_BANK MODULE_BLACK_MARKET_AUCTION_HOUSE MODULE_CHALLENGE_MODES MODULE_OLLAMA_CHAT MODULE_PLAYER_BOT_LEVEL_BRACKETS MODULE_STATBOOSTER MODULE_DUNGEON_RESPAWN MODULE_SKELETON_MODULE MODULE_BG_SLAVERYVALLEY MODULE_AZEROTHSHARD MODULE_WORGOBLIN MODULE_ELUNA_TS; do
eval "value=\$$module_var"
value="${value:-0}"
CURRENT_STATE="$CURRENT_STATE$module_var=$value|"
done

View File

@@ -175,8 +175,12 @@ fi
SOURCE_COMPOSE="$REBUILD_SOURCE_PATH/docker-compose.yml"
if [ ! -f "$SOURCE_COMPOSE" ]; then
echo "❌ Source docker-compose.yml not found at $SOURCE_COMPOSE"
exit 1
if [ -f "$REBUILD_SOURCE_PATH/apps/docker/docker-compose.yml" ]; then
SOURCE_COMPOSE="$REBUILD_SOURCE_PATH/apps/docker/docker-compose.yml"
else
echo "❌ Source docker-compose.yml not found at $REBUILD_SOURCE_PATH (checked $SOURCE_COMPOSE and apps/docker/docker-compose.yml)"
exit 1
fi
fi
declare -A MODULE_REPO_MAP=(

View File

@@ -407,6 +407,7 @@ Options:
--auto-rebuild-on-deploy Enable automatic rebuild during deploys
--run-rebuild-now Trigger module rebuild after setup completes
--modules-rebuild-source PATH Source checkout used for module rebuilds
--deploy-after Run ./deploy.sh automatically after setup completes
--force Overwrite existing .env without prompting
EOF
exit 0
@@ -567,6 +568,10 @@ EOF
FORCE_OVERWRITE=1
shift
;;
--deploy-after)
CLI_DEPLOY_AFTER=1
shift
;;
*)
echo "Unknown argument: $1" >&2
echo "Use --help for usage" >&2
@@ -1125,7 +1130,7 @@ fi
if [ ! -f "$rebuild_source_path/docker-compose.yml" ]; then
say INFO "Preparing source repository via scripts/setup-source.sh (progress will stream below)"
if ! ( set -o pipefail; ./scripts/setup-source.sh 2>&1 | while IFS= read -r line; do
say INFO "[setup-source] $line"
say INFO "[setup-source]" "$line"
done ); then
say WARNING "Source setup encountered issues; running interactively."
if ! ./scripts/setup-source.sh; then
@@ -1167,10 +1172,14 @@ fi
# Run module staging script in local modules directory
# Set environment variable to indicate we're running locally
export MODULES_LOCAL_RUN=1
if [ -n "$host_modules_dir" ]; then
mkdir -p "$host_modules_dir"
rm -f "$host_modules_dir/.modules_state" "$host_modules_dir/.requires_rebuild" 2>/dev/null || true
fi
if (cd "$local_modules_dir" && bash "$SCRIPT_DIR/scripts/manage-modules.sh"); then
say SUCCESS "Module repositories staged to $local_modules_dir"
if [ -n "$host_modules_dir" ]; then
mkdir -p "$host_modules_dir"
if [ -f "$local_modules_dir/.modules_state" ]; then
cp "$local_modules_dir/.modules_state" "$host_modules_dir/.modules_state" 2>/dev/null || true
fi
@@ -1366,6 +1375,32 @@ NETWORK_SUBNET=$DEFAULT_NETWORK_SUBNET
NETWORK_GATEWAY=$DEFAULT_NETWORK_GATEWAY
EOF
local storage_abs_path="$STORAGE_PATH"
if [[ "$storage_abs_path" != /* ]]; then
storage_abs_path="$(pwd)/${storage_abs_path#./}"
fi
local host_modules_dir="${storage_abs_path}/modules"
mkdir -p "$host_modules_dir"
local -a MODULE_STATE_VARS=(
MODULE_PLAYERBOTS MODULE_AOE_LOOT MODULE_LEARN_SPELLS MODULE_FIREWORKS MODULE_INDIVIDUAL_PROGRESSION
MODULE_AHBOT MODULE_AUTOBALANCE MODULE_TRANSMOG MODULE_NPC_BUFFER MODULE_DYNAMIC_XP MODULE_SOLO_LFG
MODULE_1V1_ARENA MODULE_PHASED_DUELS MODULE_BREAKING_NEWS MODULE_BOSS_ANNOUNCER MODULE_ACCOUNT_ACHIEVEMENTS
MODULE_AUTO_REVIVE MODULE_GAIN_HONOR_GUARD MODULE_ELUNA MODULE_TIME_IS_TIME MODULE_POCKET_PORTAL
MODULE_RANDOM_ENCHANTS MODULE_SOLOCRAFT MODULE_PVP_TITLES MODULE_NPC_BEASTMASTER MODULE_NPC_ENCHANTER
MODULE_INSTANCE_RESET MODULE_LEVEL_GRANT MODULE_ARAC MODULE_ASSISTANT MODULE_REAGENT_BANK
MODULE_BLACK_MARKET_AUCTION_HOUSE MODULE_CHALLENGE_MODES MODULE_OLLAMA_CHAT MODULE_PLAYER_BOT_LEVEL_BRACKETS
MODULE_STATBOOSTER MODULE_DUNGEON_RESPAWN MODULE_SKELETON_MODULE MODULE_BG_SLAVERYVALLEY MODULE_AZEROTHSHARD
MODULE_WORGOBLIN MODULE_ELUNA_TS
)
local module_state_string=""
for module_state_var in "${MODULE_STATE_VARS[@]}"; do
local module_value="${!module_state_var:-0}"
module_state_string+="${module_state_var}=${module_value}|"
done
printf '%s' "$module_state_string" > "${host_modules_dir}/.modules_state"
rm -f "${host_modules_dir}/.requires_rebuild" 2>/dev/null || true
say SUCCESS ".env written to $ENV_OUT"
show_realm_configured
@@ -1387,11 +1422,22 @@ EOF
say INFO "Ready to bring your realm online:"
if [ "$MODULE_PLAYERBOTS" = "1" ]; then
echo " 🚀 Quick deploy: ./deploy.sh"
echo " 🔧 Manual: docker compose --profile db --profile services-playerbots --profile client-data-bots --profile modules up -d"
printf ' 🚀 Quick deploy: ./deploy.sh\n'
printf ' 🔧 Manual: docker compose --profile db --profile services-playerbots --profile client-data-bots --profile modules up -d\n'
else
echo " 🚀 Quick deploy: ./deploy.sh"
echo " 🔧 Manual: docker compose --profile db --profile services-standard --profile client-data --profile modules up -d"
printf ' 🚀 Quick deploy: ./deploy.sh\n'
printf ' 🔧 Manual: docker compose --profile db --profile services-standard --profile client-data --profile modules up -d\n'
fi
if [ "${CLI_DEPLOY_AFTER:-0}" = "1" ]; then
local deploy_args=(bash "./deploy.sh" --yes)
if [ "$MODULE_PLAYERBOTS" != "1" ]; then
deploy_args+=(--profile standard)
fi
say INFO "Launching deploy after setup (--deploy-after enabled)"
if ! "${deploy_args[@]}"; then
say WARNING "Automatic deploy failed; please run ./deploy.sh manually."
fi
fi
}