full module descriptions in setup

This commit is contained in:
uprightbass360
2025-11-03 20:41:44 -05:00
parent 6d0759d0e9
commit 37c96731f7
3 changed files with 37 additions and 151 deletions

View File

@@ -11,8 +11,7 @@
"post_install_hooks": [], "post_install_hooks": [],
"config_cleanup": [ "config_cleanup": [
"playerbots.conf*" "playerbots.conf*"
], ]
"depends_on": []
}, },
{ {
"key": "MODULE_AOE_LOOT", "key": "MODULE_AOE_LOOT",
@@ -24,8 +23,7 @@
"post_install_hooks": [], "post_install_hooks": [],
"config_cleanup": [ "config_cleanup": [
"mod_aoe_loot.conf*" "mod_aoe_loot.conf*"
], ]
"depends_on": []
}, },
{ {
"key": "MODULE_LEARN_SPELLS", "key": "MODULE_LEARN_SPELLS",
@@ -37,8 +35,7 @@
"post_install_hooks": [], "post_install_hooks": [],
"config_cleanup": [ "config_cleanup": [
"mod_learnspells.conf*" "mod_learnspells.conf*"
], ]
"depends_on": []
}, },
{ {
"key": "MODULE_FIREWORKS", "key": "MODULE_FIREWORKS",
@@ -50,8 +47,7 @@
"post_install_hooks": [], "post_install_hooks": [],
"config_cleanup": [ "config_cleanup": [
"mod_fireworks.conf*" "mod_fireworks.conf*"
], ]
"depends_on": []
}, },
{ {
"key": "MODULE_INDIVIDUAL_PROGRESSION", "key": "MODULE_INDIVIDUAL_PROGRESSION",
@@ -63,8 +59,7 @@
"post_install_hooks": [], "post_install_hooks": [],
"config_cleanup": [ "config_cleanup": [
"individual_progression.conf*" "individual_progression.conf*"
], ]
"depends_on": []
}, },
{ {
"key": "MODULE_AHBOT", "key": "MODULE_AHBOT",
@@ -76,8 +71,7 @@
"post_install_hooks": [], "post_install_hooks": [],
"config_cleanup": [ "config_cleanup": [
"mod_ahbot.conf*" "mod_ahbot.conf*"
], ]
"depends_on": []
}, },
{ {
"key": "MODULE_AUTOBALANCE", "key": "MODULE_AUTOBALANCE",
@@ -89,7 +83,6 @@
"config_cleanup": [ "config_cleanup": [
"AutoBalance.conf*" "AutoBalance.conf*"
], ],
"depends_on": [],
"description": "Adjusts creature health and damage in real time to keep fights tuned for the current party size" "description": "Adjusts creature health and damage in real time to keep fights tuned for the current party size"
}, },
{ {
@@ -102,7 +95,6 @@
"config_cleanup": [ "config_cleanup": [
"transmog.conf*" "transmog.conf*"
], ],
"depends_on": [],
"description": "Adds a transmogrification vendor so players can restyle gear without changing stats" "description": "Adds a transmogrification vendor so players can restyle gear without changing stats"
}, },
{ {
@@ -115,7 +107,6 @@
"config_cleanup": [ "config_cleanup": [
"npc_buffer.conf*" "npc_buffer.conf*"
], ],
"depends_on": [],
"description": "Provides a ready-to-use buff NPC who hands out class buffs, food, and utility spells" "description": "Provides a ready-to-use buff NPC who hands out class buffs, food, and utility spells"
}, },
{ {
@@ -128,7 +119,6 @@
"config_cleanup": [ "config_cleanup": [
"Individual-XP.conf*" "Individual-XP.conf*"
], ],
"depends_on": [],
"description": "Tweaks XP gain based on population or custom rules to keep leveling flexible" "description": "Tweaks XP gain based on population or custom rules to keep leveling flexible"
}, },
{ {
@@ -141,7 +131,6 @@
"config_cleanup": [ "config_cleanup": [
"SoloLfg.conf*" "SoloLfg.conf*"
], ],
"depends_on": [],
"description": "A solo-friendly queue that lets every player run dungeons without needing a premade group" "description": "A solo-friendly queue that lets every player run dungeons without needing a premade group"
}, },
{ {
@@ -154,7 +143,6 @@
"config_cleanup": [ "config_cleanup": [
"1v1arena.conf*" "1v1arena.conf*"
], ],
"depends_on": [],
"description": "Creates a structured 1v1 ranked arena ladder for duel enthusiasts" "description": "Creates a structured 1v1 ranked arena ladder for duel enthusiasts"
}, },
{ {
@@ -167,7 +155,6 @@
"config_cleanup": [ "config_cleanup": [
"phasedduels.conf*" "phasedduels.conf*"
], ],
"depends_on": [],
"description": "Moves duelers into their own phase to block interference and griefing" "description": "Moves duelers into their own phase to block interference and griefing"
}, },
{ {
@@ -180,7 +167,6 @@
"config_cleanup": [ "config_cleanup": [
"breaking_news.conf*" "breaking_news.conf*"
], ],
"depends_on": [],
"description": "Replaces the client breaking-news panel with server-managed announcements" "description": "Replaces the client breaking-news panel with server-managed announcements"
}, },
{ {
@@ -193,7 +179,6 @@
"config_cleanup": [ "config_cleanup": [
"boss_announcer.conf*" "boss_announcer.conf*"
], ],
"depends_on": [],
"description": "Broadcasts dramatic messages when raid bosses fall to your players" "description": "Broadcasts dramatic messages when raid bosses fall to your players"
}, },
{ {
@@ -206,7 +191,6 @@
"config_cleanup": [ "config_cleanup": [
"account_achievements.conf*" "account_achievements.conf*"
], ],
"depends_on": [],
"description": "Shares achievements across characters on the same account for persistent milestones" "description": "Shares achievements across characters on the same account for persistent milestones"
}, },
{ {
@@ -219,7 +203,6 @@
"config_cleanup": [ "config_cleanup": [
"AutoRevive.conf*" "AutoRevive.conf*"
], ],
"depends_on": [],
"description": "Automatically resurrects characters on death\u2014handy for casual PvE or testing realms" "description": "Automatically resurrects characters on death\u2014handy for casual PvE or testing realms"
}, },
{ {
@@ -232,7 +215,6 @@
"config_cleanup": [ "config_cleanup": [
"GainHonorGuard.conf*" "GainHonorGuard.conf*"
], ],
"depends_on": [],
"description": "Awards honor when players kill city guards, spicing up world PvP raids" "description": "Awards honor when players kill city guards, spicing up world PvP raids"
}, },
{ {
@@ -247,7 +229,6 @@
"config_cleanup": [ "config_cleanup": [
"mod_eluna.conf*" "mod_eluna.conf*"
], ],
"depends_on": [],
"description": "Adds Eluna Lua scripting engine for creating custom gameplay mechanics" "description": "Adds Eluna Lua scripting engine for creating custom gameplay mechanics"
}, },
{ {
@@ -260,7 +241,6 @@
"config_cleanup": [ "config_cleanup": [
"mod-time_is_time.conf*" "mod-time_is_time.conf*"
], ],
"depends_on": [],
"description": "Adds experimental time-twisting mechanics suited for custom events" "description": "Adds experimental time-twisting mechanics suited for custom events"
}, },
{ {
@@ -275,7 +255,6 @@
"config_cleanup": [ "config_cleanup": [
"pocketportal.conf*" "pocketportal.conf*"
], ],
"depends_on": [],
"description": "Gives players a portal gadget for quick travel to configured destinations" "description": "Gives players a portal gadget for quick travel to configured destinations"
}, },
{ {
@@ -288,7 +267,6 @@
"config_cleanup": [ "config_cleanup": [
"RandomEnchants.conf*" "RandomEnchants.conf*"
], ],
"depends_on": [],
"description": "Rolls randomized stat bonuses on loot to add Diablo-style gear chasing" "description": "Rolls randomized stat bonuses on loot to add Diablo-style gear chasing"
}, },
{ {
@@ -301,7 +279,6 @@
"config_cleanup": [ "config_cleanup": [
"Solocraft.conf*" "Solocraft.conf*"
], ],
"depends_on": [],
"description": "Automatically scales dungeon and raid encounters for solo players or small teams" "description": "Automatically scales dungeon and raid encounters for solo players or small teams"
}, },
{ {
@@ -311,13 +288,13 @@
"needs_build": true, "needs_build": true,
"type": "cpp", "type": "cpp",
"post_install_hooks": [], "post_install_hooks": [],
"depends_on": [
"MODULE_ELUNA"
],
"config_cleanup": [ "config_cleanup": [
"mod_pvptitles.conf*" "mod_pvptitles.conf*"
], ],
"description": "Restores classic honor titles with a configurable ranking ladder" "description": "Restores classic honor titles with a configurable ranking ladder",
"requires": [
"MODULE_ELUNA"
]
}, },
{ {
"key": "MODULE_NPC_BEASTMASTER", "key": "MODULE_NPC_BEASTMASTER",
@@ -331,7 +308,6 @@
"config_cleanup": [ "config_cleanup": [
"npc_beastmaster.conf*" "npc_beastmaster.conf*"
], ],
"depends_on": [],
"description": "Adds an NPC who can teach, reset, and manage hunter pets for convenience" "description": "Adds an NPC who can teach, reset, and manage hunter pets for convenience"
}, },
{ {
@@ -344,7 +320,6 @@
"config_cleanup": [ "config_cleanup": [
"npc_enchanter.conf*" "npc_enchanter.conf*"
], ],
"depends_on": [],
"description": "Introduces an enchanting vendor who applies enchants directly for a fee" "description": "Introduces an enchanting vendor who applies enchants directly for a fee"
}, },
{ {
@@ -357,7 +332,6 @@
"config_cleanup": [ "config_cleanup": [
"instance-reset.conf*" "instance-reset.conf*"
], ],
"depends_on": [],
"description": "Adds commands to reset instances quickly\u2014useful for testing or events" "description": "Adds commands to reset instances quickly\u2014useful for testing or events"
}, },
{ {
@@ -370,7 +344,6 @@
"config_cleanup": [ "config_cleanup": [
"levelGrant.conf*" "levelGrant.conf*"
], ],
"depends_on": [],
"description": "Enables leveling exclusively through questing by awarding tokens after quest completion" "description": "Enables leveling exclusively through questing by awarding tokens after quest completion"
}, },
{ {
@@ -383,7 +356,6 @@
"config_cleanup": [ "config_cleanup": [
"arac.conf*" "arac.conf*"
], ],
"depends_on": [],
"description": "Unlocks every race/class pairing so players can roll any combination" "description": "Unlocks every race/class pairing so players can roll any combination"
}, },
{ {
@@ -393,7 +365,6 @@
"needs_build": true, "needs_build": true,
"type": "cpp", "type": "cpp",
"post_install_hooks": [], "post_install_hooks": [],
"depends_on": [],
"description": "Spawns an all-purpose assistant NPC with heirlooms, professions, and convenience commands" "description": "Spawns an all-purpose assistant NPC with heirlooms, professions, and convenience commands"
}, },
{ {
@@ -403,7 +374,6 @@
"needs_build": true, "needs_build": true,
"type": "cpp", "type": "cpp",
"post_install_hooks": [], "post_install_hooks": [],
"depends_on": [],
"description": "Lets players stash crafting reagents with a dedicated banker NPC" "description": "Lets players stash crafting reagents with a dedicated banker NPC"
}, },
{ {
@@ -418,9 +388,6 @@
"post_install_hooks": [ "post_install_hooks": [
"black-market-setup" "black-market-setup"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Backports the Mists-era Black Market Auction House via Eluna scripts" "description": "Backports the Mists-era Black Market Auction House via Eluna scripts"
}, },
{ {
@@ -430,7 +397,6 @@
"needs_build": true, "needs_build": true,
"type": "cpp", "type": "cpp",
"post_install_hooks": [], "post_install_hooks": [],
"depends_on": [],
"description": "Implements keystone-style timed runs with leaderboards and scaling modifiers" "description": "Implements keystone-style timed runs with leaderboards and scaling modifiers"
}, },
{ {
@@ -440,7 +406,6 @@
"needs_build": true, "needs_build": true,
"type": "cpp", "type": "cpp",
"post_install_hooks": [], "post_install_hooks": [],
"depends_on": [],
"description": "Connects playerbots to an Ollama LLM so they can chat with humans organically" "description": "Connects playerbots to an Ollama LLM so they can chat with humans organically"
}, },
{ {
@@ -453,7 +418,6 @@
"MODULE_PLAYERBOTS" "MODULE_PLAYERBOTS"
], ],
"post_install_hooks": [], "post_install_hooks": [],
"depends_on": [],
"description": "Keeps bot levels spread evenly across configured brackets" "description": "Keeps bot levels spread evenly across configured brackets"
}, },
{ {
@@ -465,7 +429,6 @@
"post_install_hooks": [ "post_install_hooks": [
"fix-statbooster-api" "fix-statbooster-api"
], ],
"depends_on": [],
"description": "Lets players refine gear stats by rerolling random enchantments with special materials" "description": "Lets players refine gear stats by rerolling random enchantments with special materials"
}, },
{ {
@@ -477,7 +440,6 @@
"status": "blocked", "status": "blocked",
"block_reason": "Upstream override signature mismatch (OnBeforeTeleport); awaiting fix", "block_reason": "Upstream override signature mismatch (OnBeforeTeleport); awaiting fix",
"post_install_hooks": [], "post_install_hooks": [],
"depends_on": [],
"description": "Teleports dead players back to the dungeon entrance instead of a distant graveyard" "description": "Teleports dead players back to the dungeon entrance instead of a distant graveyard"
}, },
{ {
@@ -487,7 +449,6 @@
"needs_build": true, "needs_build": true,
"type": "cpp", "type": "cpp",
"post_install_hooks": [], "post_install_hooks": [],
"depends_on": [],
"description": "Provides a minimal AzerothCore module scaffold for building new features" "description": "Provides a minimal AzerothCore module scaffold for building new features"
}, },
{ {
@@ -496,11 +457,11 @@
"repo": "https://github.com/Helias/mod-bg-slaveryvalley.git", "repo": "https://github.com/Helias/mod-bg-slaveryvalley.git",
"needs_build": true, "needs_build": true,
"type": "cpp", "type": "cpp",
"depends_on": [
"MODULE_ELUNA"
],
"post_install_hooks": [], "post_install_hooks": [],
"description": "Adds the Slavery Valley battleground complete with objectives and queue hooks" "description": "Adds the Slavery Valley battleground complete with objectives and queue hooks",
"requires": [
"MODULE_ELUNA"
]
}, },
{ {
"key": "MODULE_AZEROTHSHARD", "key": "MODULE_AZEROTHSHARD",
@@ -509,7 +470,6 @@
"needs_build": true, "needs_build": true,
"type": "cpp", "type": "cpp",
"post_install_hooks": [], "post_install_hooks": [],
"depends_on": [],
"description": "Bundles AzerothShard tweaks: utility NPCs, scripted events, and gameplay improvements" "description": "Bundles AzerothShard tweaks: utility NPCs, scripted events, and gameplay improvements"
}, },
{ {
@@ -518,11 +478,11 @@
"repo": "https://github.com/heyitsbench/mod-worgoblin.git", "repo": "https://github.com/heyitsbench/mod-worgoblin.git",
"needs_build": true, "needs_build": true,
"type": "cpp", "type": "cpp",
"depends_on": [
"MODULE_ELUNA"
],
"post_install_hooks": [], "post_install_hooks": [],
"description": "Enables Worgen and Goblin characters with DB/DBC adjustments" "description": "Enables Worgen and Goblin characters with DB/DBC adjustments",
"requires": [
"MODULE_ELUNA"
]
}, },
{ {
"key": "MODULE_ELUNA_TS", "key": "MODULE_ELUNA_TS",
@@ -534,9 +494,6 @@
"MODULE_ELUNA" "MODULE_ELUNA"
], ],
"post_install_hooks": [], "post_install_hooks": [],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Adds a TS-to-Lua workflow so Eluna scripts can be authored with modern tooling" "description": "Adds a TS-to-Lua workflow so Eluna scripts can be authored with modern tooling"
}, },
{ {
@@ -547,7 +504,6 @@
"type": "cpp", "type": "cpp",
"notes": "Azeroth Interface Override - enables client-server interface communication", "notes": "Azeroth Interface Override - enables client-server interface communication",
"post_install_hooks": [], "post_install_hooks": [],
"depends_on": [],
"description": "Pure Lua server-client communication system for bidirectional data transmission" "description": "Pure Lua server-client communication system for bidirectional data transmission"
}, },
{ {
@@ -562,9 +518,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Collection of Lua scripts for creating custom gameplay mechanics and features" "description": "Collection of Lua scripts for creating custom gameplay mechanics and features"
}, },
{ {
@@ -579,9 +532,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-aio-lua" "copy-aio-lua"
], ],
"depends_on": [
"MODULE_AIO"
],
"description": "Transmogrification system built with AIO and Eluna for changing equipment appearance" "description": "Transmogrification system built with AIO and Eluna for changing equipment appearance"
}, },
{ {
@@ -596,9 +546,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Lua scripts that spawn custom NPCs with scripted combat and community events" "description": "Lua scripts that spawn custom NPCs with scripted combat and community events"
}, },
{ {
@@ -613,9 +560,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Rewards players with in-game mail when reaching certain levels" "description": "Rewards players with in-game mail when reaching certain levels"
}, },
{ {
@@ -630,9 +574,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Shares achievements, currency, mounts, and reputation across account characters" "description": "Shares achievements, currency, mounts, and reputation across account characters"
}, },
{ {
@@ -647,9 +588,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Spawns a customizable NPC vendor that exchanges materials based on settings" "description": "Spawns a customizable NPC vendor that exchanges materials based on settings"
}, },
{ {
@@ -664,9 +602,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Implements Recruit-a-Friend system with rewards for reaching level milestones" "description": "Implements Recruit-a-Friend system with rewards for reaching level milestones"
}, },
{ {
@@ -681,9 +616,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Enables characters to reset to level one for prestige rewards with optional spell selection" "description": "Enables characters to reset to level one for prestige rewards with optional spell selection"
}, },
{ {
@@ -698,9 +630,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Automated auction house bot for buying and selling items" "description": "Automated auction house bot for buying and selling items"
}, },
{ {
@@ -715,9 +644,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Implements hardcore mode system allowing activation via NPC token" "description": "Implements hardcore mode system allowing activation via NPC token"
}, },
{ {
@@ -732,9 +658,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Provides gear templates, transmog clearing, and chat features for NPC bots" "description": "Provides gear templates, transmog clearing, and chat features for NPC bots"
}, },
{ {
@@ -749,9 +672,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Enables multiple NPC merchants with database integration" "description": "Enables multiple NPC merchants with database integration"
}, },
{ {
@@ -766,9 +686,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Allows GMs to create and manage treasure chests with custom loot" "description": "Allows GMs to create and manage treasure chests with custom loot"
}, },
{ {
@@ -783,9 +700,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Populates artificial world and guild chat to make servers feel more lively" "description": "Populates artificial world and guild chat to make servers feel more lively"
}, },
{ {
@@ -800,9 +714,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Spawns loot chests containing gear and gold when players die in PvP" "description": "Spawns loot chests containing gear and gold when players die in PvP"
}, },
{ {
@@ -817,9 +728,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Diablo II-inspired crafting system with item synthesis and transmutation" "description": "Diablo II-inspired crafting system with item synthesis and transmutation"
}, },
{ {
@@ -834,9 +742,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Enables creating character copies at specific progression points for twinking" "description": "Enables creating character copies at specific progression points for twinking"
}, },
{ {
@@ -851,9 +756,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Allows GMs to create temporary server announcements that repeat at intervals" "description": "Allows GMs to create temporary server announcements that repeat at intervals"
}, },
{ {
@@ -868,9 +770,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Checks player zones and automatically removes players from restricted areas" "description": "Checks player zones and automatically removes players from restricted areas"
}, },
{ {
@@ -885,9 +784,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-aio-lua" "copy-aio-lua"
], ],
"depends_on": [
"MODULE_AIO"
],
"description": "Implements a Blackjack game for players to gamble against an NPC dealer" "description": "Implements a Blackjack game for players to gamble against an NPC dealer"
}, },
{ {
@@ -902,9 +798,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Allows admins to send soulbound items to players via command" "description": "Allows admins to send soulbound items to players via command"
}, },
{ {
@@ -919,9 +812,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Provides auction house alternative with dynamic pricing" "description": "Provides auction house alternative with dynamic pricing"
}, },
{ {
@@ -936,9 +826,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Implements customizable lottery system where players can win prizes" "description": "Implements customizable lottery system where players can win prizes"
}, },
{ {
@@ -953,9 +840,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Relays in-game chat events to Discord channels" "description": "Relays in-game chat events to Discord channels"
}, },
{ {
@@ -970,9 +854,6 @@
"post_install_hooks": [ "post_install_hooks": [
"copy-standard-lua" "copy-standard-lua"
], ],
"depends_on": [
"MODULE_ELUNA"
],
"description": "Allows access to bank, mailbox, and auction house from anywhere via chat commands" "description": "Allows access to bank, mailbox, and auction house from anywhere via chat commands"
} }
] ]

