mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-01-13 09:07:20 +00:00
fix: switching source to main fork
This commit is contained in:
@@ -116,6 +116,21 @@ else
|
||||
|
||||
echo " ✅ Created $created_count module configuration files"
|
||||
|
||||
# Ensure module configuration files exist under modules directory
|
||||
MODULES_DIR="$CONFIG_DIR/modules"
|
||||
if [ -d "$MODULES_DIR" ]; then
|
||||
echo ""
|
||||
echo " 🔧 Creating module configs in modules/..."
|
||||
for file in "$MODULES_DIR"/*.conf.dist; do
|
||||
[ -f "$file" ] || continue
|
||||
target="${file%.dist}"
|
||||
if [ ! -f "$target" ]; then
|
||||
echo " 📝 Creating $(basename "$target") from $(basename "$file")"
|
||||
cp "$file" "$target"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Step 2: Update configuration files
|
||||
echo ""
|
||||
echo "🔧 Step 2: Updating configuration files..."
|
||||
@@ -130,6 +145,24 @@ else
|
||||
update_playerbots_conf /azerothcore/config/modules/playerbots.conf
|
||||
update_playerbots_conf /azerothcore/config/modules/playerbots.conf.dist
|
||||
|
||||
ensure_config_key(){
|
||||
local file="$1"
|
||||
local key="$2"
|
||||
local value="$3"
|
||||
if [ ! -f "$file" ]; then
|
||||
return
|
||||
fi
|
||||
if grep -qE "^[[:space:]]*${key}[[:space:]]*=" "$file"; then
|
||||
return
|
||||
fi
|
||||
echo " ➕ Adding ${key} to $(basename "$file")"
|
||||
printf '\n%s = %s\n' "$key" "$value" >> "$file"
|
||||
}
|
||||
|
||||
ensure_config_key /azerothcore/config/worldserver.conf "Account.Achievements.Excluded" "\"\""
|
||||
ensure_config_key /azerothcore/config/worldserver.conf "Playerbots.Updates.EnableDatabases" "1"
|
||||
ensure_config_key /azerothcore/config/worldserver.conf "PlayerbotsDatabaseInfo" "\"${MYSQL_HOST};${MYSQL_PORT};${MYSQL_USER};${MYSQL_ROOT_PASSWORD};${DB_PLAYERBOTS_NAME}\""
|
||||
|
||||
echo "✅ Configuration files updated"
|
||||
|
||||
# Step 3: Update realmlist table
|
||||
|
||||
@@ -144,131 +144,72 @@ execute_module_sql_scripts() {
|
||||
apk add --no-cache mariadb-client >/dev/null 2>&1 || echo "Warning: Could not install MariaDB client"
|
||||
}
|
||||
|
||||
# Execute SQL for enabled modules only
|
||||
if [ "$MODULE_PLAYERBOTS" = "1" ] && [ -d "mod-playerbots" ]; then
|
||||
execute_module_sql "mod-playerbots" "Playerbots"
|
||||
fi
|
||||
# Iterate modules from staging directory to catch new modules automatically
|
||||
for module_dir in */; do
|
||||
[[ -d "$module_dir" ]] || continue
|
||||
[[ "$module_dir" == "." || "$module_dir" == ".." ]] && continue
|
||||
module_dir="${module_dir%/}"
|
||||
# Only process directories that follow mod-* convention or known module names
|
||||
if [[ "$module_dir" != mod-* && "$module_dir" != StatBooster && "$module_dir" != DungeonRespawn && "$module_dir" != eluna-ts ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ "$MODULE_AOE_LOOT" = "1" ] && [ -d "mod-aoe-loot" ]; then
|
||||
execute_module_sql "mod-aoe-loot" "AoE Loot"
|
||||
fi
|
||||
local enabled=0
|
||||
case "$module_dir" in
|
||||
mod-playerbots) enabled="$MODULE_PLAYERBOTS" ;;
|
||||
mod-aoe-loot) enabled="$MODULE_AOE_LOOT" ;;
|
||||
mod-learn-spells) enabled="$MODULE_LEARN_SPELLS" ;;
|
||||
mod-fireworks-on-level) enabled="$MODULE_FIREWORKS" ;;
|
||||
mod-individual-progression) enabled="$MODULE_INDIVIDUAL_PROGRESSION" ;;
|
||||
mod-ahbot) enabled="$MODULE_AHBOT" ;;
|
||||
mod-autobalance) enabled="$MODULE_AUTOBALANCE" ;;
|
||||
mod-transmog) enabled="$MODULE_TRANSMOG" ;;
|
||||
mod-npc-buffer) enabled="$MODULE_NPC_BUFFER" ;;
|
||||
mod-dynamic-xp) enabled="$MODULE_DYNAMIC_XP" ;;
|
||||
mod-solo-lfg) enabled="$MODULE_SOLO_LFG" ;;
|
||||
mod-1v1-arena) enabled="$MODULE_1V1_ARENA" ;;
|
||||
mod-phased-duels) enabled="$MODULE_PHASED_DUELS" ;;
|
||||
mod-breaking-news-override) enabled="$MODULE_BREAKING_NEWS" ;;
|
||||
mod-boss-announcer) enabled="$MODULE_BOSS_ANNOUNCER" ;;
|
||||
mod-account-achievements) enabled="$MODULE_ACCOUNT_ACHIEVEMENTS" ;;
|
||||
mod-auto-revive) enabled="$MODULE_AUTO_REVIVE" ;;
|
||||
mod-gain-honor-guard) enabled="$MODULE_GAIN_HONOR_GUARD" ;;
|
||||
mod-ale) enabled="$MODULE_ELUNA" ;;
|
||||
mod-TimeIsTime) enabled="$MODULE_TIME_IS_TIME" ;;
|
||||
mod-pocket-portal) enabled="$MODULE_POCKET_PORTAL" ;;
|
||||
mod-random-enchants) enabled="$MODULE_RANDOM_ENCHANTS" ;;
|
||||
mod-solocraft) enabled="$MODULE_SOLOCRAFT" ;;
|
||||
mod-pvp-titles) enabled="$MODULE_PVP_TITLES" ;;
|
||||
mod-npc-beastmaster) enabled="$MODULE_NPC_BEASTMASTER" ;;
|
||||
mod-npc-enchanter) enabled="$MODULE_NPC_ENCHANTER" ;;
|
||||
mod-instance-reset) enabled="$MODULE_INSTANCE_RESET" ;;
|
||||
mod-quest-count-level) enabled="$MODULE_LEVEL_GRANT" ;;
|
||||
mod-arac) enabled="$MODULE_ARAC" ;;
|
||||
mod-assistant) enabled="$MODULE_ASSISTANT" ;;
|
||||
mod-reagent-bank) enabled="$MODULE_REAGENT_BANK" ;;
|
||||
mod-black-market) enabled="$MODULE_BLACK_MARKET_AUCTION_HOUSE" ;;
|
||||
mod-challenge-modes) enabled="$MODULE_CHALLENGE_MODES" ;;
|
||||
mod-ollama-chat) enabled="$MODULE_OLLAMA_CHAT" ;;
|
||||
mod-player-bot-level-brackets) enabled="$MODULE_PLAYER_BOT_LEVEL_BRACKETS" ;;
|
||||
StatBooster) enabled="$MODULE_STATBOOSTER" ;;
|
||||
DungeonRespawn) enabled="$MODULE_DUNGEON_RESPAWN" ;;
|
||||
skeleton-module) enabled="$MODULE_SKELETON_MODULE" ;;
|
||||
mod-bg-slaveryvalley) enabled="$MODULE_BG_SLAVERYVALLEY" ;;
|
||||
mod-azerothshard) enabled="$MODULE_AZEROTHSHARD" ;;
|
||||
mod-worgoblin) enabled="$MODULE_WORGOBLIN" ;;
|
||||
eluna-ts) enabled="$MODULE_ELUNA_TS" ;;
|
||||
*) enabled=1 ;; # Default to enabled for unknown module directories
|
||||
esac
|
||||
|
||||
if [ "$MODULE_LEARN_SPELLS" = "1" ] && [ -d "mod-learn-spells" ]; then
|
||||
execute_module_sql "mod-learn-spells" "Learn Spells"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_FIREWORKS" = "1" ] && [ -d "mod-fireworks-on-level" ]; then
|
||||
execute_module_sql "mod-fireworks-on-level" "Fireworks"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_INDIVIDUAL_PROGRESSION" = "1" ] && [ -d "mod-individual-progression" ]; then
|
||||
execute_module_sql "mod-individual-progression" "Individual Progression"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_AHBOT" = "1" ] && [ -d "mod-ahbot" ]; then
|
||||
execute_module_sql "mod-ahbot" "AHBot"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_AUTOBALANCE" = "1" ] && [ -d "mod-autobalance" ]; then
|
||||
execute_module_sql "mod-autobalance" "AutoBalance"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_TRANSMOG" = "1" ] && [ -d "mod-transmog" ]; then
|
||||
execute_module_sql "mod-transmog" "Transmog"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_NPC_BUFFER" = "1" ] && [ -d "mod-npc-buffer" ]; then
|
||||
execute_module_sql "mod-npc-buffer" "NPC Buffer"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_DYNAMIC_XP" = "1" ] && [ -d "mod-dynamic-xp" ]; then
|
||||
execute_module_sql "mod-dynamic-xp" "Dynamic XP"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_SOLO_LFG" = "1" ] && [ -d "mod-solo-lfg" ]; then
|
||||
execute_module_sql "mod-solo-lfg" "Solo LFG"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_1V1_ARENA" = "1" ] && [ -d "mod-1v1-arena" ]; then
|
||||
execute_module_sql "mod-1v1-arena" "1v1 Arena"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_PHASED_DUELS" = "1" ] && [ -d "mod-phased-duels" ]; then
|
||||
execute_module_sql "mod-phased-duels" "Phased Duels"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_BREAKING_NEWS" = "1" ] && [ -d "mod-breaking-news-override" ]; then
|
||||
execute_module_sql "mod-breaking-news-override" "Breaking News"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_BOSS_ANNOUNCER" = "1" ] && [ -d "mod-boss-announcer" ]; then
|
||||
execute_module_sql "mod-boss-announcer" "Boss Announcer"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_ACCOUNT_ACHIEVEMENTS" = "1" ] && [ -d "mod-account-achievements" ]; then
|
||||
execute_module_sql "mod-account-achievements" "Account Achievements"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_AUTO_REVIVE" = "1" ] && [ -d "mod-auto-revive" ]; then
|
||||
execute_module_sql "mod-auto-revive" "Auto Revive"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_GAIN_HONOR_GUARD" = "1" ] && [ -d "mod-gain-honor-guard" ]; then
|
||||
execute_module_sql "mod-gain-honor-guard" "Gain Honor Guard"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_ELUNA" = "1" ] && [ -d "mod-eluna" ]; then
|
||||
execute_module_sql "mod-eluna" "Eluna"
|
||||
fi
|
||||
if [ "$MODULE_ARAC" = "1" ] && [ -d "mod-arac" ]; then
|
||||
execute_module_sql "mod-arac" "All Races All Classes"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_TIME_IS_TIME" = "1" ] && [ -d "mod-TimeIsTime" ]; then
|
||||
execute_module_sql "mod-TimeIsTime" "Time Is Time"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_POCKET_PORTAL" = "1" ]; then
|
||||
echo '⚠️ Skipping mod-pocket-portal SQL: module disabled until C++20 patch is applied.'
|
||||
MODULE_POCKET_PORTAL=0
|
||||
fi
|
||||
|
||||
if [ "$MODULE_RANDOM_ENCHANTS" = "1" ] && [ -d "mod-random-enchants" ]; then
|
||||
execute_module_sql "mod-random-enchants" "Random Enchants"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_SOLOCRAFT" = "1" ] && [ -d "mod-solocraft" ]; then
|
||||
execute_module_sql "mod-solocraft" "Solocraft"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_PVP_TITLES" = "1" ] && [ -d "mod-pvp-titles" ]; then
|
||||
execute_module_sql "mod-pvp-titles" "PvP Titles"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_NPC_BEASTMASTER" = "1" ] && [ -d "mod-npc-beastmaster" ]; then
|
||||
execute_module_sql "mod-npc-beastmaster" "NPC Beastmaster"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_NPC_ENCHANTER" = "1" ] && [ -d "mod-npc-enchanter" ]; then
|
||||
execute_module_sql "mod-npc-enchanter" "NPC Enchanter"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_INSTANCE_RESET" = "1" ] && [ -d "mod-instance-reset" ]; then
|
||||
execute_module_sql "mod-instance-reset" "Instance Reset"
|
||||
fi
|
||||
|
||||
if [ "$MODULE_LEVEL_GRANT" = "1" ] && [ -d "mod-quest-count-level" ]; then
|
||||
execute_module_sql "mod-quest-count-level" "Level Grant"
|
||||
fi
|
||||
if [ "$MODULE_ASSISTANT" = "1" ] && [ -d "mod-assistant" ]; then
|
||||
execute_module_sql "mod-assistant" "Assistant"
|
||||
fi
|
||||
if [ "$MODULE_REAGENT_BANK" = "1" ] && [ -d "mod-reagent-bank" ]; then
|
||||
execute_module_sql "mod-reagent-bank" "Reagent Bank"
|
||||
fi
|
||||
if [ "$MODULE_BLACK_MARKET_AUCTION_HOUSE" = "1" ] && [ -d "mod-black-market" ]; then
|
||||
execute_module_sql "mod-black-market" "Black Market"
|
||||
fi
|
||||
if [ "${enabled:-0}" = "1" ]; then
|
||||
# Skip modules explicitly disabled for SQL
|
||||
if [ "$module_dir" = "mod-pocket-portal" ]; then
|
||||
echo '⚠️ Skipping mod-pocket-portal SQL: module disabled until C++20 patch is applied.'
|
||||
continue
|
||||
fi
|
||||
execute_module_sql "$module_dir" "$module_dir"
|
||||
fi
|
||||
done
|
||||
|
||||
run_custom_sql_group world "${DB_WORLD_NAME}" "custom world SQL"
|
||||
run_custom_sql_group auth "${DB_AUTH_NAME}" "custom auth SQL"
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
# ac-compose
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
||||
|
||||
echo 'Setting up git user'
|
||||
git config --global user.name "${GIT_USERNAME:-ac-compose}"
|
||||
git config --global user.email "${GIT_EMAIL:-noreply@azerothcore.org}"
|
||||
@@ -101,8 +104,12 @@ if [ "$MODULE_GAIN_HONOR_GUARD" != "1" ] && [ -d "mod-gain-honor-guard" ]; then
|
||||
rm -rf mod-gain-honor-guard
|
||||
fi
|
||||
|
||||
if [ "$MODULE_ELUNA" != "1" ] && [ -d "mod-eluna" ]; then
|
||||
echo 'Removing mod-eluna (disabled)...'
|
||||
if [ "$MODULE_ELUNA" != "1" ] && [ -d "mod-ale" ]; then
|
||||
echo 'Removing mod-ale (disabled)...'
|
||||
rm -rf mod-ale
|
||||
fi
|
||||
if [ "$MODULE_ELUNA" = "1" ] && [ -d "mod-eluna" ]; then
|
||||
echo 'Removing legacy mod-eluna directory (superseded by mod-ale)...'
|
||||
rm -rf mod-eluna
|
||||
fi
|
||||
if [ "$MODULE_ARAC" != "1" ] && [ -d "mod-arac" ]; then
|
||||
@@ -366,13 +373,27 @@ if [ "$MODULE_GAIN_HONOR_GUARD" = "1" ] && [ ! -d "mod-gain-honor-guard" ]; then
|
||||
git clone https://github.com/azerothcore/mod-gain-honor-guard.git mod-gain-honor-guard
|
||||
fi
|
||||
|
||||
if [ "$MODULE_ELUNA" = "1" ] && [ ! -d "mod-eluna" ]; then
|
||||
echo '🖥️ Installing mod-eluna...'
|
||||
echo ' 📖 Project: https://github.com/azerothcore/mod-eluna'
|
||||
echo ' ℹ️ Lua scripting engine for custom server functionality'
|
||||
if [ "$MODULE_ELUNA" = "1" ] && [ ! -d "mod-ale" ]; then
|
||||
echo '🖥️ Installing mod-ale (AzerothCore Lua Engine)...'
|
||||
echo ' 📖 Project: https://github.com/azerothcore/mod-ale'
|
||||
echo ' ℹ️ Next-generation Lua scripting engine for AzerothCore'
|
||||
echo ' 🔧 REBUILD REQUIRED: Container must be rebuilt with source-based compilation'
|
||||
git clone https://github.com/azerothcore/mod-eluna.git mod-eluna
|
||||
git clone https://github.com/azerothcore/mod-ale.git mod-ale
|
||||
fi
|
||||
|
||||
if [ -d "mod-ale" ]; then
|
||||
creature_methods_file="mod-ale/src/LuaEngine/methods/CreatureMethods.h"
|
||||
if grep -q 'MoveWaypoint(creature->GetWaypointPath(), true);' "$creature_methods_file" 2>/dev/null; then
|
||||
if sed -i 's/MoveWaypoint(creature->GetWaypointPath(), true);/MovePath(creature->GetWaypointPath(), true);/' "$creature_methods_file"; then
|
||||
echo ' ✅ Applied mod-ale MovePath compatibility fix (upstream issue #336)'
|
||||
else
|
||||
echo ' ⚠️ Failed to adjust mod-ale MoveWaypoint call'
|
||||
fi
|
||||
else
|
||||
echo ' ℹ️ mod-ale MovePath compatibility fix already present'
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$MODULE_ARAC" = "1" ] && [ ! -d "mod-arac" ]; then
|
||||
echo '🌈 Installing mod-arac...'
|
||||
echo ' 📖 Project: https://github.com/heyitsbench/mod-arac'
|
||||
@@ -447,18 +468,31 @@ if [ "$MODULE_BLACK_MARKET_AUCTION_HOUSE" = "1" ] && [ ! -d "mod-black-market" ]
|
||||
echo ' 📖 Project: https://github.com/Youpeoples/Black-Market-Auction-House'
|
||||
echo ' ℹ️ MoP Black Market Auction House backported using Eluna Lua engine'
|
||||
echo ' ⚠️ SPECIAL MODULE: Uses Lua scripts, not C++ compilation'
|
||||
echo ' 🔧 REQUIRES: mod-eluna must be enabled and functional'
|
||||
echo ' 🔧 REQUIRES: mod-ale must be enabled and functional'
|
||||
git clone https://github.com/Youpeoples/Black-Market-Auction-House.git mod-black-market
|
||||
|
||||
# Special handling: Copy Lua scripts to lua_scripts directory
|
||||
if [ "$MODULE_ELUNA" = "1" ] && [ -d "mod-black-market/Server Files/lua_scripts" ]; then
|
||||
echo ' 🔧 Integrating Black Market Lua scripts with mod-eluna...'
|
||||
mkdir -p /azerothcore/lua_scripts
|
||||
cp -r mod-black-market/Server\ Files/lua_scripts/* /azerothcore/lua_scripts/ 2>/dev/null || true
|
||||
echo ' ✅ Black Market Lua scripts copied to /azerothcore/lua_scripts directory'
|
||||
ls -la /azerothcore/lua_scripts/ | grep -E "\.lua$" || echo " ℹ️ No .lua files found after copy"
|
||||
echo ' 🔧 Integrating Black Market Lua scripts with mod-ale...'
|
||||
if mkdir -p /azerothcore/lua_scripts 2>/dev/null; then
|
||||
if cp -r "mod-black-market/Server Files/lua_scripts/." /azerothcore/lua_scripts/ 2>/dev/null; then
|
||||
echo ' ✅ Black Market Lua scripts copied to /azerothcore/lua_scripts directory'
|
||||
ls -la /azerothcore/lua_scripts/ | grep -E "\.lua$" || echo " ℹ️ No .lua files found after copy"
|
||||
else
|
||||
echo ' ⚠️ WARNING: Failed to copy Lua scripts into /azerothcore/lua_scripts; continuing'
|
||||
fi
|
||||
elif [ -n "${MODULES_HOST_DIR:-}" ]; then
|
||||
host_lua_dir="${MODULES_HOST_DIR%/}/lua_scripts"
|
||||
if mkdir -p "$host_lua_dir" && cp -r "mod-black-market/Server Files/lua_scripts/." "$host_lua_dir/" 2>/dev/null; then
|
||||
echo " ✅ Black Market Lua scripts staged to $host_lua_dir"
|
||||
else
|
||||
echo " ⚠️ WARNING: Unable to stage Lua scripts to $host_lua_dir; continuing"
|
||||
fi
|
||||
else
|
||||
echo ' ⚠️ WARNING: No writable target for Lua scripts; continuing without copy'
|
||||
fi
|
||||
else
|
||||
echo ' ⚠️ WARNING: mod-eluna not enabled - Black Market will not function'
|
||||
echo ' ⚠️ WARNING: mod-ale not enabled - Black Market will not function'
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -687,6 +721,20 @@ for module_dir in mod-*; do
|
||||
fi
|
||||
done
|
||||
|
||||
# Populate module-specific configuration directory (/etc/modules)
|
||||
MODULES_CONF_DIR="/azerothcore/env/dist/etc/modules"
|
||||
mkdir -p "$MODULES_CONF_DIR"
|
||||
rm -f "$MODULES_CONF_DIR"/*.conf "$MODULES_CONF_DIR"/*.conf.dist 2>/dev/null || true
|
||||
for module_dir in mod-*; do
|
||||
[ -d "$module_dir" ] || continue
|
||||
while IFS= read -r conf_file; do
|
||||
[ -n "$conf_file" ] || continue
|
||||
base_name="$(basename "$conf_file")"
|
||||
dest_name="${base_name%.dist}"
|
||||
cp "$conf_file" "$MODULES_CONF_DIR/$dest_name"
|
||||
done < <(find "$module_dir" -path "*/conf/*" -type f \( -name "*.conf" -o -name "*.conf.dist" \) 2>/dev/null)
|
||||
done
|
||||
|
||||
if [ "$MODULE_AUTOBALANCE" = "1" ]; then
|
||||
if [ -f "/azerothcore/env/dist/etc/AutoBalance.conf.dist" ]; then
|
||||
sed -i 's/^AutoBalance\.LevelScaling\.EndGameBoost.*/AutoBalance.LevelScaling.EndGameBoost = false # disabled pending proper implementation/' \
|
||||
@@ -772,7 +820,7 @@ ENABLED_MODULES=""
|
||||
[ "$MODULE_ACCOUNT_ACHIEVEMENTS" = "1" ] && ENABLED_MODULES="$ENABLED_MODULES mod-account-achievements"
|
||||
[ "$MODULE_AUTO_REVIVE" = "1" ] && ENABLED_MODULES="$ENABLED_MODULES mod-auto-revive"
|
||||
[ "$MODULE_GAIN_HONOR_GUARD" = "1" ] && ENABLED_MODULES="$ENABLED_MODULES mod-gain-honor-guard"
|
||||
[ "$MODULE_ELUNA" = "1" ] && ENABLED_MODULES="$ENABLED_MODULES mod-eluna"
|
||||
[ "$MODULE_ELUNA" = "1" ] && ENABLED_MODULES="$ENABLED_MODULES mod-ale"
|
||||
[ "$MODULE_TIME_IS_TIME" = "1" ] && ENABLED_MODULES="$ENABLED_MODULES mod-time-is-time"
|
||||
[ "$MODULE_RANDOM_ENCHANTS" = "1" ] && ENABLED_MODULES="$ENABLED_MODULES mod-random-enchants"
|
||||
[ "$MODULE_SOLOCRAFT" = "1" ] && ENABLED_MODULES="$ENABLED_MODULES mod-solocraft"
|
||||
|
||||
@@ -88,10 +88,10 @@ COMPILE_MODULE_KEYS=(
|
||||
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_TIME_IS_TIME MODULE_POCKET_PORTAL MODULE_RANDOM_ENCHANTS MODULE_SOLOCRAFT MODULE_PVP_TITLES MODULE_NPC_BEASTMASTER
|
||||
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_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_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
|
||||
)
|
||||
|
||||
modules_require_playerbot_source(){
|
||||
@@ -170,14 +170,15 @@ REBUILD_SOURCE_PATH="$(realpath "$REBUILD_SOURCE_PATH" 2>/dev/null || echo "$REB
|
||||
LOCAL_MODULES_DIR="$REBUILD_SOURCE_PATH/modules"
|
||||
LOCAL_STAGING_MODULES_DIR="$LOCAL_STORAGE_PATH/modules"
|
||||
|
||||
if [ -d "$LOCAL_MODULES_DIR" ]; then
|
||||
echo "🔧 Using modules from source directory: $LOCAL_MODULES_DIR"
|
||||
MODULES_DIR="$LOCAL_MODULES_DIR"
|
||||
# Build sentinel always stays in local storage for consistency
|
||||
else
|
||||
if [ -d "$LOCAL_STAGING_MODULES_DIR" ] && [ "$(ls -A "$LOCAL_STAGING_MODULES_DIR" 2>/dev/null)" ]; then
|
||||
echo "🔧 Using modules from local staging: $LOCAL_STAGING_MODULES_DIR"
|
||||
MODULES_DIR="$LOCAL_STAGING_MODULES_DIR"
|
||||
# Build sentinel always stays in local storage for consistency
|
||||
elif [ -d "$LOCAL_MODULES_DIR" ]; then
|
||||
echo "🔧 Using modules from source directory: $LOCAL_MODULES_DIR"
|
||||
MODULES_DIR="$LOCAL_MODULES_DIR"
|
||||
else
|
||||
echo "⚠️ No local module staging detected; falling back to source directory $LOCAL_MODULES_DIR"
|
||||
MODULES_DIR="$LOCAL_MODULES_DIR"
|
||||
fi
|
||||
|
||||
SOURCE_COMPOSE="$REBUILD_SOURCE_PATH/docker-compose.yml"
|
||||
@@ -208,6 +209,7 @@ declare -A MODULE_REPO_MAP=(
|
||||
[MODULE_ACCOUNT_ACHIEVEMENTS]=mod-account-achievements
|
||||
[MODULE_AUTO_REVIVE]=mod-auto-revive
|
||||
[MODULE_GAIN_HONOR_GUARD]=mod-gain-honor-guard
|
||||
[MODULE_ELUNA]=mod-ale
|
||||
[MODULE_TIME_IS_TIME]=mod-TimeIsTime
|
||||
[MODULE_POCKET_PORTAL]=mod-pocket-portal
|
||||
[MODULE_RANDOM_ENCHANTS]=mod-random-enchants
|
||||
@@ -220,6 +222,7 @@ declare -A MODULE_REPO_MAP=(
|
||||
[MODULE_ARAC]=mod-arac
|
||||
[MODULE_ASSISTANT]=mod-assistant
|
||||
[MODULE_REAGENT_BANK]=mod-reagent-bank
|
||||
[MODULE_BLACK_MARKET_AUCTION_HOUSE]=mod-black-market
|
||||
[MODULE_CHALLENGE_MODES]=mod-challenge-modes
|
||||
[MODULE_OLLAMA_CHAT]=mod-ollama-chat
|
||||
[MODULE_PLAYER_BOT_LEVEL_BRACKETS]=mod-player-bot-level-brackets
|
||||
@@ -229,6 +232,7 @@ declare -A MODULE_REPO_MAP=(
|
||||
[MODULE_BG_SLAVERYVALLEY]=mod-bg-slaveryvalley
|
||||
[MODULE_AZEROTHSHARD]=mod-azerothshard
|
||||
[MODULE_WORGOBLIN]=mod-worgoblin
|
||||
[MODULE_ELUNA_TS]=eluna-ts
|
||||
)
|
||||
|
||||
compile_modules=()
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
DELETE FROM arena_team_member
|
||||
WHERE guid IN (
|
||||
SELECT guid
|
||||
FROM arena_team_member atm
|
||||
JOIN arena_team ate ON atm.arenaTeamId = ate.arenaTeamId
|
||||
JOIN characters c ON c.guid = atm.guid
|
||||
WHERE ate.type = 5
|
||||
AND c.deleteInfos_Account IS NULL
|
||||
AND c.name IN (
|
||||
SELECT p.name
|
||||
FROM playerbots p
|
||||
WHERE p.bot = 1
|
||||
)
|
||||
AND EXISTS (
|
||||
SELECT 1
|
||||
FROM arena_team_member atm2
|
||||
JOIN characters c2 ON atm2.guid = c2.guid
|
||||
WHERE atm2.arenaTeamId = atm.arenaTeamId
|
||||
AND c2.deleteInfos_Account IS NULL
|
||||
AND c2.guid != c.guid
|
||||
)
|
||||
);
|
||||
|
||||
DELETE atm
|
||||
FROM arena_team_member atm
|
||||
JOIN characters c ON c.guid = atm.guid
|
||||
WHERE atm.guid IN (
|
||||
SELECT guid
|
||||
FROM (
|
||||
SELECT guid, COUNT(*) AS cnt
|
||||
FROM arena_team_member
|
||||
GROUP BY guid
|
||||
HAVING cnt > 1
|
||||
) dup
|
||||
)
|
||||
AND c.deleteInfos_Account IS NULL;
|
||||
Reference in New Issue
Block a user