--[[ Auctioneer Version: 5.9.4961 (WhackyWallaby) Revision: $Id: CoreConfig.lua 4880 2010-09-15 20:02:11Z Nechckn $ URL: http://auctioneeraddon.com/ This is an addon for World of Warcraft that adds statistical history to the auction data that is collected when the auction is scanned, so that you can easily determine what price you will be able to sell an item for at auction or at a vendor whenever you mouse-over an item in the game License: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program(see GPL.txt); if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Note: This AddOn's source code is specifically designed to work with World of Warcraft's interpreted AddOn system. You have an implicit license to use this AddOn with these facilities since that is its designated purpose as per: http://www.fsf.org/licensing/licenses/gpl-faq.html#InterpreterIncompat ]] if not AucAdvanced then return end local coremodule = AucAdvanced.GetCoreModule("CoreConfig") if not coremodule then return end -- Someone has explicitely broken us AucAdvanced.Config = {} local lib = AucAdvanced.Config local private = {} private.Print = AucAdvanced.Print function private.CommandHandler(editbox, command, subcommand, ...) command = command:lower() if (command == "help") then local pos, cmdList, cmdL, cmd, cmdFunc = 0,"", "", "", nil repeat if (pos == 1) then cmdList = cmd elseif (pos == 2) then cmdL = cmd elseif (pos > 2) then cmdList = cmdList..", "..cmdL cmdL = cmd end pos = pos + 1 cmdFunc = loadstring("return SLASH_AUCADVANCED"..pos) cmd = cmdFunc() until (cmd == nil or cmd == "") if (pos > 3 and cmdL~="") then cmdList = cmdList..", or "..cmdL elseif (cmdL~="") then cmdList = cmdList.." or ".. cmdL end local cmd = strsplit(" ", editbox:GetText()) private.Print("Auctioneer Help ("..cmdList..")") private.Print(" {{"..cmd.." help}} - Show this help") private.Print(" {{"..cmd.." begin [catid [subcatid]]}} - Scan the auction house (optional catid and subcatid)") private.Print(" {{"..cmd.." config}} - Opens the configuration page.") private.Print(" {{"..cmd.." getall}} - Download auctionhouse using getall") private.Print(" {{"..cmd.." pause}} - Pause scanning of the auctionhouse") private.Print(" {{"..cmd.." resume||unpause||cont||continue}} - Recommence scanning of the auctionhouse") private.Print(" {{"..cmd.." end}} - Stop scanning the auctionhouse, commit current data") private.Print(" {{"..cmd.." abort}} - Stop scanning the auctionhouse, discard current data") private.Print(" {{"..cmd.." clear <itemlink>}} - Clears data for <itemlink> from the stat modules") private.Print(" {{"..cmd.." cleardata faction||server||ALL}} - Clears data from the stat modules for current faction, server or all data") private.Print(" {{"..cmd.." clearscan faction||server||ALL}} - Clears the scan snapshot for current faction, server or all servers") private.Print(" {{"..cmd.." about [all]}} - Shows the currenly running version of Auctioneer, if all is specified, also shows the version for every file in the package") for system in pairs(AucAdvanced.Modules) do local modules = AucAdvanced.GetAllModules("CommandHandler", system) for pos, engineLib in ipairs(modules) do local engine = engineLib:GetName() private.Print(" {{"..cmd.." "..system:lower().." "..engine:lower().." help}} - Show "..engineLib.GetName().." "..system.." help") end end elseif command == "begin" or command == "scan" then lib.ScanCommand(subcommand, ...) elseif command == "end" or command == "stop" then AucAdvanced.Scan.SetPaused(false) AucAdvanced.Scan.Cancel() elseif command == "pause" then AucAdvanced.Scan.SetPaused(true) elseif command == "resume" or command == "unpause" or command == "cont" or command == "continue" then AucAdvanced.Scan.SetPaused(false) elseif command == "abort" then AucAdvanced.Scan.Abort() elseif command == "config" then AucAdvanced.Settings.Show() elseif command == "clear" then if ... then subcommand = string.join(" ", subcommand, ...) end AucAdvanced.API.ClearItem(subcommand) elseif command == "cleardata" then if ... then subcommand = string.join(" ", subcommand, ...) end AucAdvanced.API.ClearData(subcommand) elseif command == "clearscan" then if ... then subcommand = string.join(" ", subcommand, ...) end AucAdvanced.Scan.ClearScanData(subcommand) elseif command == "about" then lib.About(subcommand, ...) elseif command == "getallspeed" then AucAdvanced.Settings.SetSetting("GetAllSpeed", subcommand) AucAdvanced.Print("Setting GetAllSpeed to "..tostring(AucAdvanced.Settings.GetSetting("GetAllSpeed"))) elseif command == "getall" then AucAdvanced.Scan.StartScan(nil, nil, nil, nil, nil, nil, nil, nil, true) else if command and subcommand then local engineLib = AucAdvanced.GetAllModules("CommandHandler", command, subcommand) if engineLib then engineLib.CommandHandler(...) return end end -- No match found private.Print("Unable to find command: "..command) private.Print("Type {{/auc help}} for help") end end function lib.ScanCommand(cat, subcat) cat = tonumber(cat) subcat = tonumber(subcat) local catName = nil local subcatName = nil --If there was a requested category to scan, we'll first check if its a valid category if cat then catName = AucAdvanced.Const.CLASSES[cat] if catName then if subcat then subcatName = AucAdvanced.Const.SUBCLASSES[cat][subcat] if not subcatName then subcat = nil end end else cat = nil subcat = nil end else subcat = nil end --If the requested category was invalid, we'll scan the whole AH if not cat then private.Print("Beginning scanning: {{All categories}}") elseif not subcat then private.Print("Beginning scanning: {{Category "..cat.." ("..catName..")}}") else private.Print("Beginning scanning: {{Category "..cat.."."..subcat.." ("..subcatName.." of "..catName..")}}") end AucAdvanced.Scan.StartScan(nil, nil, nil, nil, cat, subcat, nil, nil) end function lib.GetCommandLead(llibType, llibName) return " {{"..SLASH_AUCADVANCED1.." "..llibType:lower().." "..llibName:lower() end function lib.About(all) local rev = AucAdvanced.GetCurrentRevision() private.Print(("Auctioneer rev.%d loaded"):format(rev)) if (all) then local revisionsList = AucAdvanced.GetRevisionList() for file, revision in pairs(revisionsList) do local shortName = file:match(".-/(%u.*)") private.Print((" File \"%s\", revision: %d"):format(shortName, revision)) end end end SLASH_AUCADVANCED1 = "/auc" SLASH_AUCADVANCED2 = "/aadv" SLASH_AUCADVANCED3 = "/auctioneer" SlashCmdList["AUCADVANCED"] = function(msg, editbox) private.CommandHandler(editbox, strsplit(" ", msg)) end AucAdvanced.RegisterRevision("$URL: http://svn.norganna.org/auctioneer/branches/5.9/Auc-Advanced/CoreConfig.lua $", "$Rev: 4880 $")