From ee04883e2451366b716247877c0ba38efb245410 Mon Sep 17 00:00:00 2001 From: ChristianANoeddeboe Date: Wed, 13 Nov 2024 20:50:20 +0100 Subject: [PATCH] Updated playerbot config Changed playerbot install folder to Playerbots instead of Bots Updated mangosd dockerfile to have better steps. Updated both dockerfiles to use latest release of mangos instead of master --- config/aiplayerbot.conf | 120 +++++++++++++++++++++------------------ docker-compose.yml | 3 + mangosd/Dockerfile | 71 ++++++++++++----------- realmd/Dockerfile | 2 +- scripts/InstallFullDB.sh | 21 ++----- scripts/mangosd.sh | 12 ++-- 6 files changed, 120 insertions(+), 109 deletions(-) diff --git a/config/aiplayerbot.conf b/config/aiplayerbot.conf index 6bdea7c..ad6ddc0 100644 --- a/config/aiplayerbot.conf +++ b/config/aiplayerbot.conf @@ -2,6 +2,10 @@ # MANGOS Ai Playerbot Configuration file # ########################################## +# AiPlayerbot.AllowedLogFiles = player_paths.csv,activity_pid.csv,quest_map.csv,travel_map.csv,zones.csv,creatures.csv,gos.csv,travelNodes.csv,travelPaths.csv,bot_movement.csv,player_location.csv,bot_events.csv,telecache.csv,log_analysis.csv +AiPlayerbot.ShouldQueryAHListingsOutsideOfAH = 1 +AiPlayerbot.enableRandomTeleports = 0 + [AiPlayerbotConf] ConfVersion=2020072501 @@ -15,7 +19,7 @@ AiPlayerbot.RandomBotAutologin = 1 AiPlayerbot.RandomBotLoginAtStartup = 1 # Disable automatic DBStore save -AiPlayerbot.ExplicitDbStoreSave = 0 +# AiPlayerbot.ExplicitDbStoreSave = 0 # Log out random bots after BotInWorldTime interval # AiPlayerbot.RandomBotTimedLogout = 1 @@ -32,6 +36,9 @@ AiPlayerbot.DeleteRandomBotAccounts = 0 # auto-login all player alts as bots on player login AiPlayerbot.BotAutologin = 0 +# Guild Task system +AiPlayerbot.EnableGuildTasks = 0 + # Enable LFG for random bots AiPlayerbot.RandomBotJoinLfg = 1 @@ -39,17 +46,17 @@ AiPlayerbot.RandomBotJoinLfg = 1 AiPlayerbot.RandomBotJoinBG = 1 # Enable Auto join BG - bots randomly join WSG and 2v2 Arena if server is not lagging -AiPlayerbot.RandomBotAutoJoinBG = 0 +AiPlayerbot.RandomBotAutoJoinBG = 1 # Mark many quests <= Bot level as complete (slows down bot creation) -AiPlayerbot.PreQuests = 0 +AiPlayerbot.PreQuests = 1 # Create random bot characters automatically AiPlayerbot.RandomBotAutoCreate = 1 # Random bot count -AiPlayerbot.MinRandomBots = 1000 -AiPlayerbot.MaxRandomBots = 1000 +AiPlayerbot.MinRandomBots = 100 +AiPlayerbot.MaxRandomBots = 100 AiPlayerbot.RandomBotMinLevel = 1 AiPlayerbot.RandomBotMaxLevel = 60 @@ -71,7 +78,7 @@ AiPlayerbot.DisableBotOptimizations = 1 AiPlayerbot.DisableActivityPriorities = 1 # Percentage of fully active bots. Default is 10, higher numbers may affect performance -# AiPlayerbot.botActiveAlone = 10 +AiPlayerbot.botActiveAlone = 100 # Limit random bot max level to online players max level + 5 and uses reference level 1 without a player. # AiPlayerbot.SyncLevelWithPlayers = 0 @@ -113,7 +120,7 @@ AiPlayerbot.RandomGearUpgradeEnabled = 0 AiPlayerbot.RandomGearBlacklist = 0 # Chance random bot has max level on first randomize (default 0.15) -AiPlayerbot.RandomBotMaxLevelChance = 0 +AiPlayerbot.RandomBotMaxLevelChance = 0.15 # Chance bot chooses RPG (Teleport to random camp for their level) instead of grinding AiPlayerbot.RandomBotRpgChance = 0.10 @@ -128,16 +135,15 @@ AiPlayerbot.RandomBotRpgChance = 0.10 # AiPlayerbot.RandomBotTeleportNearPlayerMaxAmountRadius = 0 # Chance for bot to use potions -#AiPlayerbot.UsePotionChance = 1.0 +# AiPlayerbot.UsePotionChance = 1.0 # Bots will speed up when following to stay close. # AiPlayerbot.BoostFollow = 1 - # Bots and npcs turn to eachother during an rpg interaction AiPlayerbot.TurnInRpg = 0 # Bots will make sounds when repairing, selling items ect. -AiPlayerbot.GlobalSoundEffects = 0 +AiPlayerbot.GlobalSoundEffects = 1 # Show progress bars for random bots (disabled by default) AiPlayerbot.ShowProgressBars = 1 @@ -165,11 +171,11 @@ AiPlayerbot.DisableRandomLevels = 1 # Set XP rate for bots (default: 1) # Server XP Rate * AiPlayerbot.XPRate -AiPlayerbot.XPRate = 2 +# AiPlayerbot.XPRate = 1 # Set minimum level of randombots where gets enchants on items (Maxlevel + 1 to disable) # Default: 60 -AiPlayerbot.minEnchantingBotLevel = 81 +AiPlayerbot.minEnchantingBotLevel = 50 # Randombots checking players gear score level and deny the group invite if it's too low # Default: 0 (disabled) @@ -186,24 +192,32 @@ AiPlayerbot.ImmuneSpellIds = 19428 AiPlayerbot.RandomBotQuestIds = 7848,3802,5505,6502,7761,9378 # Randombots will invite players to groups/raids/guilds. (This can also be disabled by turning on DnD on your character) -# AiPlayerbot.RandomBotInvitePlayer = 1 +AiPlayerbot.RandomBotInvitePlayer = 1 # Randombots will invite nearby bots to groups/raids/guilds -# AiPlayerbot.RandomBotGroupNearby = 1 -# AiPlayerbot.RandomBotRaidNearby = 1 -# AiPlayerbot.RandomBotGuildNearby = 1 +AiPlayerbot.RandomBotGroupNearby = 1 +AiPlayerbot.RandomBotRaidNearby = 1 +AiPlayerbot.RandomBotGuildNearby = 1 # Randombots will form guilds by buying a charter, getting signatures and handing it in. -# AiPlayerbot.RandomBotFormGuild = 1 +AiPlayerbot.RandomBotFormGuild = 1 # Bots will chat in say/guild when they invite other bots to groups/raids/guilds -# AiPlayerbot.InviteChat = 1 +AiPlayerbot.InviteChat = 1 + +# Bots will chat in guild about certain events +AIPlayerbot.GuildFeedbackRate = 100.0 # Actual events like levelup, hard kills or nice loot. +AiPlayerbot.GuildSuggestRate = 25.0 # Random suggestions. +AiPlayerbot.GuildRepliesRate = 10.0 # Reply someone saying something. + +# Bots without a master will say their lines +# AiPlayerbot.RandomBotSayWithoutMaster = 0 # The summon command can be used without restriction by non-gms. # AiPlayerbot.NonGmFreeSummon = 0 # Bots will put their talentspec in guild notes when they change/tell their talents if they have the rights. -# AiPlayerbot.TalentsInPublicNote = 0 +AiPlayerbot.TalentsInPublicNote = 1 #max limit of members in a guild (bots will leave guild if there are more members than this number) # AiPlayerbot.guildMaxBotLimit = 1000 @@ -309,7 +323,7 @@ AiPlayerbot.RandomBotQuestIds = 7848,3802,5505,6502,7761,9378 # Automation # Bots pick their quest reward (yes = picks first useful item, no = list all rewards, ask = pick useful item and lists if multiple) -AiPlayerbot.AutoPickReward = ask +AiPlayerbot.AutoPickReward = yes # Bots equip upgrades (Bots will equip any item obtained from looting or a quest if they are upgrades) # Default: 0 (disabled) @@ -317,7 +331,7 @@ AiPlayerbot.AutoEquipUpgradeLoot = 1 # Sync quests with player (Bots will complete quests the moment you hand them in. Bots will ignore looting quest items.) # Default: 0 (disabled) -AiPlayerbot.SyncQuestWithPlayer = 1 +AiPlayerbot.SyncQuestWithPlayer = 0 # Bot automatically trains spells when talking to trainer (yes = train all available spells as long as the bot has the money, free = auto trains with no money cost, no = only list spells) AiPlayerbot.AutoTrainSpells = yes @@ -483,8 +497,10 @@ AiPlayerbot.PremadeSpecName.2.1 = pve dps ret (geared ret) AiPlayerbot.PremadeSpecLink.2.1.60 = 5550012--552300512003151 AiPlayerbot.PremadeSpecName.2.2 = pve heal holy (sanctuary) AiPlayerbot.PremadeSpecLink.2.2.60 = 0550312152105-503251000131 -AiPlayerbot.PremadeSpecName.2.3 = pve heal holy (prot! holy shock taunt) +AiPlayerbot.PremadeSpecName.2.3 = pve heal holy (holy shock) AiPlayerbot.PremadeSpecLink.2.3.60 = 55153122501001-053200334 +AiPlayerbot.PremadeSpecName.2.9 = pve tank prot (stun reckoning) +AiPlayerbot.PremadeSpecLink.2.9.60 = 500501-053051335301551 AiPlayerbot.PremadeSpecName.2.4 = pvp heal holy AiPlayerbot.PremadeSpecProb.2.4 = 80 @@ -527,23 +543,17 @@ AiPlayerbot.PremadeSpecName.3.7 = pvp dps bm AiPlayerbot.PremadeSpecLink.3.7.60 = 1500322150501051-051510305 # Rogue -AiPlayerbot.PremadeSpecName.4.2 = pve dps combat (swords) -AiPlayerbot.PremadeSpecLink.4.2.60 = 005323105-3210052020050150231 -AiPlayerbot.PremadeSpecName.4.3 = pve dps combat (daggers) -AiPlayerbot.PremadeSpecLink.4.3.60 = 005023005-3203052020550100201-05 -AiPlayerbot.PremadeSpecName.4.4 = pve dps combat (daggers2) -AiPlayerbot.PremadeSpecLink.4.4.60 = 305020005-02505501005001-50005002 -AiPlayerbot.PremadeSpecName.4.5 = pve dps combat -AiPlayerbot.PremadeSpecLink.4.5.60 = 305023005-3200550100050150231 +AiPlayerbot.PremadeSpecName.4.0 = pve dps combat (swords) +AiPlayerbot.PremadeSpecLink.4.0.60 = 005323105-3210052020050150231 +AiPlayerbot.PremadeSpecName.4.1 = pve dps combat (daggers) +AiPlayerbot.PremadeSpecLink.4.1.60 = 005023005-3203052020550100201-05 +AiPlayerbot.PremadeSpecName.4.2 = pve dps assassination +AiPlayerbot.PremadeSpecLink.4.2.60 = 305303105501051-303305-05 AiPlayerbot.PremadeSpecName.4.6 = pvp dps combat (swords) AiPlayerbot.PremadeSpecLink.4.6.60 = 005323105-3210052020050150231 -AiPlayerbot.PremadeSpecName.4.7 = pvp dps combat (daggers) -AiPlayerbot.PremadeSpecLink.4.7.60 = 005023005-3203052020550100201-05 -AiPlayerbot.PremadeSpecName.4.8 = pvp dps combat (daggers2) -AiPlayerbot.PremadeSpecLink.4.8.60 = 305020005-02505501005001-50005002 -AiPlayerbot.PremadeSpecName.4.9 = pvp dps combat -AiPlayerbot.PremadeSpecLink.4.9.60 = 305023005-3200550100050150231 +AiPlayerbot.PremadeSpecName.4.9 = pvp dps subtlety +AiPlayerbot.PremadeSpecLink.4.9.60 = 305320115001-32-500243100330121 # Priest @@ -590,7 +600,7 @@ AiPlayerbot.PremadeSpecProb.8.0 = 33 AiPlayerbot.PremadeSpecLink.8.0.60 = 2300450310031531--053500030013 AiPlayerbot.PremadeSpecName.8.1 = pve dps fire AiPlayerbot.PremadeSpecProb.8.1 = 33 -AiPlayerbot.PremadeSpecLink.8.1.60 = 230055000002-5052000123033151-003 +AiPlayerbot.PremadeSpecLink.8.1.60 = 23005500002-5052020023033051-003 AiPlayerbot.PremadeSpecName.8.2 = pve dps frost (winter’s chill spec) AiPlayerbot.PremadeSpecProb.8.2 = 33 AiPlayerbot.PremadeSpecLink.8.2.60 = 230045030003--05350003101301351 @@ -703,7 +713,7 @@ AiPlayerbot.AllowGuildBots = 1 AiPlayerbot.AllowMultiAccountAltBots = 1 # Delay between two short-time spells cast (Default 500) -AiPlayerbot.GlobalCooldown = 1500 +AiPlayerbot.GlobalCooldown = 500 # Max wait time when moving #AiPlayerbot.MaxWaitForMove = 5000 @@ -771,17 +781,10 @@ AiPlayerbot.FleeingEnabled = 1 #AiPlayerbot.MediumMana = 40 # Random bot default strategies (applied after defaults) -#AiPlayerbot.RandomBotCombatStrategies = +dps,+dps assist,-threat -#AiPlayerbot.RandomBotNonCombatStrategies = +grind,+loot,+rpg,+custom::say -#AiPlayerbot.RandomBotReactStrategies = -#AiPlayerbot.RandomBotDeadStrategies = -#AiPlayerbot.CombatStrategies = +custom::say -#AiPlayerbot.NonCombatStrategies = +custom::say,+return,+delayed roll -#AiPlayerbot.ReactStrategies = -#AiPlayerbot.DeadStrategies = - -# Quest items to leave (do not destroy) -#AiPlayerbot.RandomBotQuestItems = 6948,5175,5176,5177,5178,16309,12382,13704,11000 +AiPlayerbot.RandomBotCombatStrategies = +AiPlayerbot.RandomBotNonCombatStrategies = +custom::say,+rpg craft +AiPlayerbot.CombatStrategies = +custom::say,+shadow +AiPlayerbot.NonCombatStrategies = +return,+delayed roll,+rpg craft # PvP Restricted Zones (bots don't pvp) #AiPlayerbot.PvpProhibitedZoneIds = 2255,656,2361,2362,2363,976,35,2268,3425,392,541,1446,3828,3712,3738,3565,3539,3623,4152,3988,4658,4284,4418,4436,4275,4323 @@ -795,11 +798,11 @@ AiPlayerbot.FleeingEnabled = 1 #AiPlayerbot.OpenGoSpell = 6477 # Intervals -AiPlayerbot.RandomBotUpdateInterval = 1 +#AiPlayerbot.RandomBotUpdateInterval = 1 AiPlayerbot.RandomBotCountChangeMinInterval = 1800 AiPlayerbot.RandomBotCountChangeMaxInterval = 7200 -#AiPlayerbot.MinRandomBotInWorldTime = 3600 -#AiPlayerbot.MaxRandomBotInWorldTime = 1209600 +AiPlayerbot.MinRandomBotInWorldTime = 360 +AiPlayerbot.MaxRandomBotInWorldTime = 3600 #AiPlayerbot.MinRandomBotRandomizeTime = 7200 #AiPlayerbot.MaxRandomRandomizeTime = 1209600 #AiPlayerbot.RandomBotsPerInterval = 3 @@ -874,7 +877,6 @@ AiPlayerbot.UseKnockback = 1 AiPlayerbot.PerfMonEnabled = 0 - ################################################################################## # # # !!EXPERIMENTAL!! # @@ -899,15 +901,21 @@ AiPlayerbot.PerfMonEnabled = 0 # movespeed (very fast movespeed) # attackspeed (very fast attackspeed) # breath (underwater breathing) -# AiPlayerbot.BotCheats = taxi,item,breath +# AiPlayerbot.BotCheats = + + +# The summon command can be used without restriction by non-gms. +# AiPlayerbot.NonGmFreeSummon = 0 + +# Bots will put their talentspec in guild notes when they change/tell their talents if they have the rights. +# AiPlayerbot.TalentsInPublicNote = 0 # Self bot turns your current character into a bot with the command ".bot self" # !!DISCLAMER!! Selfbots will work and act like randombots based on their enabled strategies. Your epic mount will be sold to a vendor! # Self bot level. Values: 0 (disabled), 1 (Game masters only), 2 (Any player), 3 (Enabled on login), 4 (Enabled even when offline) -# AiPlayerbot.SelfBotLevel = 1 +AiPlayerbot.SelfBotLevel = 2 # Account/character names that are either, always online as bot (SelfBotLevel < 4) or prevented from being always online as bot (SelfBotLevel = 4) -# When AiPlayerbot.BotAutologin is set to 2 these characters only log in on player (on the same account) logs in. # AiPlayerbot.ToggleAlwaysOnlineAccounts = # AiPlayerbot.ToggleAlwaysOnlineChars = diff --git a/docker-compose.yml b/docker-compose.yml index 42d20a8..5f7d126 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,7 +19,9 @@ services: MYSQL_INTERACTIVE_TIMEOUT: 28800 MYSQL_MAX_ALLOWED_PACKET: 128M volumes: + - db:/var/lib/mysql - "./db:/config" + #- "./db:/etc/mysql/conf.d" networks: - mangosbot-network ports: @@ -46,6 +48,7 @@ services: # dockerfile: ./mangosd/Dockerfile # args: # - BUILD_PLAYERBOT=ON + # - BUILD_AHBOT=ON image: angercraft/mangosbot-mangosd container_name: cmangos-classic-mangosd networks: diff --git a/mangosd/Dockerfile b/mangosd/Dockerfile index 28310c6..7756b94 100644 --- a/mangosd/Dockerfile +++ b/mangosd/Dockerfile @@ -1,28 +1,9 @@ # Download base image ubuntu -FROM ubuntu:22.04 AS builder +FROM ubuntu:22.04 AS base -ARG CORE_COMMIT_HASH -ARG DB_COMMIT_HASH -ARG BUILD_AHBOT=OFF -ARG BUILD_PLAYERBOT=OFF -ARG BUILD_EXTRACTORS=OFF +ENV CMAKE_VERSION=3.24.2 -# Write out build arguments -RUN echo "CORE_COMMIT_HASH=$CORE_COMMIT_HASH" && \ - echo "DB_COMMIT_HASH=$DB_COMMIT_HASH" && \ - echo "BUILD_AHBOT=$BUILD_AHBOT" && \ - echo "BUILD_PLAYERBOT=$BUILD_PLAYERBOT" && \ - echo "BUILD_EXTRACTORS=$BUILD_EXTRACTORS" - -# Set Timezone -ENV TZ=Europe/Amsterdam \ - ENV_CORE_COMMIT_HASH=$CORE_COMMIT_HASH \ - ENV_DB_COMMIT_HASH=$DB_COMMIT_HASH \ - CMAKE_VERSION=3.24.2 - -# Write out environment variables -RUN echo "ENV_CORE_COMMIT_HASH=$ENV_CORE_COMMIT_HASH" && \ - echo "ENV_DB_COMMIT_HASH=$ENV_DB_COMMIT_HASH" +RUN echo "ENV_CMAKE_VERSION=$CMAKE_VERSION" # Update Ubuntu Software repository RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ @@ -68,12 +49,6 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ && apt-get clean && \ rm -rf /var/lib/apt/lists/* -# cpp \ -# # clang \ -# patch \ -# pkg-config \ -# unrar-free \ - # Temporary fix for broken GCC RUN apt-get update && apt-get -y install g++-12 && \ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12 --slave /usr/bin/g++ g++ /usr/bin/g++-12 @@ -85,18 +60,49 @@ RUN cd /tmp && wget --no-check-certificate https://github.com/Kitware/CMake/rele ln -s /opt/cmake/bin/* /usr/local/bin/ && \ rm -f /tmp/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz +FROM base AS builder + +ARG CORE_COMMIT_HASH +ARG DB_COMMIT_HASH +ARG BUILD_AHBOT=OFF +ARG BUILD_PLAYERBOT=OFF +ARG BUILD_EXTRACTORS=OFF +ARG CMAKE_FLAGS="" +# Write out build arguments +RUN echo "CORE_COMMIT_HASH=$CORE_COMMIT_HASH" && \ + echo "DB_COMMIT_HASH=$DB_COMMIT_HASH" && \ + echo "BUILD_AHBOT=$BUILD_AHBOT" && \ + echo "BUILD_PLAYERBOT=$BUILD_PLAYERBOT" && \ + echo "BUILD_EXTRACTORS=$BUILD_EXTRACTORS" && \ + echo "CMAKE_FLAGS=$CMAKE_FLAGS" + +# Set Timezone +ENV TZ=Europe/Amsterdam +ENV ENV_CORE_COMMIT_HASH=$CORE_COMMIT_HASH +ENV ENV_DB_COMMIT_HASH=$DB_COMMIT_HASH +ENV ENV_CMAKE_FLAGS=$CMAKE_FLAGS + +# Write out environment variables +RUN echo "ENV_CORE_COMMIT_HASH=$ENV_CORE_COMMIT_HASH" && \ + echo "ENV_DB_COMMIT_HASH=$ENV_DB_COMMIT_HASH" && \ + echo "ENV_BUILD_AHBOT=$BUILD_AHBOT" && \ + echo "ENV_BUILD_PLAYERBOT=$BUILD_PLAYERBOT" && \ + echo "ENV_CMAKE_FLAGS=$ENV_CMAKE_FLAGS" + # Prepare Sources RUN mkdir -p /opt/cmangos && \ - git clone https://github.com/cmangos/mangos-classic.git /opt/cmangos && \ + git clone https://github.com/cmangos/mangos-classic.git --branch latest /opt/cmangos && \ git clone https://github.com/cmangos/playerbots.git /opt/cmangos/src/modules/Bots && \ echo "Core Version: ${ENV_CORE_COMMIT_HASH}" && \ if [ "$ENV_CORE_COMMIT_HASH" != "HEAD" ]; then echo "Switching to Commit: ${ENV_CORE_COMMIT_HASH}\n"; cd /opt/cmangos; git checkout ${ENV_CORE_COMMIT_HASH}; fi +# Print out CMAKE flags +RUN echo "Final CMAKE_FLAGS before build: $CMAKE_FLAGS" + # Build Software RUN mkdir -p /opt/cmangos/logs /opt/cmangos/build RUN cd /opt/cmangos/build && \ - # Release build cmake /opt/cmangos -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/opt/cmangos \ -DBUILD_EXTRACTORS=${BUILD_EXTRACTORS} \ @@ -107,7 +113,8 @@ RUN cd /opt/cmangos/build && \ -DBUILD_ACHIEVEMENTS=OFF \ -DBUILD_GIT_ID=OFF \ -DBUILD_SCRIPTDEV=ON \ - -DPCH=ON + -DPCH=ON \ + $ENV_CMAKE_FLAGS # Release with Debug info build # cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_FLAGS="-Wno-switch -Wno-format -Wno-format-security -Wno-format-extra-args -Wno-unused-value -O0 -g" -DCMAKE_CXX_FLAGS="-Wno-switch -Wno-format -Wno-format-security -Wno-format-extra-args -Wno-unused-value -O0 -g" -DCMAKE_INSTALL_PREFIX=/opt/cmangos -DPCH=1 -DDEBUG=0 -DBUILD_PLAYERBOTS=ON -DBUILD_AHBOT=${ENV_BUILD_AHBOT} -DBUILD_GIT_ID=ON -DBUILD_MODULES=ON -DBUILD_MODULE_ACHIEVEMENTS=OFF -DBUILD_MODULE_DUALSPEC=ON -DBUILD_MODULE_HARDCORE=OFF -DBUILD_MODULE_IMMERSIVE=ON -DBUILD_MODULE_TRANSMOG=ON -DBUILD_MODULE_BARBER=OFF && \ # Memory leak debugger build @@ -121,7 +128,7 @@ RUN cd /opt/cmangos && \ git rev-parse HEAD > /opt/cmangos/bin/mangosbot_version.txt # Download base image ubuntu -FROM ubuntu:22.04 +FROM ubuntu:22.04 AS runner # Install dependencies for running CMaNGOSd. RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ diff --git a/realmd/Dockerfile b/realmd/Dockerfile index 7dd5d5c..9765673 100644 --- a/realmd/Dockerfile +++ b/realmd/Dockerfile @@ -55,7 +55,7 @@ RUN cd /tmp && wget --no-check-certificate https://github.com/Kitware/CMake/rele # Prepare Sources RUN mkdir -p /opt/src && \ - git clone https://github.com/cmangos/mangos-classic.git /opt/src/cmangos && \ + git clone https://github.com/cmangos/mangos-classic.git --branch latest /opt/src/cmangos && \ git clone https://github.com/cmangos/playerbots.git /opt/src/cmangos/src/modules/Bots && \ echo "Core Version: ${ENV_CORE_COMMIT_HASH}" && \ if [ "$ENV_CORE_COMMIT_HASH" != "HEAD" ]; then echo "Switching to Commit: ${ENV_CORE_COMMIT_HASH}\n"; cd /opt/src/cmangos; git checkout ${ENV_CORE_COMMIT_HASH}; fi diff --git a/scripts/InstallFullDB.sh b/scripts/InstallFullDB.sh index cb7b61e..0d75d87 100755 --- a/scripts/InstallFullDB.sh +++ b/scripts/InstallFullDB.sh @@ -1429,8 +1429,8 @@ function apply_playerbots_db { fi echo "> Trying to apply playerbots sql mods for world db..." - echo " - Applying $CORE_PATH/src/modules/Bots/sql/world/*.sql" - for UPDATEFILE in ${CORE_PATH}/src/modules/Bots/sql/world/*.sql; do + echo " - Applying $CORE_PATH/src/modules/PlayerBots/sql/world/*.sql" + for UPDATEFILE in ${CORE_PATH}/src/modules/PlayerBots/sql/world/*.sql; do if [ -e "$UPDATEFILE" ]; then echo " - Applying $UPDATEFILE" local fName=$(basename "$UPDATEFILE") @@ -1443,7 +1443,7 @@ function apply_playerbots_db { echo "> Trying to apply playerbots sql mods for world db (expansion specific)..." echo " - Applying $CORE_PATH/src/modules/Bots/sql/world/${BOT_EXP_PREFIX}/*.sql" - for UPDATEFILE in ${CORE_PATH}/src/modules/Bots/sql/world/${BOT_EXP_PREFIX}/*.sql; do + for UPDATEFILE in ${CORE_PATH}/src/modules/PlayerBots/sql/world/${BOT_EXP_PREFIX}/*.sql; do if [ -e "$UPDATEFILE" ]; then echo " - Applying $UPDATEFILE" local fName=$(basename "$UPDATEFILE") @@ -1456,7 +1456,7 @@ function apply_playerbots_db { echo "> Trying to apply playerbots sql mods for characters db..." echo " - Applying $CORE_PATH/src/modules/Bots/sql/characters/*.sql" - for UPDATEFILE in ${CORE_PATH}/src/modules/Bots/sql/characters/*.sql; do + for UPDATEFILE in ${CORE_PATH}/src/modules/PlayerBots/sql/characters/*.sql; do if [ -e "$UPDATEFILE" ]; then echo " - Applying $UPDATEFILE" local fName=$(basename "$UPDATEFILE") @@ -1467,18 +1467,6 @@ function apply_playerbots_db { fi done - # Seems to crash and be useless - # echo "> Apply database merge file for expansion..." - # echo " - Applying ${CORE_PATH}/src/modules/Bots/sql/other/database_merge_${BOT_EXP_PREFIX}.sql" - # if [ -e "${CORE_PATH}/src/modules/Bots/sql/other/database_merge_${BOT_EXP_PREFIX}.sql" ]; then - # echo " - Applying ${CORE_PATH}/src/modules/Bots/sql/other/database_merge_${BOT_EXP_PREFIX}.sql" - # local fName=$(basename "${CORE_PATH}/src/modules/Bots/sql/other/database_merge_${BOT_EXP_PREFIX}.sql") - # if ! execute_sql_file "${CORE_PATH}/src/modules/Bots/sql/other/database_merge_${BOT_EXP_PREFIX}.sql" " - Applying $fName"; then - # false - # return - # fi - # fi - echo true } @@ -3051,6 +3039,7 @@ set_sql_queries # check if user just want fast db installation if [[ "$1" = "-InstallAll" ]]; then + PLAYERBOTS_DB="YES" if ! auto_script_create_all $2 $3 $4; then exit 1 fi diff --git a/scripts/mangosd.sh b/scripts/mangosd.sh index 4dedafa..2280cce 100755 --- a/scripts/mangosd.sh +++ b/scripts/mangosd.sh @@ -161,12 +161,16 @@ function initialize_database { # Get latest version rm -rf /tmp/cmangos rm -rf /tmp/db - echo "Getting latest cmangos core from https://github.com/cmangos/mangos-classic.git ike3-bots..." - git clone https://github.com/cmangos/mangos-classic.git /tmp/cmangos + echo "Getting latest cmangos core from https://github.com/cmangos/mangos-classic.git" + git clone https://github.com/cmangos/mangos-classic.git --branch latest /tmp/cmangos echo "Getting latest playerbots module from https://github.com/cmangos/playerbots.git..." - git clone https://github.com/cmangos/playerbots.git /tmp/cmangos/src/modules/Bots + git clone https://github.com/cmangos/playerbots.git /tmp/cmangos/src/modules/PlayerBots echo "Getting latest database files from https://github.com/cmangos/classic-db.git..." git clone https://github.com/cmangos/classic-db.git /tmp/db + cd /tmp/db + # Temporary fix for the latest commit + git checkout bf0279ec3317cfa01fe73dfd6666ec90b0bb6542 + cd / # Create default database structures echo "Create base Characters database" @@ -191,7 +195,7 @@ function initialize_database { # Does not work, no folder named playerbot exists anymore echo "Trying to create base Playerbots database" - if [ -f /tmp/cmangos/src/modules/Bots/sql/playerbot/playerbot.sql ]; then + if [ -f /tmp/cmangos/src/modules/PlayerBots/sql/playerbot/playerbot.sql ]; then echo "Create base Playerbots database" mysql -h "$DB_SERVER" -P "$DB_PORT" -u${DB_ROOT_USER} -p${DB_ROOT_PASS} ${PLAYERBOTS_DB}