chore: updates modules and module updater

This commit is contained in:
uprightbass360
2025-12-27 15:30:59 -05:00
parent 6ed10dead7
commit b8245e7b3f
4 changed files with 222 additions and 37 deletions

View File

@@ -707,3 +707,9 @@ MODULE_WOW_ELUNA_TS_MODULE=0
MODULE_WOW_SERVER_RELAY=0 MODULE_WOW_SERVER_RELAY=0
MODULE_WOW_STATISTICS=0 MODULE_WOW_STATISTICS=0
MODULE_WRATH_OF_THE_VANILLA=0 MODULE_WRATH_OF_THE_VANILLA=0
MODULE_MOD_BOTS_LOGIN_FIX=0
MODULE_MOD_MATERIAL_BANK=0
MODULE_MOD_PROGRESSION_BLIZZLIKE=0
MODULE_MOD_PYTHON_ENGINE=0
MODULE_WRATH_OF_THE_VANILLA_V2=0
MODULE_AZEROTHMCP=0

View File

@@ -491,7 +491,7 @@
"block_reason": "Runtime error: SQL error: MODULE_mod-black-market_creature.sql references removed 'StatsCount' column", "block_reason": "Runtime error: SQL error: MODULE_mod-black-market_creature.sql references removed 'StatsCount' column",
"order": 5000, "order": 5000,
"config_cleanup": [], "config_cleanup": [],
"notes": "Disabled due to runtime error: SQL error: MODULE_mod-black-market_creature.sql references removed 'StatsCount' column", "notes": "Disabled due to runtime error: SQL error: MODULE_mod-black-market_creature.sql references removed 'StatsCount' column \nDiscovered via GitHub topic 'azerothcore-module'",
"last_modified": "2025-06-26T14:23:47Z" "last_modified": "2025-06-26T14:23:47Z"
}, },
{ {
@@ -1490,7 +1490,7 @@
"description": "Module for WoW 3.3.5a (AzerothCore \u2013 Playerbots). Tested on Ubuntu.", "description": "Module for WoW 3.3.5a (AzerothCore \u2013 Playerbots). Tested on Ubuntu.",
"type": "cpp", "type": "cpp",
"category": "database", "category": "database",
"notes": "Disabled due to runtime error: MODULE_mod-guild-village_001_creature_template.sql tries to insert duplicate creature ID 987400 (ERROR 1062)", "notes": "Disabled due to runtime error: MODULE_mod-guild-village_001_creature_template.sql tries to insert duplicate creature ID 987400 (ERROR 1062) \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -1581,7 +1581,7 @@
"description": "Module for WoW 3.3.5a (AzerothCore \u2013 Playerbots). Tested on Ubuntu.", "description": "Module for WoW 3.3.5a (AzerothCore \u2013 Playerbots). Tested on Ubuntu.",
"type": "cpp", "type": "cpp",
"category": "database", "category": "database",
"notes": "Disabled due to runtime error: MODULE_mod-instance-tools_Creature.sql tries to insert duplicate creature ID 987456-0 (ERROR 1062)", "notes": "Disabled due to runtime error: MODULE_mod-instance-tools_Creature.sql tries to insert duplicate creature ID 987456-0 (ERROR 1062) \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -1809,7 +1809,7 @@
"description": "Hardcore trial mod for groups of 1-5", "description": "Hardcore trial mod for groups of 1-5",
"type": "cpp", "type": "cpp",
"category": "progression", "category": "progression",
"notes": "DISABLED: no member named 'isEmpty' in 'MapRefMgr'", "notes": "DISABLED: no member named 'isEmpty' in 'MapRefMgr' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -2005,7 +2005,7 @@
"description": "AoE loot module for AzerothCore built from the ground up without loot loss. (No Loot Merging).", "description": "AoE loot module for AzerothCore built from the ground up without loot loss. (No Loot Merging).",
"type": "cpp", "type": "cpp",
"category": "quality-of-life", "category": "quality-of-life",
"notes": "DISABLED: Naming conflict with Item class", "notes": "DISABLED: Naming conflict with Item class \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -2142,7 +2142,7 @@
"description": "Adds Mist of Pandaria's Brawler's Guild to AzerothCore.", "description": "Adds Mist of Pandaria's Brawler's Guild to AzerothCore.",
"type": "cpp", "type": "cpp",
"category": "minigame", "category": "minigame",
"notes": "DISABLED: no matching member function for call to 'DelayEvents'", "notes": "DISABLED: no matching member function for call to 'DelayEvents' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -2188,7 +2188,7 @@
"description": "Mercado negro", "description": "Mercado negro",
"type": "cpp", "type": "cpp",
"category": "database", "category": "database",
"notes": "DISABLED: SQL schema mismatch - StatsCount column doesn't exist", "notes": "DISABLED: SQL schema mismatch - StatsCount column doesn't exist \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -2835,7 +2835,7 @@
"description": "Prestige level system mod for Azerothcore", "description": "Prestige level system mod for Azerothcore",
"type": "cpp", "type": "cpp",
"category": "progression", "category": "progression",
"notes": "DISABLED: 'OnLogin' marked 'override' but does not override", "notes": "DISABLED: 'OnLogin' marked 'override' but does not override \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -2851,7 +2851,7 @@
"description": "Adds extra difficulty modes, heavily inspired by mod-challenge-modes.", "description": "Adds extra difficulty modes, heavily inspired by mod-challenge-modes.",
"type": "cpp", "type": "cpp",
"category": "progression", "category": "progression",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -2897,7 +2897,7 @@
"description": "This module aims to make mounts, companions and heirlooms shared across all characters of an account", "description": "This module aims to make mounts, companions and heirlooms shared across all characters of an account",
"type": "cpp", "type": "cpp",
"category": "account-wide", "category": "account-wide",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3141,7 +3141,7 @@
"description": "An Azeroth Core module to allow the display of the Breaking News section on the character select screen.", "description": "An Azeroth Core module to allow the display of the Breaking News section on the character select screen.",
"type": "cpp", "type": "cpp",
"category": "social", "category": "social",
"notes": "DISABLED: no member named 'StringFormatFmt' in namespace 'Acore'", "notes": "DISABLED: no member named 'StringFormatFmt' in namespace 'Acore' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3172,7 +3172,7 @@
"description": "This WoW-Azerothcore-Mod allows to change spawntimes based on a userdefined or dynamically calculated playerbased factor", "description": "This WoW-Azerothcore-Mod allows to change spawntimes based on a userdefined or dynamically calculated playerbased factor",
"type": "cpp", "type": "cpp",
"category": "progression", "category": "progression",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3188,7 +3188,7 @@
"description": "This mod allows noclip with a command noclip. on / off", "description": "This mod allows noclip with a command noclip. on / off",
"type": "cpp", "type": "cpp",
"category": "admin", "category": "admin",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3249,7 +3249,7 @@
"description": "AzerothCore port (as a Module) of Rochet2's Objscale", "description": "AzerothCore port (as a Module) of Rochet2's Objscale",
"type": "cpp", "type": "cpp",
"category": "progression", "category": "progression",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3311,7 +3311,7 @@
"description": "An AzerothCore module that recycles unwanted items to the auction house.", "description": "An AzerothCore module that recycles unwanted items to the auction house.",
"type": "cpp", "type": "cpp",
"category": "economy", "category": "economy",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3342,7 +3342,7 @@
"description": "AzerothCore module that adds a random attribute book.", "description": "AzerothCore module that adds a random attribute book.",
"type": "cpp", "type": "cpp",
"category": "admin", "category": "admin",
"notes": "DISABLED: 'OnLogin' marked 'override' but does not override", "notes": "DISABLED: 'OnLogin' marked 'override' but does not override \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3358,7 +3358,7 @@
"description": "AzerothCore module that allows prestige at max level.", "description": "AzerothCore module that allows prestige at max level.",
"type": "cpp", "type": "cpp",
"category": "progression", "category": "progression",
"notes": "DISABLED: use of undeclared identifier 'sSpellMgr'", "notes": "DISABLED: use of undeclared identifier 'sSpellMgr' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3405,7 +3405,7 @@
"description": "An Azeroth Core module that adds alternative XP gains.", "description": "An Azeroth Core module that adds alternative XP gains.",
"type": "cpp", "type": "cpp",
"category": "progression", "category": "progression",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3437,7 +3437,7 @@
"description": "Ensures all party members have matching faction before queueing into battleground.", "description": "Ensures all party members have matching faction before queueing into battleground.",
"type": "cpp", "type": "cpp",
"category": "pvp", "category": "pvp",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3484,7 +3484,7 @@
"description": "AzerothCore custom module which allows filtering traded items", "description": "AzerothCore custom module which allows filtering traded items",
"type": "cpp", "type": "cpp",
"category": "economy", "category": "economy",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3500,7 +3500,7 @@
"description": "This module allows you to search for quests by ID, which gives you greater precision in your search.", "description": "This module allows you to search for quests by ID, which gives you greater precision in your search.",
"type": "cpp", "type": "cpp",
"category": "scripting", "category": "scripting",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3516,7 +3516,7 @@
"description": "PvPScript for Azerothcore", "description": "PvPScript for Azerothcore",
"type": "cpp", "type": "cpp",
"category": "pvp", "category": "pvp",
"notes": "DISABLED: no member named 'SendNotification' in 'WorldSession'", "notes": "DISABLED: no member named 'SendNotification' in 'WorldSession' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3532,7 +3532,7 @@
"description": "Broadcasts items with the ITEM_FLAG_REPORT_TO_GUILD_CHAT flag to guild chat.", "description": "Broadcasts items with the ITEM_FLAG_REPORT_TO_GUILD_CHAT flag to guild chat.",
"type": "cpp", "type": "cpp",
"category": "scripting", "category": "scripting",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3548,7 +3548,7 @@
"description": "Fixes FFA for safe zones.", "description": "Fixes FFA for safe zones.",
"type": "cpp", "type": "cpp",
"category": "content", "category": "content",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3564,7 +3564,7 @@
"description": "AzerothCore Interconnect", "description": "AzerothCore Interconnect",
"type": "cpp", "type": "cpp",
"category": "tooling", "category": "tooling",
"notes": "DISABLED: no member named 'StringFormatFmt' in namespace 'Acore'", "notes": "DISABLED: no member named 'StringFormatFmt' in namespace 'Acore' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3708,7 +3708,7 @@
"description": "Module for Azerothcore to teleport players to with a command", "description": "Module for Azerothcore to teleport players to with a command",
"type": "cpp", "type": "cpp",
"category": "quality-of-life", "category": "quality-of-life",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3739,7 +3739,7 @@
"description": "Adds a re-roll item for StatBooster bonus stat.", "description": "Adds a re-roll item for StatBooster bonus stat.",
"type": "cpp", "type": "cpp",
"category": "rewards", "category": "rewards",
"notes": "DISABLED: 'StatBoostMgr.h' file not found", "notes": "DISABLED: 'StatBoostMgr.h' file not found \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3835,7 +3835,7 @@
"description": "All-In-One Solution module to easily enable features for new players", "description": "All-In-One Solution module to easily enable features for new players",
"type": "cpp", "type": "cpp",
"category": "progression", "category": "progression",
"notes": "DISABLED: no member named 'getLevel'; did you mean 'GetLevel'?", "notes": "DISABLED: no member named 'getLevel'; did you mean 'GetLevel'? \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3851,7 +3851,7 @@
"description": "Custom scipts and modules for Azerothcore", "description": "Custom scipts and modules for Azerothcore",
"type": "cpp", "type": "cpp",
"category": "scripting", "category": "scripting",
"notes": "DISABLED: no member named 'PQuery' / 'outString' in Log", "notes": "DISABLED: no member named 'PQuery' / 'outString' in Log \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3899,7 +3899,7 @@
"description": "", "description": "",
"type": "cpp", "type": "cpp",
"category": "content", "category": "content",
"notes": "DISABLED: Missing config identifier", "notes": "DISABLED: Missing config identifier \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3915,7 +3915,7 @@
"description": "Pushes server and player events into an influxdb instance.", "description": "Pushes server and player events into an influxdb instance.",
"type": "cpp", "type": "cpp",
"category": "scripting", "category": "scripting",
"notes": "DISABLED: Build fails - requires CURL library (missing: CURL_LIBRARY CURL_INCLUDE_DIR)", "notes": "DISABLED: Build fails - requires CURL library (missing: CURL_LIBRARY CURL_INCLUDE_DIR) \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"block_reason": "CMake Error: Could NOT find CURL", "block_reason": "CMake Error: Could NOT find CURL",
"order": 5000, "order": 5000,
@@ -3931,7 +3931,7 @@
"description": "Spell Regulator module for AzerothCore", "description": "Spell Regulator module for AzerothCore",
"type": "cpp", "type": "cpp",
"category": "scripting", "category": "scripting",
"notes": "DISABLED: redefinition of 'AddSpellRegulatorScripts'", "notes": "DISABLED: redefinition of 'AddSpellRegulatorScripts' \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3947,7 +3947,7 @@
"description": "Module for Azerothcore", "description": "Module for Azerothcore",
"type": "cpp", "type": "cpp",
"category": "progression", "category": "progression",
"notes": "DISABLED: 'ChatHandler' is an incomplete type", "notes": "DISABLED: 'ChatHandler' is an incomplete type \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -3979,7 +3979,7 @@
"description": "WIP reward system for AC ingame shop", "description": "WIP reward system for AC ingame shop",
"type": "cpp", "type": "cpp",
"category": "economy", "category": "economy",
"notes": "DISABLED: API incompatibility - ConfigMgr missing GetIntDefault method", "notes": "DISABLED: API incompatibility - ConfigMgr missing GetIntDefault method \nDiscovered via GitHub topic 'azerothcore-module'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -4149,7 +4149,7 @@
"description": "ACore CMS based on Wordpress", "description": "ACore CMS based on Wordpress",
"type": "tool", "type": "tool",
"category": "tooling", "category": "tooling",
"notes": "Disabled due to runtime error: Table 'acore_auth.acore_cms_subscriptions' doesn't exist - causes server abort", "notes": "Disabled due to runtime error: Table 'acore_auth.acore_cms_subscriptions' doesn't exist - causes server abort \nDiscovered via GitHub topic 'azerothcore-tools'",
"status": "blocked", "status": "blocked",
"block_reason": "Runtime error: Missing database table", "block_reason": "Runtime error: Missing database table",
"order": 5000, "order": 5000,
@@ -5065,7 +5065,7 @@
"description": "", "description": "",
"type": "lua", "type": "lua",
"category": "scripting", "category": "scripting",
"notes": "DISABLED: Git clone fails with 'unknown switch E' error - likely due to hyphen in repo name", "notes": "DISABLED: Git clone fails with 'unknown switch E' error - likely due to hyphen in repo name \nDiscovered via GitHub topic 'azerothcore-lua'",
"status": "blocked", "status": "blocked",
"block_reason": "Git clone error: unknown switch 'E'", "block_reason": "Git clone error: unknown switch 'E'",
"order": 5000, "order": 5000,
@@ -5233,7 +5233,7 @@
"description": "This module adds thematically appropriate green and blue loot drops to ALL 450 Classic rares in Kalimdor and the Eastern Kingdoms.", "description": "This module adds thematically appropriate green and blue loot drops to ALL 450 Classic rares in Kalimdor and the Eastern Kingdoms.",
"type": "sql", "type": "sql",
"category": "database", "category": "database",
"notes": "DISABLED: only virtual member functions can be marked 'override'", "notes": "DISABLED: only virtual member functions can be marked 'override' \nDiscovered via GitHub topic 'azerothcore-sql'",
"status": "blocked", "status": "blocked",
"order": 5000, "order": 5000,
"requires": [], "requires": [],
@@ -5391,6 +5391,90 @@
"post_install_hooks": [], "post_install_hooks": [],
"config_cleanup": [], "config_cleanup": [],
"last_modified": "2020-12-16T18:26:39Z" "last_modified": "2020-12-16T18:26:39Z"
},
{
"key": "MODULE_MOD_BOTS_LOGIN_FIX",
"name": "mod-bots-login-fix",
"repo": "https://github.com/BeardBear33/mod-bots-login-fix.git",
"description": "Oprava duplicitn\u00edho p\u0159ipojen\u00ed na AltBota pro modul Playerbots. // Fix for duplicate connections to an AltBot for the Playerbots module.",
"type": "cpp",
"category": "uncategorized",
"notes": "Discovered via GitHub topic 'azerothcore-module'",
"status": "active",
"order": 5000,
"requires": [],
"post_install_hooks": [],
"config_cleanup": []
},
{
"key": "MODULE_MOD_MATERIAL_BANK",
"name": "mod-material-bank",
"repo": "https://github.com/BeardBear33/mod-material-bank.git",
"description": "Module for WoW 3.3.5a (AzerothCore \u2013 Playerbots). Tested on Ubuntu.",
"type": "cpp",
"category": "uncategorized",
"notes": "Discovered via GitHub topic 'azerothcore-module'",
"status": "active",
"order": 5000,
"requires": [],
"post_install_hooks": [],
"config_cleanup": []
},
{
"key": "MODULE_MOD_PROGRESSION_BLIZZLIKE",
"name": "mod-progression-blizzlike",
"repo": "https://github.com/kambire/mod-progression-blizzlike.git",
"description": "Modular progression system for AzerothCore built around brackets (Vanilla/TBC/WotLK + Arena seasons). Each enabled bracket can load its own C++ scripts and SQL updates.",
"type": "cpp",
"category": "uncategorized",
"notes": "Discovered via GitHub topic 'azerothcore-module'",
"status": "active",
"order": 5000,
"requires": [],
"post_install_hooks": [],
"config_cleanup": []
},
{
"key": "MODULE_MOD_PYTHON_ENGINE",
"name": "mod-python-engine",
"repo": "https://github.com/privatecore/mod-python-engine.git",
"description": "A Python Scripting Engine module for AzerothCore",
"type": "cpp",
"category": "uncategorized",
"notes": "Discovered via GitHub topic 'azerothcore-module'",
"status": "active",
"order": 5000,
"requires": [],
"post_install_hooks": [],
"config_cleanup": []
},
{
"key": "MODULE_WRATH_OF_THE_VANILLA_V2",
"name": "wrath-of-the-vanilla-v2",
"repo": "https://github.com/Hextv/wrath-of-the-vanilla-v2.git",
"description": "Project that focuses on turning a server running AzerothCore into one limited to the original (vanilla) content.",
"type": "sql",
"category": "database",
"notes": "Discovered via GitHub topic 'azerothcore-module'",
"status": "active",
"order": 5000,
"requires": [],
"post_install_hooks": [],
"config_cleanup": []
},
{
"key": "MODULE_AZEROTHMCP",
"name": "azerothMCP",
"repo": "https://github.com/blinkysc/azerothMCP.git",
"description": "MCP server for AzerothCore",
"type": "tool",
"category": "tooling",
"notes": "Discovered via GitHub topic 'azerothcore-tools' Not directly related to runtime functionality of AzerothCore",
"status": "blocked",
"order": 5000,
"requires": [],
"post_install_hooks": [],
"config_cleanup": []
} }
] ]
} }

