Automates mage portal selling and consumable trading in World of Warcraft: Classic.
Note: Addon is disabled by default. Use /mageservice on
- Scans local and instance chat for players wanting to buy ports, water or food
- Whispers found players & invites them to the party
- Uses a proximty scanner to detect when players are in trade range. Automatically opens trade window.
- Ensures players paying for ports put the required gold into the trade window
- Fills the trade window with food/water when players are not looking for a port
- Blacklists players who keep the trade window open without action
- Ensure casting a port doesn't interfer with conjuring food/water
- Prints a trade summary
- Persists settings across game sessions
Buttons
Accept Trade
Appears once a trade is acceptableCast Portal
Appears once a player has paid for a portConjure
Appears when the players backpack doesn't have enough water/foodAdvertise
Appears every 60 seconds to send advertisement to local and instance channel
MageService uses a modular design with a central namespace (MAGESERVICE
) that stores references to all modules. Each module handles a specific aspect of functionality and is registered in the main namespace.
- Init.lua: Initializes the global
MAGESERVICE
table - Settings.lua: Manages persistent settings that are saved between game sessions
- Core.lua: Main event handler and integration point for all modules
- ContainerUI.lua: Manages the movable UI container and button layout system
- Advertiser.lua: Handles chat advertisements with cooldown management
- Blacklist.lua: Manages player blacklisting system
- Destinations.lua: Handles portal destination detection and mapping
- Spells.lua: Controls spell casting for portals and conjuring
- Trade.lua: Manages trade window interactions and inventory operations
- TradeProximityMonitor.lua: Monitors nearby players for automated trading
- TradeTimeoutMonitor.lua: Handles trade timeout detection and cancellation
- Utilities.lua: Provides common utility functions
- Event Registration: The Core module registers for WoW events and distributes handling to appropriate modules
- Chat Processing: Monitors chat channels for portal/food/water requests
- Player Handling: Tracks player status, destinations, and trade states
- UI Management: Dynamic button creation and layout based on current context
- Trade Automation: Manages the entire trade workflow from detection to completion
- Settings Management: Persists user preferences across sessions via WoW's SavedVariables system
/ms
or/mageservice
: Toggle the addon on/off/ms on
or/mageservice on
: Explicitly enable the addon/ms off
or/mageservice off
: Explicitly disable the addon/mageservice show
: Show the UI container/mageservice hide
: Hide the UI container
- Detect when party invites fails
- Ensure port isn't on cd
- Respond to players asking for specific water/food stack combinations
- Respond to players asking about portals
- Add more user-configurable settings (advert messages, water/food configuration, etc)
- Track Sales