--[[ Auctioneer Addon for World of Warcraft(tm). Version: 3.9.0.1000 (Kangaroo) Revision: $Id: AucCommand.lua 994 2006-09-07 01:30:33Z mentalpower $ Auctioneer command functions. Functions to allow setting of values, switching commands etc. 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. ]] --Local function prototypes local register, convertKhaos, getKhaosDefault, setKhaosSetKeyParameter, setKhaosSetKeyValue, getKhaosLocaleList, getKhaosDurationsList, getKhaosProtectionList, getKhaosFinishList, registerKhaos, buildCommandMap, commandMap, commandMapRev, command, chatPrintHelp, onOff, clear, alsoInclude, isValidLocale, setLocale, default, getFrameNames, getFrameIndex, setFrame, protectWindow, auctionDuration, finish, genVarSet, percentVarSet, numVarSet, setFilter, getFilterVal, getFilter, findFilterClass, setFilter, getLocale function register() if (Khaos) then if (not Auctioneer_Khaos_Registered) then registerKhaos(); end end end -- Convert a single key in a table of configuration settings function convertConfig(t, key, values, ...) --Local local modified = false; local v = nil; for i,localizedKey in ipairs(arg) do if (t[localizedKey] ~= nil) then v = t[localizedKey]; t[localizedKey] = nil; modified = true; end end if (t[key] ~= nil) then v = t[key]; end if (v ~= nil) then if (values[v] ~= nil) then t[key] = values[v]; modified = true; else t[key] = v; end end return modified; end -- Convert Khaos options to standardized keys and values function convertKhaos() if (not Khaos_Configurations) then return; end -- Array that maps localized versions of strings to standardized local convertOnOff = { ['apagado'] = 'off', -- esES ['prendido'] = 'on', -- esES } local localeConvMap = { ['apagado'] = 'default', ['prendido'] = 'default', ['off'] = 'default', ['on'] = 'default', } -- Format: standardizedKey, valueMap, esES, localizedKey local conversions = { -- Localized stuff to get rid of { 'show-warning', convertOnOff, 'ver-advertencia' }, { 'show-verbose', convertOnOff, 'ver-literal' }, { 'show-stats', convertOnOff, 'ver-estadisticas'}, { 'show-average', convertOnOff, 'ver-promedio' }, { 'show-median', convertOnOff, 'ver-mediano' }, { 'show-suggest', convertOnOff, 'ver-sugerencia' }, { 'embed', convertOnOff, 'integrado' }, { 'show-embed-blankline', convertOnOff, 'ver-integrado-lineavacia' }, { 'pct-bidmarkdown', convertOnOff, 'pct-menosoferta' }, { 'pct-markup', convertOnOff, 'pct-mas' }, { 'pct-maxless', convertOnOff, 'pct-sinmaximo' }, { 'pct-nocomp', convertOnOff, 'pct-sincomp' }, { 'pct-underlow', convertOnOff, 'pct-bajomenor' }, { 'pct-undermkt', convertOnOff, 'pct-bajomercado' }, { 'autofill', convertOnOff, 'autoinsertar' }, { 'show-link', convertOnOff, 'ver-enlace' }, -- Changed key names { 'locale', convertOnOff, 'AuctioneerLocale' }, { 'printframe', convertOnOff, 'AuctioneerPrintFrame' }, { 'also', convertOnOff, 'AuctioneerInclude' }, { 'enabled', convertOnOff, 'AuctioneerEnable' }, } -- Prepend placeholder for the table parameter for i,c in ipairs(conversions) do table.insert(c, 1, nil) end for i,config in ipairs(Khaos_Configurations) do if (config.configuration and config.configuration.Auctioneer) then local converted = false; -- Run the defined conversions for i,c in ipairs(conversions) do -- Replace first parameter with actual table to process -- Inserting here will cause problems for the second iteration c[1] = config.configuration.Auctioneer converted = convertConfig(unpack(c)) or converted end if (converted) then Auctioneer.Util.ChatPrint("Converted old Khaos configuration \"" .. config.name .. "\"") end end end end function getKhaosDefault(filter) if (filter == "also") then return Auctioneer.Core.Constants.FilterDefaults[filter]; elseif (Auctioneer.Core.Constants.FilterDefaults[filter] == 'on') then return true; elseif (Auctioneer.Core.Constants.FilterDefaults[filter] == 'off') then return false; else return Auctioneer.Core.Constants.FilterDefaults[filter]; end end function setKhaosSetKeyParameter(key, parameter, value) --Local if (Auctioneer_Khaos_Registered) then if (Khaos.getSetKey("Auctioneer", key)) then Khaos.setSetKeyParameter("Auctioneer", key, parameter, value) else EnhTooltip.DebugPrint("setKhaosSetKeyParameter(): key " .. key .. " does not exist") end end end function setKhaosSetKeyValue(key, value) --Local if (Auctioneer_Khaos_Registered) then local kKey = Khaos.getSetKey("Auctioneer", key) if (not kKey) then EnhTooltip.DebugPrint("setKhaosSetKeyParameter(): key " .. key .. " does not exist") elseif (kKey.checked ~= nil) then if (type(value) == "string") then value = (value == "on"); end Khaos.setSetKeyParameter("Auctioneer", key, "checked", value) elseif (kKey.value ~= nil) then Khaos.setSetKeyParameter("Auctioneer", key, "value", value) else EnhTooltip.DebugPrint("setKhaosSetKeyValue(): don't know how to update key ", key) end end end function getKhaosLocaleList() --Local local options = { [_AUCT('CmdDefault')] = 'default' }; for locale, data in pairs(AuctioneerLocalizations) do options[locale] = locale; end return options end function getKhaosLoadList() --Local return { [_AUCT('GuiLoad_Always')] = 'always', [_AUCT('GuiLoad_Never')] = 'never', [_AUCT('GuiLoad_AuctionHouse')] = 'auctionhouse' } end function getKhaosDurationsList() --Local local list = {} for i = 0, 3 do list[_AUCT('CmdAuctionDuration'..i)] = i end return list end function getKhaosProtectionList() --Local local list = {} for i = 0, 2 do list[_AUCT('CmdProtectWindow'..i)] = i end return list end function getKhaosFinishList() --Local local list = {} for i = 0, 2 do list[_AUCT('CmdFinish'..i)] = i end return list end function registerKhaos() -- Convert old Khaos settings to current optionSet convertKhaos(); local optionSet = { id="Auctioneer"; text="Auctioneer"; helptext=function() return _AUCT('GuiMainHelp') end; difficulty=1; default={checked=true}; options={ { id="Header"; text="Auctioneer"; helptext=function() return _AUCT('GuiMainHelp') end; type=K_HEADER; difficulty=1; }; { id="enabled"; type=K_TEXT; text=function() return _AUCT('GuiMainEnable') end; helptext=function() return _AUCT('HelpOnoff') end; callback=function(state) Auctioneer.Command.OnOff(state.checked); end; feedback=function(state) if (state.checked) then return _AUCT('StatOn'); else return _AUCT('StatOff'); end end; check=true; default={checked=true}; disabled={checked=false}; difficulty=1; }; { id="LoadSettings"; type=K_PULLDOWN; setup = { options = getKhaosLoadList; multiSelect = false; }; text=function() return _AUCT('GuiLoad') end; helptext=function() return _AUCT('HelpLoad') end; callback=function(state) end; feedback=function(state) mainHandler("load " .. state.value, "GUI") end; default={value = 'auctionhouse'}; disabled={value = 'never'}; difficulty=1; }; { id="locale"; type=K_PULLDOWN; setup = { options = getKhaosLocaleList; multiSelect = false; }; text=function() return _AUCT('GuiLocale') end; helptext=function() return _AUCT('HelpLocale') end; callback = function(state) end; feedback = function (state) Auctioneer.Command.SetLocale(state.value); return string.format(_AUCT('FrmtActSet'), _AUCT('CmdLocale'), state.value); end; default = { value = Auctioneer.Command.GetLocale(); }; disabled = { value = Auctioneer.Command.GetLocale(); }; dependencies={enabled={checked=true;}}; difficulty=2; }; { id="AuctioneerStatsHeader"; type=K_HEADER; text=function() return _AUCT('GuiStatsHeader') end; helptext=function() return _AUCT('GuiStatsHelp') end; difficulty=2; }; { id="show-stats"; type=K_TEXT; text=function() return _AUCT('GuiStatsEnable') end; helptext=function() return _AUCT('HelpStats') end; callback=function(state) Auctioneer.Command.GenVarSet("show-stats", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowStats'))); else return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowStats'))); end end; check=true; default={checked=getKhaosDefault('show-stats')}; disabled={checked=false}; dependencies={enabled={checked=true;}}; difficulty=1; }; { id="show-average"; type=K_TEXT; text=function() return _AUCT('GuiAverages') end; helptext=function() return _AUCT('HelpAverage') end; callback=function(state) Auctioneer.Command.GenVarSet("show-average", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowAverage'))); else return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowAverage'))); end end; check=true; default={checked=getKhaosDefault('show-average')}; disabled={checked=false}; dependencies={enabled={checked=true;}}; difficulty=2; }; { id="show-median"; type=K_TEXT; text=function() return _AUCT('GuiMedian') end; helptext=function() return _AUCT('HelpMedian') end; callback=function(state) Auctioneer.Command.GenVarSet("show-median", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowMedian'))); else return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowMedian'))); end end; check=true; default={checked=getKhaosDefault('show-median')}; disabled={checked=false}; dependencies={enabled={checked=true;}}; difficulty=2; }; { id="show-suggest"; type=K_TEXT; text=function() return _AUCT('GuiSuggest') end; helptext=function() return _AUCT('HelpSuggest') end; callback=function(state) Auctioneer.Command.GenVarSet("show-suggest", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowSuggest'))); else return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowSuggest'))); end end; check=true; default={checked=getKhaosDefault('show-suggest')}; disabled={checked=false}; dependencies={enabled={checked=true;}}; difficulty=2; }; { id="show-verbose"; type=K_TEXT; text=function() return _AUCT('GuiVerbose') end; helptext=function() return _AUCT('HelpVerbose') end; callback=function(state) Auctioneer.Command.GenVarSet("show-verbose", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowVerbose'))); else return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowVerbose'))); end end; check=true; default={checked=getKhaosDefault('show-verbose')}; disabled={checked=false}; dependencies={enabled={checked=true;}}; difficulty=1; }; { id="AuctioneerAuctionHouseHeader"; type=K_HEADER; text=function() return _AUCT('GuiAuctionHouseHeader') end; helptext=function() return _AUCT('GuiAuctionHouseHeaderHelp') end; difficulty=1; }; { id="autofill"; type=K_TEXT; text=function() return _AUCT('GuiAutofill') end; helptext=function() return _AUCT('HelpAutofill') end; callback=function(state) Auctioneer.Command.GenVarSet("autofill", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtActEnable'), _AUCT('CmdAutofill'))); else return (string.format(_AUCT('FrmtActDisable'), _AUCT('CmdAutofill'))); end end; check=true; default={checked=getKhaosDefault('autofill')}; disabled={checked=false}; dependencies={enabled={checked=true;}}; difficulty=1; }; { id="auction-duration"; type=K_PULLDOWN; setup = { options = getKhaosDurationsList; multiSelect = false; }; text=function() return _AUCT('GuiAuctionDuration') end; helptext=function() return _AUCT('HelpAuctionDuration') end; callback=function(state) Auctioneer.Command.AuctionDuration(state.value); end; feedback=function(state) return string.format(_AUCT('FrmtAuctionDuration'), _AUCT('CmdAuctionDuration'..Auctioneer.Command.GetFilterVal('auction-duration'))); end; default = { value = _AUCT('CmdAuctionDuration'..Auctioneer.Core.Constants.FilterDefaults['auction-duration']) }; disabled = { value = _AUCT('CmdAuctionDuration'..Auctioneer.Core.Constants.FilterDefaults['auction-duration']) }; dependencies={enabled={checked=true;}}; difficulty=2; }; { id="protect-window"; type=K_PULLDOWN; setup = { options = getKhaosProtectionList; multiSelect = false; }; text=function() return _AUCT('GuiProtectWindow') end; helptext=function() return _AUCT('HelpProtectWindow') end; callback=function(state) Auctioneer.Command.ProtectWindow(state.value); end; feedback=function(state) return string.format(_AUCT('FrmtProtectWindow'), _AUCT('CmdProtectWindow'..Auctioneer.Command.GetFilterVal('protect-window'))); end; default = { value = _AUCT('CmdProtectWindow'..Auctioneer.Core.Constants.FilterDefaults['protect-window']) }; disabled = { value = _AUCT('CmdProtectWindow'..Auctioneer.Core.Constants.FilterDefaults['protect-window']) }; dependencies={enabled={checked=true;}}; difficulty=3; }; { id="finish"; type=K_PULLDOWN; setup = { options = getKhaosFinishList; multiSelect = false; }; text=function() return _AUCT('GuiFinish') end; helptext=function() return _AUCT('HelpFinish') end; callback=function(state) Auctioneer.Command.Finish(state.value); end; feedback=function(state) return string.format(_AUCT('FrmtFinish'), _AUCT('CmdFinish'..Auctioneer.Command.GetFilterVal('finish'))); end; default = { value = _AUCT('CmdFinish'..Auctioneer.Core.Constants.FilterDefaults['finish']) }; disabled = { value = _AUCT('CmdFinish'..Auctioneer.Core.Constants.FilterDefaults['finish']) }; dependencies={enabled={checked=true;}}; difficulty=3; }; { id="show-warning"; type=K_TEXT; text=function() return _AUCT('GuiRedo') end; helptext=function() return _AUCT('HelpRedo') end; callback=function(state) Auctioneer.Command.GenVarSet("show-warning", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowRedo'))); else return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowRedo'))); end end; check=true; default={checked=getKhaosDefault('show-warning')}; disabled={checked=false}; dependencies={enabled={checked=true;}}; difficulty=1; }; { id="warn-color"; type=K_TEXT; text=function() return _AUCT('GuiWarnColor') end; helptext=function() return _AUCT('HelpWarnColor') end; callback=function(state) Auctioneer.Command.GenVarSet("warn-color", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtActEnable'), _AUCT('CmdWarnColor'))); else return (string.format(_AUCT('FrmtActDisable'), _AUCT('CmdWarnColor'))); end end; check=true; default={checked=getKhaosDefault('warn-color')}; disabled={checked=false}; dependencies={enabled={checked=true;}}; difficulty=1; }; { id="finish-sound"; type=K_TEXT; text=function() return _AUCT('GuiFinishSound') end; helptext=function() return _AUCT('HelpFinishSound') end; callback=function(state) Auctioneer.Command.GenVarSet("finish-sound", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtActEnable'), _AUCT('CmdFinishSound'))); else return (string.format(_AUCT('FrmtActDisable'), _AUCT('CmdFinishSound'))); end end; check=true; default={checked=getKhaosDefault('warn-color')}; disabled={checked=false}; dependencies={enabled={checked=true;}}; difficulty=1; }; { id="AuctioneerEmbedHeader"; type=K_HEADER; text=function() return _AUCT('GuiEmbedHeader') end; helptext=function() return _AUCT('HelpEmbed') end; difficulty=1; }; { id="embed"; type=K_TEXT; text=function() return _AUCT('GuiEmbed') end; helptext=function() return _AUCT('HelpEmbed') end; callback=function(state) Auctioneer.Command.GenVarSet("embed", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtActEnable'), _AUCT('CmdEmbed'))); else return (string.format(_AUCT('FrmtActDisable'), _AUCT('CmdEmbed'))); end end; check=true; default={checked=getKhaosDefault('embed')}; disabled={checked=false}; dependencies={enabled={checked=true;}}; difficulty=1; }; { id="show-embed-blankline"; type=K_TEXT; text=function() return _AUCT('GuiEmbedBlankline') end; helptext=function() return _AUCT('HelpEmbedBlank') end; callback=function(state) Auctioneer.Command.GenVarSet("show-embed-blankline", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowEmbedBlank'))); else return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowEmbedBlank'))); end end; check=true; default={checked=getKhaosDefault('show-embed-blankline')}; disabled={checked=false}; dependencies={embed={checked=true;}, enabled={checked=true;}}; difficulty=1; }; { id="AuctioneerClearHeader"; type=K_HEADER; text=function() return _AUCT('GuiClearHeader') end; helptext=function() return _AUCT('GuiClearHelp') end; difficulty=3; }; { id="AuctioneerClearAll"; type=K_BUTTON; setup={ buttonText=function() return _AUCT('GuiClearallButton') end; }; text=function() return _AUCT('GuiClearall') end; helptext=function() return _AUCT('GuiClearallHelp') end; callback=function() Auctioneer.Command.Clear("all"); end; feedback=function() return string.format(_AUCT('FrmtActClearall'), _AUCT('GuiClearallNote')); end; dependencies={enabled={checked=true;}}; difficulty=3; }; { id="AuctioneerClearSnapshot"; type=K_BUTTON; setup={ buttonText=function() return _AUCT('GuiClearsnapButton') end; }; text=function() return _AUCT('GuiClearsnap') end; helptext=function() return _AUCT('GuiClearsnapHelp') end; callback=function() Auctioneer.Command.Clear(_AUCT('CmdClearSnapshot')); end; feedback=function() return _AUCT('FrmtActClearsnap'); end; dependencies={enabled={checked=true;}}; difficulty=3; }; { id="AuctioneerPercentsHeader"; type=K_HEADER; text=function() return _AUCT('GuiPercentsHeader') end; helptext=function() return _AUCT('GuiPercentsHelp') end; difficulty=4; }; { id="pct-bidmarkdown"; type=K_EDITBOX; setup = { callOn = {"tab", "escape", "enter"}; }; text=function() return _AUCT('GuiBidmarkdown') end; helptext=function() return _AUCT('HelpPctBidmarkdown') end; callback = function(state) Auctioneer.Command.PercentVarSet("pct-bidmarkdown", state.value); end; feedback = function (state) return string.format(_AUCT('FrmtActSet'), _AUCT('CmdPctBidmarkdown'), state.value.."%"); end; default = { value = getKhaosDefault('pct-bidmarkdown') }; disabled = { value = getKhaosDefault('pct-bidmarkdown') }; dependencies={enabled={checked=true;}}; difficulty=4; }; { id="pct-markup"; type=K_EDITBOX; setup = { callOn = {"tab", "escape", "enter"}; }; text=function() return _AUCT('GuiMarkup') end; helptext=function() return _AUCT('HelpPctMarkup') end; callback = function(state) Auctioneer.Command.PercentVarSet("pct-markup", state.value); end; feedback = function (state) return string.format(_AUCT('FrmtActSet'), _AUCT('CmdPctMarkup'), state.value.."%"); end; default = { value = getKhaosDefault('pct-markup') }; disabled = { value = getKhaosDefault('pct-markup') }; dependencies={enabled={checked=true;}}; difficulty=4; }; { id="pct-maxless"; type=K_EDITBOX; setup = { callOn = {"tab", "escape", "enter"}; }; text=function() return _AUCT('GuiMaxless') end; helptext=function() return _AUCT('HelpPctMaxless') end; callback = function(state) Auctioneer.Command.PercentVarSet("pct-maxless", state.value); end; feedback = function (state) return string.format(_AUCT('FrmtActSet'), _AUCT('CmdPctMaxless'), state.value.."%"); end; default = { value = getKhaosDefault('pct-maxless') }; disabled = { value = getKhaosDefault('pct-maxless') }; dependencies={enabled={checked=true;}}; difficulty=4; }; { id="pct-nocomp"; type=K_EDITBOX; setup = { callOn = {"tab", "escape", "enter"}; }; text=function() return _AUCT('GuiNocomp') end; helptext=function() return _AUCT('HelpPctNocomp') end; callback = function(state) Auctioneer.Command.PercentVarSet("pct-nocomp", state.value); end; feedback = function (state) return string.format(_AUCT('FrmtActSet'), _AUCT('CmdPctNocomp'), state.value.."%"); end; default = { value = getKhaosDefault('pct-nocomp') }; disabled = { value = getKhaosDefault('pct-nocomp') }; dependencies={enabled={checked=true;}}; difficulty=4; }; { id="pct-underlow"; type=K_EDITBOX; setup = { callOn = {"tab", "escape", "enter"}; }; text=function() return _AUCT('GuiUnderlow') end; helptext=function() return _AUCT('HelpPctUnderlow') end; callback = function(state) Auctioneer.Command.PercentVarSet("pct-underlow", state.value); end; feedback = function (state) return string.format(_AUCT('FrmtActSet'), _AUCT('CmdPctUnderlow'), state.value.."%"); end; default = { value = getKhaosDefault('pct-underlow') }; disabled = { value = getKhaosDefault('pct-underlow') }; dependencies={enabled={checked=true;}}; difficulty=4; }; { id="pct-undermkt"; type=K_EDITBOX; setup = { callOn = {"tab", "escape", "enter"}; }; text=function() return _AUCT('GuiUndermkt') end; helptext=function() return _AUCT('HelpPctUndermkt') end; callback = function(state) Auctioneer.Command.PercentVarSet("pct-undermkt", state.value); end; feedback = function (state) return string.format(_AUCT('FrmtActSet'), _AUCT('CmdPctUndermkt'), state.value.."%"); end; default = { value = getKhaosDefault('pct-undermkt') }; disabled = { value = getKhaosDefault('pct-undermkt') }; dependencies={enabled={checked=true;}}; difficulty=4; }; { id="AuctioneerAskPriceHeader"; type=K_HEADER; text=function() return _AUCT('GuiAskPriceHeader') end; helptext=function() return _AUCT('GuiAskPriceHeaderHelp') end; difficulty=2; }; { id="askprice"; type=K_TEXT; text=function() return _AUCT('GuiAskPrice') end; helptext=function() return _AUCT('HelpAskPrice') end; callback=function(state) if (state.checked) then Auctioneer.AskPrice.OnOff("on"); else Auctioneer.AskPrice.OnOff("off"); end end; feedback=function(state) if (state.checked) then return (_AUCT('StatAskPriceOn')) else return (_AUCT('StatAskPriceOff')) end end; check=true; default={getKhaosDefault('askprice')}; disabled={checked=false}; dependencies={enabled={checked=true;}}; difficulty=2; }; { id="askprice-trigger"; type=K_EDITBOX; setup = { callOn = {"tab", "escape", "enter"}; }; text=function() return _AUCT('GuiAskPriceTrigger') end; helptext=function() return _AUCT('HelpAskPriceTrigger') end; callback = function(state) Auctioneer.AskPrice.SetTrigger(state.value) end; feedback = function (state) return string.format(_AUCT('FrmtActSet'), "askprice ".._AUCT('CmdAskPriceTrigger'), state.value); end; default = { value = getKhaosDefault('askprice-trigger') }; disabled = { value = getKhaosDefault('askprice-trigger') }; dependencies={askprice={checked=true}, enabled={checked=true;}}; difficulty=3; }; { id="askprice-whispers"; type=K_TEXT; text=function() return _AUCT('GuiAskPriceWhispers') end; helptext=function() return _AUCT('HelpAskPriceWhispers') end; callback=function(state) Auctioneer.AskPrice.GenVarSet("whispers", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtAskPriceEnable'), "askprice ".._AUCT('CmdAskPriceWhispers'))) else return (string.format(_AUCT('FrmtAskPriceDisable'), "askprice ".._AUCT('CmdAskPriceWhispers'))) end end; check=true; default={getKhaosDefault('askprice-whispers')}; disabled={checked=false}; dependencies={askprice={checked=true}, enabled={checked=true;}}; difficulty=2; }; { id="askprice-vendor"; type=K_TEXT; text=function() return _AUCT('GuiAskPriceVendor') end; helptext=function() return _AUCT('HelpAskPriceVendor') end; callback=function(state) Auctioneer.AskPrice.GenVarSet("vendor", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtAskPriceEnable'), "askprice ".._AUCT('CmdAskPriceVendor'))) else return (string.format(_AUCT('FrmtAskPriceDisable'), "askprice ".._AUCT('CmdAskPriceVendor'))) end end; check=true; default={getKhaosDefault('askprice-vendor')}; disabled={checked=false}; dependencies={askprice={checked=true}, enabled={checked=true;}}; difficulty=2; }; { id="askprice-party"; type=K_TEXT; text=function() return _AUCT('GuiAskPriceParty') end; helptext=function() return _AUCT('HelpAskPriceParty') end; callback=function(state) Auctioneer.AskPrice.GenVarSet("party", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtAskPriceEnable'), "askprice ".._AUCT('CmdAskPriceParty'))) else return (string.format(_AUCT('FrmtAskPriceDisable'), "askprice ".._AUCT('CmdAskPriceParty'))) end end; check=true; default={getKhaosDefault('askprice-party')}; disabled={checked=false}; dependencies={askprice={checked=true}, enabled={checked=true;}}; difficulty=2; }; { id="askprice-guild"; type=K_TEXT; text=function() return _AUCT('GuiAskPriceGuild') end; helptext=function() return _AUCT('HelpAskPriceGuild') end; callback=function(state) Auctioneer.AskPrice.GenVarSet("guild", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtAskPriceEnable'), "askprice ".._AUCT('CmdAskPriceGuild'))) else return (string.format(_AUCT('FrmtAskPriceDisable'), "askprice ".._AUCT('CmdAskPriceGuild'))) end end; check=true; default={getKhaosDefault('askprice-guild')}; disabled={checked=false}; dependencies={askprice={checked=true}, enabled={checked=true;}}; difficulty=2; }; { id="askprice-smart"; type=K_TEXT; text=function() return _AUCT('GuiAskPriceSmart') end; helptext=function() return _AUCT('HelpAskPriceSmart') end; callback=function(state) Auctioneer.AskPrice.GenVarSet("smart", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtAskPriceEnable'), "askprice ".._AUCT('CmdAskPriceSmart'))) else return (string.format(_AUCT('FrmtAskPriceDisable'), "askprice ".._AUCT('CmdAskPriceSmart'))) end end; check=true; default={getKhaosDefault('askprice-smart')}; disabled={checked=false}; dependencies={askprice={checked=true}, enabled={checked=true;}}; difficulty=2; }; { id="askprice-word1"; type=K_EDITBOX; setup = { callOn = {"tab", "escape", "enter"}; }; text=function() return string.format(_AUCT('GuiAskPriceWord'), 1) end; helptext=function() return _AUCT('HelpAskPriceWord') end; callback = function(state) Auctioneer.AskPrice.SetCustomSmartWords(nil, 1, state.value) end; feedback = function (state) return string.format(_AUCT('FrmtActSet'), "askprice ".._AUCT('CmdAskPriceWord').." 1", Auctioneer.Command.GetFilterVal('askprice-word1')) end; default = { value = getKhaosDefault('askprice-word1') }; disabled = { value = getKhaosDefault('askprice-word1') }; dependencies={askprice={checked=true}, enabled={checked=true;}}; difficulty=3; }; { id="askprice-word2"; type=K_EDITBOX; setup = { callOn = {"tab", "escape", "enter"}; }; text=function() return string.format(_AUCT('GuiAskPriceWord'), 2) end; helptext=function() return _AUCT('HelpAskPriceWord') end; callback = function(state) Auctioneer.AskPrice.SetCustomSmartWords(nil, 2, state.value) end; feedback = function (state) return string.format(_AUCT('FrmtActSet'), "askprice ".._AUCT('CmdAskPriceWord').." 2", Auctioneer.Command.GetFilterVal('askprice-word2')) end; default = { value = getKhaosDefault('askprice-word2') }; disabled = { value = getKhaosDefault('askprice-word2') }; dependencies={askprice={checked=true}, enabled={checked=true;}}; difficulty=3; }; { id="askprice-ad"; type=K_TEXT; text=function() return _AUCT('GuiAskPriceAd') end; helptext=function() return _AUCT('HelpAskPriceAd') end; callback=function(state) Auctioneer.AskPrice.GenVarSet("ad", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtAskPriceEnable'), "askprice ".._AUCT('CmdAskPriceAd'))) else return (string.format(_AUCT('FrmtAskPriceDisable'), "askprice ".._AUCT('CmdAskPriceAd'))) end end; check=true; default={getKhaosDefault('askprice-ad')}; disabled={checked=false}; dependencies={askprice={checked=true}, enabled={checked=true;}}; difficulty=2; }; { id="AuctioneerOtherHeader"; type=K_HEADER; text=function() return _AUCT('GuiOtherHeader') end; helptext=function() return _AUCT('GuiOtherHelp') end; difficulty=1; }; { id="also"; type=K_EDITBOX; setup = { callOn = {"tab", "escape", "enter"}; }; text=function() return _AUCT('GuiAlso') end; helptext=function() return _AUCT('HelpAlso') end; callback = function(state) Auctioneer.Command.AlsoInclude(state.value); end; feedback = function (state) if ((state.value == _AUCT('CmdOff')) or (state.value == "off")) then return _AUCT('GuiAlsoOff'); elseif ((state.value == _AUCT('CmdAlsoOpposite')) or (state.value == "opposite")) then return _AUCT('GuiAlsoOpposite'); elseif (not Auctioneer.Util.IsValidAlso(state.value)) then return string.format(_AUCT('FrmtUnknownArg'), state.value, _AUCT('CmdAlso')) else return string.format(_AUCT('GuiAlsoDisplay'), state.value); end end; default = { value = getKhaosDefault('also') }; disabled = { value = getKhaosDefault('also') }; dependencies={enabled={checked=true;}}; difficulty=2; }; { id="printframe"; type=K_PULLDOWN; setup = { options = Auctioneer.Command.GetFrameNames; multiSelect = false; }; text=function() return _AUCT('GuiPrintin') end; helptext=function() return _AUCT('HelpPrintin') end; callback=function(state) Auctioneer.Command.SetFrame(state.value); end; feedback=function(state) local _, frameName = Auctioneer.Command.GetFrameNames(state.value) return string.format(_AUCT('FrmtPrintin'), frameName); end; default = { value = getKhaosDefault('printframe') }; disabled = { value = getKhaosDefault('printframe') }; dependencies={enabled={checked=true;}}; difficulty=3; }; { id="show-link"; type=K_TEXT; text=function() return _AUCT('GuiLink') end; helptext=function() return _AUCT('HelpLink') end; callback=function(state) Auctioneer.Command.GenVarSet("show-link", state.checked); end; feedback=function(state) if (state.checked) then return (string.format(_AUCT('FrmtActEnable'), _AUCT('ShowLink'))) else return (string.format(_AUCT('FrmtActDisable'), _AUCT('ShowLink'))) end end; check=true; default={getKhaosDefault('show-link')}; disabled={checked=false}; dependencies={enabled={checked=true;}}; difficulty=3; }; { id="DefaultAll"; type=K_BUTTON; setup={ buttonText = function() return _AUCT('GuiDefaultAllButton') end; }; text=function() return _AUCT('GuiDefaultAll') end; helptext=function() return _AUCT('GuiDefaultAllHelp') end; callback=function() Auctioneer.Command.Default(_AUCT('CmdClearAll')); end; feedback=function() return _AUCT('FrmtActDefaultall'); end; dependencies={enabled={checked=true;}}; difficulty=1; }; { id="DefaultOption"; type=K_EDITBOX; setup = { callOn = {"tab", "escape", "enter"}; }; text=function() return _AUCT('GuiDefaultOption') end; helptext=function() return _AUCT('HelpDefault') end; callback = function(state) Auctioneer.Command.Default(state.value); end; feedback = function (state) if (state.value == _AUCT('CmdClearAll')) then return _AUCT('FrmtActDefaultall'); else return string.format(_AUCT('FrmtActDefault'), state.value); end end; default = { value = ""; }; disabled = { value = ""; }; dependencies={enabled={checked=true;}}; difficulty=4; }; }; }; Khaos.registerOptionSet("tooltip", optionSet); Auctioneer_Khaos_Registered = true; Khaos.refresh(); -- This setting is not actually stored in the Khaos option set and -- requires special treatment to be updated local loadType = Stubby.GetConfig("Auctioneer", "LoadType") if (not loadType) then loadType = "auctionhouse"; end setKhaosSetKeyValue("LoadSettings", loadType) end function buildCommandMap() Auctioneer.Command.CommandMap = nil; Auctioneer.Command.CommandMapRev = nil; commandMap = { [_AUCT('CmdOn')] = 'on', [_AUCT('CmdOff')] = 'off', [_AUCT('CmdHelp')] = 'help', [_AUCT('CmdToggle')] = 'toggle', [_AUCT('CmdDisable')] = 'disable', [_AUCT('CmdClear')] = 'clear', [_AUCT('CmdLocale')] = 'locale', [_AUCT('CmdDefault')] = 'default', [_AUCT('CmdPrintin')] = 'print-in', [_AUCT('CmdAlso')] = 'also', [_AUCT('CmdEmbed')] = 'embed', [_AUCT('CmdPercentless')] = 'percentless', [_AUCT('CmdPercentlessShort')] = 'percentless', [_AUCT('CmdCompete')] = 'compete', [_AUCT('CmdScan')] = 'scan', [_AUCT('CmdAutofill')] = 'autofill', [_AUCT('CmdWarnColor')] = 'warn-color', [_AUCT('CmdFinishSound')] = 'finish-sound', [_AUCT('CmdAuctionDuration')] = 'auction-duration', [_AUCT('CmdProtectWindow')] = 'protect-window', [_AUCT('CmdFinish')] = 'finish', [_AUCT('CmdBroker')] = 'broker', [_AUCT('CmdBidbroker')] = 'bidbroker', [_AUCT('CmdBidbrokerShort')] = 'bidbroker', [_AUCT('CmdAuctionClick')] = 'auction-click', [_AUCT('CmdPctBidmarkdown')] = 'pct-bidmarkdown', [_AUCT('CmdPctMarkup')] = 'pct-markup', [_AUCT('CmdPctMaxless')] = 'pct-maxless', [_AUCT('CmdPctNocomp')] = 'pct-nocomp', [_AUCT('CmdPctUnderlow')] = 'pct-underlow', [_AUCT('CmdPctUndermkt')] = 'pct-undermkt', --AskPrice related commands [_AUCT('CmdAskPriceWhispers')] = 'whispers', [_AUCT('CmdAskPriceVendor')] = 'vendor', [_AUCT('CmdAskPriceGuild')] = 'guild', [_AUCT('CmdAskPriceParty')] = 'party', [_AUCT('CmdAskPriceSmart')] = 'smart', [_AUCT('CmdAskPriceWord')] = 'word', [_AUCT('CmdAskPriceAd')] = 'ad', -- Post/Search Tab related commands [_AUCT('CmdBidLimit')] = 'bid-limit', [_AUCT('CmdUpdatePrice')] = 'update-price', } commandMapRev = {} for k,v in pairs(commandMap) do commandMapRev[v] = k; end Auctioneer.Command.CommandMap = commandMap; Auctioneer.Command.CommandMapRev = commandMapRev; end --Cleaner Command Handling Functions (added by MentalPower) function mainHandler(command, source) --To print or not to print, that is the question... local chatprint = nil; if (source == "GUI") then chatprint = false; else chatprint = true; end; --Divide the large command into smaller logical sections (Shameless copy from the original function) local i,j, cmd, param = string.find(command, "^([^ ]+) (.+)$"); if (not cmd) then cmd = command; end if (not cmd) then cmd = ""; end if (not param) then param = ""; end cmd = Auctioneer.Util.DelocalizeCommand(cmd); --Now for the real Command handling --/auctioneer help if ((cmd == "") or (cmd == "help")) then chatPrintHelp(); --/auctioneer (on|off|toggle) elseif (cmd == 'on' or cmd == 'off' or cmd == 'toggle') then onOff(cmd, chatprint); --/auctioneer disable elseif (cmd == 'disable') then Auctioneer.Util.ChatPrint(_AUCT('DisableMsg')); Stubby.SetConfig("Auctioneer", "LoadType", "never"); setKhaosSetKeyValue("LoadSettings", "never") --/auctioneer load (always|never|auctionhouse) elseif (cmd == 'load') then if (param == "always") or (param == "never") or (param == "auctionhouse") then Stubby.SetConfig("Auctioneer", "LoadType", param); if (chatprint) then Auctioneer.Util.ChatPrint("Setting Auctioneer to "..param.." load for this toon"); setKhaosSetKeyValue("LoadSettings", param) end end --/auctioneer clear (all|snapshot|item) elseif (cmd == 'clear') then clear(param, chatprint); --/auctioneer also ReamName-Faction elseif (cmd == 'also') then alsoInclude(param, chatprint); --/auctioneer locale elseif (cmd == 'locale') then setLocale(param, chatprint); --/auctioneer default (all|option) elseif (cmd == 'default') then default(param, chatprint); --/auctioneer print-in (FrameName|FrameNumber) elseif (cmd == 'print-in') then setFrame(param, chatprint) --/auctioneer broker elseif (cmd == 'broker') then Auctioneer.Filter.DoBroker(param); --/auctioneer bidbroker elseif (cmd == 'bidbroker' or cmd == "bb") then Auctioneer.Filter.DoBidBroker(param); --/auctioneer percentless elseif (cmd == 'percentless' or cmd == "pl") then Auctioneer.Filter.DoPercentLess(param); --/auctioneer compete elseif (cmd == 'compete') then Auctioneer.Filter.DoCompeting(param); --/auctioneer scan elseif (cmd == 'scan') then Auctioneer.Scanning.RequestAuctionScan(chatPrint); --/auctioneer protect-window elseif (cmd == 'protect-window') then protectWindow(param, chatprint); --/auctioneer auction-duration (2h|8h|24h) elseif (cmd == 'auction-duration') then auctionDuration(param, chatprint); --/auctioneer finish (off|logout|exit) elseif (cmd == 'finish') then finish(param, chatprint); --/auctioneer low elseif (cmd == 'low') then Auctioneer.Statistic.DoLow(param); --/auctioneer med elseif (cmd == 'med') then Auctioneer.Statistic.DoMedian(param); --/auctioneer hsp elseif (cmd == 'hsp') then Auctioneer.Statistic.DoHSP(param); --/auctioneer askprice (vendor|guild|party|smart|trigger|ad) elseif (cmd == 'askprice') then Auctioneer.AskPrice.CommandHandler(param, source); --/auctioneer (GenVars) elseif ( cmd == 'embed' or cmd == 'autofill' or cmd == 'auction-click' or cmd == 'show-verbose' or cmd == 'show-average' or cmd == 'show-link' or cmd == 'show-median' or cmd == 'show-stats' or cmd == 'show-suggest' or cmd == 'show-embed-blankline' or cmd == 'show-warning' or cmd == 'warn-color' or cmd == 'update-price' or cmd == 'finish-sound' ) then genVarSet(cmd, param, chatprint); --/auctioneer (PercentVars) elseif ( cmd == 'pct-bidmarkdown' or cmd == 'pct-markup' or cmd == 'pct-maxless' or cmd == 'pct-nocomp' or cmd == 'pct-underlow' or cmd == 'pct-undermkt' ) then percentVarSet(cmd, param, chatprint); --/auctioneer (NumVars) elseif (cmd == 'bid-limit') then numVarSet(cmd, param, chatprint); --Command not recognized else if (chatprint) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActUnknown'), cmd)); end end end --Help ME!! (The Handler) (Another shameless copy from the original function) function chatPrintHelp() Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtWelcome'), Auctioneer.Version), 0.8, 0.8, 0.2); local onOffToggle = " (".._AUCT('CmdOn').."|".._AUCT('CmdOff').."|".._AUCT('CmdToggle')..")"; local _, frameName = getFrameNames(getFrameIndex()) Auctioneer.Util.ChatPrint(_AUCT('TextUsage')); Auctioneer.Util.ChatPrint(" |cffffffff/auctioneer "..onOffToggle.."|r |cff2040ff["..Auctioneer.Util.GetLocalizedFilterVal("all").."]|r\n " .. _AUCT('HelpOnoff') .. "\n\n"); Auctioneer.Util.ChatPrint(" |cffffffff/auctioneer ".._AUCT('CmdDisable').."|r\n " .. _AUCT('HelpDisable') .. "\n\n"); local lineFormat = " |cffffffff/auctioneer %s "..onOffToggle.."|r |cff2040ff[%s]|r\n %s\n\n"; Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowVerbose'), Auctioneer.Util.GetLocalizedFilterVal('show-verbose'), _AUCT('HelpVerbose'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowAverage'), Auctioneer.Util.GetLocalizedFilterVal('show-average'), _AUCT('HelpAverage'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowMedian'), Auctioneer.Util.GetLocalizedFilterVal('show-median'), _AUCT('HelpMedian'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowSuggest'), Auctioneer.Util.GetLocalizedFilterVal('show-suggest'), _AUCT('HelpSuggest'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowStats'), Auctioneer.Util.GetLocalizedFilterVal('show-stats'), _AUCT('HelpStats'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowLink'), Auctioneer.Util.GetLocalizedFilterVal('show-link'), _AUCT('HelpLink'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdAutofill'), Auctioneer.Util.GetLocalizedFilterVal('autofill'), _AUCT('HelpAutofill'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdEmbed'), Auctioneer.Util.GetLocalizedFilterVal('embed'), _AUCT('HelpEmbed'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowEmbedBlank'), Auctioneer.Util.GetLocalizedFilterVal('show-embed-blankline'), _AUCT('HelpEmbedBlank'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('ShowRedo'), Auctioneer.Util.GetLocalizedFilterVal('show-warning'), _AUCT('HelpRedo'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdAuctionClick'), Auctioneer.Util.GetLocalizedFilterVal('auction-click'), _AUCT('HelpAuctionClick'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdWarnColor'), Auctioneer.Util.GetLocalizedFilterVal('warn-color'), _AUCT('HelpWarnColor'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdUpdatePrice'), Auctioneer.Util.GetLocalizedFilterVal('update-price'), _AUCT('HelpUpdatePrice'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdFinishSound'), Auctioneer.Util.GetLocalizedFilterVal('finish-sound'), _AUCT('HelpFinishSound'))); lineFormat = " |cffffffff/auctioneer %s %s|r |cff2040ff[%s]|r\n %s\n\n"; Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdProtectWindow'), _AUCT('OptProtectWindow'), _AUCT('CmdProtectWindow'..Auctioneer.Command.GetFilterVal('protect-window')), _AUCT('HelpProtectWindow'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdAuctionDuration'), _AUCT('OptAuctionDuration'), _AUCT('CmdAuctionDuration'..Auctioneer.Command.GetFilterVal('auction-duration')), _AUCT('HelpAuctionDuration'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdLocale'), _AUCT('OptLocale'), Auctioneer.Util.GetLocalizedFilterVal("locale"), _AUCT('HelpLocale'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPrintin'), _AUCT('OptPrintin'), frameName, _AUCT('HelpPrintin'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdFinish'), _AUCT('OptFinish'), _AUCT('CmdFinish'..Auctioneer.Command.GetFilterVal('finish')), _AUCT('HelpFinish'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPctMarkup'), _AUCT('OptPctMarkup'), Auctioneer.Command.GetFilterVal('pct-markup'), _AUCT('HelpPctMarkup'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPctBidmarkdown'), _AUCT('OptPctBidmarkdown'), Auctioneer.Command.GetFilterVal('pct-bidmarkdown'), _AUCT('HelpPctBidmarkdown'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPctNocomp'), _AUCT('OptPctNocomp'), Auctioneer.Command.GetFilterVal('pct-nocomp'), _AUCT('HelpPctNocomp'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPctUnderlow'), _AUCT('OptPctUnderlow'), Auctioneer.Command.GetFilterVal('pct-underlow'), _AUCT('HelpPctUnderlow'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPctUndermkt'), _AUCT('OptPctUndermkt'), Auctioneer.Command.GetFilterVal('pct-undermkt'), _AUCT('HelpPctUndermkt'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPctMaxless'), _AUCT('OptPctMaxless'), Auctioneer.Command.GetFilterVal('pct-maxless'), _AUCT('HelpPctMaxless'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdBidLimit'), _AUCT('OptBidLimit'), Auctioneer.Command.GetFilterVal('bid-limit'), _AUCT('HelpBidLimit'))); Auctioneer.AskPrice.ChatPrintHelp() lineFormat = " |cffffffff/auctioneer %s %s|r\n %s\n\n"; Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdClear'), _AUCT('OptClear'), _AUCT('HelpClear'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdAlso'), _AUCT('OptAlso'), _AUCT('HelpAlso'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdBroker'), _AUCT('OptBroker'), _AUCT('HelpBroker'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdBidbroker'), _AUCT('OptBidbroker'), _AUCT('HelpBidbroker'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdPercentless'), _AUCT('OptPercentless'), _AUCT('HelpPercentless'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdCompete'), _AUCT('OptCompete'), _AUCT('HelpCompete'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdScan'), _AUCT('OptScan'), _AUCT('HelpScan'))); Auctioneer.Util.ChatPrint(string.format(lineFormat, _AUCT('CmdDefault'), _AUCT('OptDefault'), _AUCT('HelpDefault'))); end --[[ The onOff(state, chatprint) function handles the state of the Auctioneer AddOn (whether it is currently on or off) If "on" or "off" is specified in the first argument then Auctioneer's state is changed to that value, If "toggle" is specified then it will toggle Auctioneer's state (if currently on then it will be turned off and vice-versa) If a boolean (or nil) value is passed as the first argument the conversion is as follows: "true" is the same as "on" "false" is the same as "off" "nil" is the same as "toggle" If chatprint is "true" then the state will also be printed to the user. ]] function onOff(state, chatprint) if (type(state) == "string") then state = Auctioneer.Util.DelocalizeFilterVal(state); elseif (state == true) then state = 'on' elseif (state == false) then state = 'off' elseif (state == nil) then state = 'toggle' end if (state == 'on' or state == 'off') then setFilter('all', state); elseif (state == 'toggle') then setFilter('all', not getFilter('all')); end --Print the change and alert the GUI if the command came from slash commands. Do nothing if they came from the GUI. if (chatprint) then state = getFilter('all') setKhaosSetKeyValue("enabled", state) if (state) then Auctioneer.Util.ChatPrint(_AUCT('StatOn')); else Auctioneer.Util.ChatPrint(_AUCT('StatOff')); end end end --The following functions are almost verbatim copies of the original functions but modified in order to make them compatible with direct GUI access. function clear(param, chatprint) if (not (type(param) == "string")) then return end local aKey = Auctioneer.Util.GetAuctionKey(); if ((param == _AUCT('CmdClearAll')) or (param == "all")) then AuctionConfig.info = {}; AuctionConfig.data[aKey] = {}; AuctionConfig.stats.histmed[aKey] = {}; AuctionConfig.stats.histcount[aKey] = {}; clear("snapshot"); elseif ((param == _AUCT('CmdClearSnapshot')) or (param == "snapshot")) then AuctionConfig.snap[aKey] = {}; AuctionConfig.sbuy[aKey] = {}; Auctioneer_HSPCache[aKey] = {}; AuctionConfig.stats.snapmed[aKey] = {}; AuctionConfig.stats.snapcount[aKey] = {}; Auctioneer.Core.Variables.SnapshotItemPrices = {}; else local items = Auctioneer.Util.GetItems(param); local itemLinks = Auctioneer.Util.GetItemHyperlinks(param); if (items) then for pos,itemKey in ipairs(items) do if (AuctionConfig.data[aKey][itemKey]) then AuctionConfig.data[aKey][itemKey] = nil; AuctionConfig.stats.snapmed[aKey][itemKey] = nil; AuctionConfig.stats.histmed[aKey][itemKey] = nil; AuctionConfig.stats.histcount[aKey][itemKey] = nil; AuctionConfig.stats.snapcount[aKey][itemKey] = nil; AuctionConfig.sbuy[aKey][itemKey] = nil; local count = 0; while (AuctionConfig.snap[aKey][count]) do AuctionConfig.snap[aKey][count][itemKey] = nil; count = count+1; end Auctioneer_HSPCache[aKey][itemKey] = nil; --These are not included in the print statement below because there could be the possiblity that an item's data was cleared but another's was not if (chatprint) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActClearOk'), itemLinks[pos])); end else if (chatprint) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActClearFail'), itemLinks[pos])); end end end end end if (chatprint) then if ((param == _AUCT('CmdClearAll')) or (param == "all")) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActClearall'), aKey)); elseif ((param == _AUCT('CmdClearSnapshot')) or (param == "snapshot")) then Auctioneer.Util.ChatPrint(_AUCT('FrmtActClearsnap')); end end end function alsoInclude(param, chatprint) local localizedParam = param; param = Auctioneer.Util.DelocalizeFilterVal(param); if ((param == _AUCT('CmdAlsoOpposite')) or (param == "opposite")) then param = "opposite"; end if (not Auctioneer.Util.IsValidAlso(param)) then if (chatprint) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtUnknownRf'), param)); end return end setFilter('also', param); if (chatprint) then setKhaosSetKeyValue('also', param); if (param == "off") then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActDisable'), _AUCT('CmdAlso'))); else Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActSet'), _AUCT('CmdAlso'), localizedParam)); end end end function isValidLocale(param) return (AuctioneerLocalizations and AuctioneerLocalizations[param]) end function setLocale(param, chatprint) param = Auctioneer.Util.DelocalizeFilterVal(param); local validLocale; if (param == 'default') or (param == 'off') then Babylonian.SetOrder(''); validLocale = true; elseif (Auctioneer.Command.IsValidLocale(param)) then Babylonian.SetOrder(param); validLocale = true; else validLocale = false; end if (chatprint) then if (validLocale) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActSet'), _AUCT('CmdLocale'), param)); setKhaosSetKeyValue('locale', Babylonian.GetOrder()); else Auctioneer.Util.ChatPrint(string.format(_AUCT("FrmtUnknownLocale"), param)); local locales = " "; for locale, data in pairs(AuctioneerLocalizations) do locales = locales .. " '" .. locale .. "' "; end Auctioneer.Util.ChatPrint(locales); end end if (Auctioneer_Khaos_Registered) then Khaos.refresh(nil, nil, true) end commandMap = nil; commandMapRev = nil; end function default(param, chatprint) local paramLocalized if ( (param == nil) or (param == "") ) then return elseif ((param == _AUCT('CmdClearAll')) or (param == "all")) then param = "all" AuctionConfig.filters = {}; else paramLocalized = param param = Auctioneer.Util.DelocalizeCommand(param) setFilter(param, nil); end Auctioneer.Util.SetFilterDefaults(); -- Apply defaults for settings that went missing if (chatprint) then if (param == "all") then Auctioneer.Util.ChatPrint(_AUCT('FrmtActDefaultall')); for k,v in pairs(AuctionConfig.filters) do setKhaosSetKeyValue(k, Auctioneer.Command.GetFilterVal(k)); end else Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActDefault'), paramLocalized)); setKhaosSetKeyValue(param, Auctioneer.Command.GetFilterVal(param)); end end end --The following three functions were added by MentalPower to implement the /auc print-in command function getFrameNames(index) local frames = {}; local frameName = ""; for i=1, 10 do local name, fontSize, r, g, b, a, shown, locked, docked = GetChatWindowInfo(i); if ( name == "" ) then if (i == 1) then frames[_AUCT('TextGeneral')] = 1; elseif (i == 2) then frames[_AUCT('TextCombat')] = 2; end else frames[name] = i; end end if (type(index) == "number") then local name, fontSize, r, g, b, a, shown, locked, docked = GetChatWindowInfo(index); if ( name == "" ) then if (index == 1) then frameName = _AUCT('TextGeneral'); elseif (index == 2) then frameName = _AUCT('TextCombat'); end else frameName = name; end end return frames, frameName; end function getFrameIndex() if (not AuctionConfig.filters) then AuctionConfig.filters = {}; end local value = AuctionConfig.filters["printframe"]; if (not value) then return 1; end return value; end function setFrame(frame, chatprint) local frameNumber local frameVal frameVal = tonumber(frame) --If no arguments are passed, then set it to the default frame. if not (frame) then frameNumber = 1; --If the frame argument is a number then set our chatframe to that number. elseif ((frameVal) ~= nil) then frameNumber = frameVal; --If the frame argument is a string, find out if there's a chatframe with that name, and set our chatframe to that index. If not set it to the default frame. elseif (type(frame) == "string") then allFrames = getFrameNames(); if (allFrames[frame]) then frameNumber = allFrames[frame]; else frameNumber = 1; end --If the argument is something else, set our chatframe to its default value. else frameNumber = 1; end local _, frameName if (chatprint == true) then _, frameName = getFrameNames(frameNumber); if (getFrameIndex() ~= frameNumber) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtPrintin'), frameName)); end end setFilter("printframe", frameNumber); if (chatprint == true) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtPrintin'), frameName)); setKhaosSetKeyValue("printframe", frameNumber); end end function protectWindow(param, chatprint) local mode; if (param == 'never' or param == 'off' or param == _AUCT('CmdProtectWindow0') or param == _AUCT('CmdOff') or tonumber(param) == 0) then mode = 0; elseif (param == 'scan' or param == _AUCT('CmdProtectWindow1') or tonumber(param) == 1) then mode = 1; elseif (param == 'always' or param == _AUCT('CmdProtectWindow2') or tonumber(param) == 2) then mode = 2; else Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtUnknownArg'), param, Auctioneer.Util.LocalizeCommand("protect-window"))); return end setFilter("protect-window", mode); if (chatprint) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtProtectWindow'), _AUCT('CmdProtectWindow' .. mode))); setKhaosSetKeyValue("protect-window", mode); end end function auctionDuration(param, chatprint) local mode; if (param == 'last' or param == _AUCT('CmdAuctionDuration0') or tonumber(param) == 0) then mode = 0; elseif (param == '2h' or param == _AUCT('CmdAuctionDuration1') or tonumber(param) == 1) then mode = 1; elseif (param == '8h' or param == _AUCT('CmdAuctionDuration2') or tonumber(param) == 2) then mode = 2; elseif (param == '24h' or param == _AUCT('CmdAuctionDuration3') or tonumber(param) == 3) then mode = 3; else Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtUnknownArg'), param, Auctioneer.Util.LocalizeCommand("auction-duration"))); return end setFilter("auction-duration", mode); if (chatprint) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtAuctionDuration'), _AUCT('CmdAuctionDuration' .. mode))); setKhaosSetKeyValue("auction-duration", mode); end end function finish(param, chatprint) local mode; if (param == 'off' or param == _AUCT('CmdFinish0') or tonumber(param) == 0) then mode = 0; elseif (param == 'logout' or param == _AUCT('CmdFinish1') or tonumber(param) == 1) then mode = 1; elseif (param == 'exit' or param == _AUCT('CmdFinish2') or tonumber(param) == 2) then mode = 2; else Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtUnknownArg'), param, Auctioneer.Util.LocalizeCommand("finish"))); return end setFilter("finish", mode); if (chatprint) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtFinish'), _AUCT('CmdFinish' .. mode))); setKhaosSetKeyValue("finish", mode); end end function genVarSet(variable, param, chatprint) if (type(param) == "string") then param = Auctioneer.Util.DelocalizeFilterVal(param); end if (param == "on" or param == "off" or type(param) == "boolean") then setFilter(variable, param); elseif (param == "toggle" or param == nil or param == "") then param = setFilter(variable, not getFilter(variable)); end if (chatprint) then if (getFilter(variable)) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActEnable'), Auctioneer.Util.LocalizeCommand(variable))); setKhaosSetKeyValue(variable, true) else Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActDisable'), Auctioneer.Util.LocalizeCommand(variable))); setKhaosSetKeyValue(variable, false) end end end function percentVarSet(variable, param, chatprint) local paramVal = tonumber(param); if paramVal == nil then -- failed to convert the param to a number if chatprint then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtUnknownArg'), param, variable)); end return -- invalid argument, don't do anything end -- param is a valid number, save it setFilter(variable, paramVal); --Clear the HSP Cache since the profitability numbers have been updated. Auctioneer_HSPCache = {}; if (chatprint) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActSet'), variable, paramVal.."%")); setKhaosSetKeyValue(variable, paramVal); end end function numVarSet(variable, param, chatprint) local paramVal = tonumber(param); if paramVal == nil then -- failed to convert the param to a number if chatprint then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtUnknownArg'), param, variable)); end return -- invalid argument, don't do anything end -- param is a valid number, save it setFilter(variable, paramVal); if (chatprint) then Auctioneer.Util.ChatPrint(string.format(_AUCT('FrmtActSet'), variable, paramVal)); setKhaosSetKeyValue(variable, paramVal); end end --This marks the end of the New Command processing code. function setFilter(key, value) if (not AuctionConfig.filters) then AuctionConfig.filters = {}; end if (type(value) == "boolean") then if (value) then AuctionConfig.filters[key] = 'on'; else AuctionConfig.filters[key] = 'off'; end else AuctionConfig.filters[key] = value; end end function getFilterVal(type) if (not AuctionConfig.filters) then AuctionConfig.filters = {}; Auctioneer.Util.SetFilterDefaults(); end local val = AuctionConfig.filters[type]; if (val == nil) then val = Auctioneer.Core.Constants.FilterDefaults[type]; end return val; end function getFilter(filter) value = getFilterVal(filter); if ((value == _AUCT('CmdOn')) or (value == "on")) then return true; elseif ((value == _AUCT('CmdOff')) or (value == "off")) then return false; end return true; end function findFilterClass(text) local totalFilters = getn(CLASS_FILTERS); for currentFilter=1, totalFilters do if (text == CLASS_FILTERS[currentFilter]) then return currentFilter, totalFilters; end end return 0, totalFilters; end function filterSetFilter(checkbox, filter) checkbox.filterVal = filter; checkbox:SetChecked(getFilter(filter)); checkbox:Show(); end function getLocale() local locale = Auctioneer.Command.GetFilterVal('locale'); if (locale == 'on') or (locale == 'off') or (locale == 'default') then return GetLocale(); end return locale; end Auctioneer.Command = { Register = register, ConvertKhaos = convertKhaos, GetKhaosDefault = getKhaosDefault, RegisterKhaos = registerKhaos, BuildCommandMap = buildCommandMap, CommandMap = commandMap, CommandMapRev = commandMapRev, MainHandler = mainHandler, ChatPrintHelp = chatPrintHelp, OnOff = onOff, Clear = clear, AlsoInclude = alsoInclude, IsValidLocale = isValidLocale, SetLocale = setLocale, Default = default, GetFrameNames = getFrameNames, GetFrameIndex = getFrameIndex, SetFrame = setFrame, ProtectWindow = protectWindow, AuctionDuration = auctionDuration, Finish = finish, GenVarSet = genVarSet, PercentVarSet = percentVarSet, NumVarSet = numVarSet, SetFilter = setFilter, GetFilterVal = getFilterVal, GetFilter = getFilter, FindFilterClass = findFilterClass, FilterSetFilter = filterSetFilter, GetLocale = getLocale, }