View File

@@ -467,6 +467,7 @@ load_sql_helper(){
# Module SQL is now staged at runtime by stage-modules.sh which copies files to # Module SQL is now staged at runtime by stage-modules.sh which copies files to
# /azerothcore/data/sql/updates/ (core directory) where they ARE scanned and processed. # /azerothcore/data/sql/updates/ (core directory) where they ARE scanned and processed.
track_module_state(){ track_module_state(){
echo 'Checking for module changes that require rebuild...' echo 'Checking for module changes that require rebuild...'

View File

@@ -18,6 +18,7 @@ import re
import sys import sys
import time import time
from dataclasses import dataclass from dataclasses import dataclass
from pathlib import Path
from typing import Dict, Iterable, List, Optional, Sequence from typing import Dict, Iterable, List, Optional, Sequence
from urllib import error, parse, request from urllib import error, parse, request
@@ -87,6 +88,16 @@ def parse_args(argv: Sequence[str]) -> argparse.Namespace:
action="store_true", action="store_true",
help="Print verbose progress information", help="Print verbose progress information",
) )
parser.add_argument(
"--update-template",
default=".env.template",
help="Update .env.template with missing module variables (default: %(default)s)",
)
parser.add_argument(
"--skip-template",
action="store_true",
help="Skip updating .env.template",
)
return parser.parse_args(argv) return parser.parse_args(argv)
@@ -273,6 +284,82 @@ def collect_repositories(
return list(seen.values()) return list(seen.values())
def update_env_template(manifest_path: str, template_path: str) -> bool:
"""Update .env.template with missing module variables.
Args:
manifest_path: Path to the module manifest JSON file
template_path: Path to .env.template file
Returns:
True if template was updated, False if no changes needed
"""
# Load manifest to get all module keys
manifest = load_manifest(manifest_path)
modules = manifest.get("modules", [])
if not modules:
return False
# Extract all module keys
module_keys = set()
for module in modules:
key = module.get("key")
if key:
module_keys.add(key)
if not module_keys:
return False
# Check if template file exists
template_file = Path(template_path)
if not template_file.exists():
print(f"Warning: .env.template not found at {template_path}")
return False
# Read current template content
try:
current_content = template_file.read_text(encoding="utf-8")
current_lines = current_content.splitlines()
except Exception as exc:
print(f"Error reading .env.template: {exc}")
return False
# Find which module variables are missing
existing_vars = set()
for line in current_lines:
line = line.strip()
if "=" in line and not line.startswith("#"):
var_name = line.split("=", 1)[0].strip()
existing_vars.add(var_name)
missing_vars = module_keys - existing_vars
if not missing_vars:
print("✅ All module variables present in .env.template")
return False
# Add missing variables to the end of the file
print(f"📝 Adding {len(missing_vars)} missing module variable(s) to .env.template:")
# Sort missing vars for consistent output
sorted_missing = sorted(missing_vars)
# Prepare new content
new_lines = current_lines[:]
for var in sorted_missing:
new_lines.append(f"{var}=0")
print(f"{var}=0")
# Write updated content
try:
new_content = "\n".join(new_lines) + "\n"
template_file.write_text(new_content, encoding="utf-8")
print("✅ .env.template updated successfully")
return True
except Exception as exc:
print(f"Error writing .env.template: {exc}")
return False
def main(argv: Sequence[str]) -> int: def main(argv: Sequence[str]) -> int:
args = parse_args(argv) args = parse_args(argv)
topics = args.topics or DEFAULT_TOPICS topics = args.topics or DEFAULT_TOPICS
@@ -291,6 +378,13 @@ def main(argv: Sequence[str]) -> int:
handle.write("\n") handle.write("\n")
print(f"Updated manifest {args.manifest}: added {added}, refreshed {updated}") print(f"Updated manifest {args.manifest}: added {added}, refreshed {updated}")
# Update .env.template if requested and we have changes
if not args.skip_template and (added > 0 or updated > 0):
template_updated = update_env_template(args.manifest, args.update_template)
if template_updated:
print(f"Updated {args.update_template} with new module variables")
return 0 return 0