View File

@@ -157,12 +157,6 @@ def build_state(env_path: Path, manifest_path: Path) -> ModuleCollectionState:
raise ValueError(f"Manifest entry {key} has non-list 'requires'") raise ValueError(f"Manifest entry {key} has non-list 'requires'")
requires = [str(dep) for dep in requires] requires = [str(dep) for dep in requires]
depends_on = entry.get("depends_on") or []
if not isinstance(depends_on, list):
raise ValueError(f"Manifest entry {key} has non-list 'depends_on'")
depends_on = [str(dep) for dep in depends_on]
if depends_on:
requires = list(dict.fromkeys(requires + depends_on))
status = entry.get("status", "active") status = entry.get("status", "active")
block_reason = entry.get("block_reason") block_reason = entry.get("block_reason")
post_install_hooks = entry.get("post_install_hooks") or [] post_install_hooks = entry.get("post_install_hooks") or []

View File

@@ -359,6 +359,7 @@ declare -A MODULE_BLOCK_REASON_MAP=()
declare -A MODULE_NEEDS_BUILD_MAP=() declare -A MODULE_NEEDS_BUILD_MAP=()
declare -A MODULE_REQUIRES_MAP=() declare -A MODULE_REQUIRES_MAP=()
declare -A MODULE_NOTES_MAP=() declare -A MODULE_NOTES_MAP=()
declare -A MODULE_DESCRIPTION_MAP=()
declare -A MODULE_DEFAULT_VALUES=() declare -A MODULE_DEFAULT_VALUES=()
declare -A KNOWN_MODULE_LOOKUP=() declare -A KNOWN_MODULE_LOOKUP=()
declare -A ENV_TEMPLATE_VALUES=() declare -A ENV_TEMPLATE_VALUES=()
@@ -417,8 +418,13 @@ PY
exit 1 exit 1
fi fi
while IFS=$'\t' read -r key name needs_build module_type status block_reason requires notes; do while IFS=$'\t' read -r key name needs_build module_type status block_reason requires notes description; do
[ -n "$key" ] || continue [ -n "$key" ] || continue
# Convert placeholder back to empty string
[ "$block_reason" = "-" ] && block_reason=""
[ "$requires" = "-" ] && requires=""
[ "$notes" = "-" ] && notes=""
[ "$description" = "-" ] && description=""
MODULE_NAME_MAP["$key"]="$name" MODULE_NAME_MAP["$key"]="$name"
MODULE_NEEDS_BUILD_MAP["$key"]="$needs_build" MODULE_NEEDS_BUILD_MAP["$key"]="$needs_build"
MODULE_TYPE_MAP["$key"]="$module_type" MODULE_TYPE_MAP["$key"]="$module_type"
@@ -426,6 +432,7 @@ PY
MODULE_BLOCK_REASON_MAP["$key"]="$block_reason" MODULE_BLOCK_REASON_MAP["$key"]="$block_reason"
MODULE_REQUIRES_MAP["$key"]="$requires" MODULE_REQUIRES_MAP["$key"]="$requires"
MODULE_NOTES_MAP["$key"]="$notes" MODULE_NOTES_MAP["$key"]="$notes"
MODULE_DESCRIPTION_MAP["$key"]="$description"
KNOWN_MODULE_LOOKUP["$key"]=1 KNOWN_MODULE_LOOKUP["$key"]=1
done < <( done < <(
python3 - "$MODULE_MANIFEST_PATH" <<'PY' python3 - "$MODULE_MANIFEST_PATH" <<'PY'
@@ -436,8 +443,8 @@ manifest_path = Path(sys.argv[1])
manifest = json.loads(manifest_path.read_text()) manifest = json.loads(manifest_path.read_text())
def clean(value): def clean(value):
if value is None: if value is None or value == "":
return "" return "-"
return str(value).replace("\t", " ").replace("\n", " ").strip() return str(value).replace("\t", " ").replace("\n", " ").strip()
for entry in manifest.get("modules", []): for entry in manifest.get("modules", []):
@@ -446,18 +453,18 @@ for entry in manifest.get("modules", []):
continue continue
name = clean(entry.get("name", key)) name = clean(entry.get("name", key))
needs_build = "1" if entry.get("needs_build") else "0" needs_build = "1" if entry.get("needs_build") else "0"
module_type = clean(entry.get("type", "")) module_type = clean(entry.get("type", "")) or "-"
status = clean(entry.get("status", "active")) status = clean(entry.get("status", "active"))
block_reason = clean(entry.get("block_reason", "")) block_reason = clean(entry.get("block_reason", ""))
requires = entry.get("requires") or [] requires = entry.get("requires") or []
depends_on = entry.get("depends_on") or []
ordered = [] ordered = []
for dep in list(requires) + list(depends_on): for dep in list(requires):
if dep and dep not in ordered: if dep and dep not in ordered:
ordered.append(dep) ordered.append(dep)
requires_csv = ",".join(ordered) requires_csv = ",".join(ordered) if ordered else "-"
notes = clean(entry.get("notes", "")) notes = clean(entry.get("notes", ""))
print("\t".join([key, name, needs_build, module_type, status or "active", block_reason, requires_csv, notes])) description = clean(entry.get("description", ""))
print("\t".join([key, name, needs_build, module_type, status, block_reason, requires_csv, notes, description]))
PY PY
) )
@@ -1145,6 +1152,10 @@ fi
if [ "${MODULE_NEEDS_BUILD_MAP[$key]}" = "1" ]; then if [ "${MODULE_NEEDS_BUILD_MAP[$key]}" = "1" ]; then
prompt_label="${prompt_label} (requires build)" prompt_label="${prompt_label} (requires build)"
fi fi
local description="${MODULE_DESCRIPTION_MAP[$key]:-}"
if [ -n "$description" ]; then
printf '%b\n' "${BLUE} ${MODULE_NAME_MAP[$key]:-$key}: ${description}${NC}"
fi
local default_answer local default_answer
default_answer="$(module_default "$key")" default_answer="$(module_default "$key")"
local response local response