diff --git a/Aux-AddOn.toc b/Aux-AddOn.toc index 2b4340d..952765b 100644 --- a/Aux-AddOn.toc +++ b/Aux-AddOn.toc @@ -1,7 +1,7 @@ ## Interface: 11200 ## Title: Aux ## SavedVariablesPerCharacter: aux_ignore_owner, aux_recent_searches, aux_favorite_searches, aux_price_per_unit, aux_tooltip_daily, aux_tooltip_vendor_buy, aux_tooltip_vendor_sell, aux_tooltip_disenchant_value, aux_tooltip_disenchant_distribution, aux_tooltip_disenchant_source -## SavedVariables: aux_datasets, aux_items, aux_item_ids, aux_auctionable_items, aux_merchant_buy, aux_merchant_sell +## SavedVariables: aux_datasets, aux_items, aux_item_ids, aux_auctionable_items, aux_merchant_buy, aux_merchant_sell, aux_characters slash.lua core.xml diff --git a/cache.lua b/cache.lua index 886dda0..c90d1bf 100644 --- a/cache.lua +++ b/cache.lua @@ -8,6 +8,7 @@ aux_item_ids = {} aux_auctionable_items = {} aux_merchant_buy = {} aux_merchant_sell = {} +aux_characters = {} local items_schema = {'record', '#', {name='string'}, {quality='number'}, {level='number'}, {class='string'}, {subclass='string'}, {slot='string'}, {max_stack='number'}, {texture='string'}} local merchant_buy_schema = {'record', '#', {unit_price='number'}, {limited='boolean'}} diff --git a/core.lua b/core.lua index 50a93fe..0f7a3bd 100644 --- a/core.lua +++ b/core.lua @@ -423,7 +423,12 @@ function Aux.show_elements(elements) end function Aux.is_player(name) - return UnitName('player') == name -- TODO support multiple chars + for i,v in ipairs(aux_characters) do + if aux_characters[i] == name then + return true + end + end + return UnitName('player') == name end function Aux.unmodified() diff --git a/slash.lua b/slash.lua index 1830445..6099971 100644 --- a/slash.lua +++ b/slash.lua @@ -1,5 +1,7 @@ SLASH_AUX1 = '/aux' function SlashCmdList.AUX(command) + if not command then return end + local arguments = Aux.util.split(command, " ") if command == 'clear history' then Aux.persistence.load_dataset().history = nil Aux.log('History cleared.') @@ -43,5 +45,59 @@ function SlashCmdList.AUX(command) elseif command == 'ignore owner' then aux_ignore_owner = not aux_ignore_owner Aux.log('Ignoring of owner '..(aux_ignore_owner and 'enabled' or 'disabled')..'.') - end + elseif arguments[1] == 'addchar' and arguments[2] then + local exists = false + for i=2, table.getn(arguments) do + exists = false + if arguments[i] ~= "" then + arguments[i] = strupper(strsub(arguments[i], 1, 1))..strsub(arguments[i], 2) -- force uppercase + for i_aux,v in ipairs(aux_characters) do + if (aux_characters[i_aux] == arguments[i]) then + exists = true + break + end + end + if not exists then + table.insert(aux_characters, arguments[i]) + Aux.log('Character "'..arguments[i]..'" added.') + end + end + end + elseif arguments[1] == 'delchar' and arguments[2] then + for i=2, table.getn(arguments) do + if arguments[i] ~= "" then + arguments[i] = strupper(strsub(arguments[i], 1, 1))..strsub(arguments[i], 2) + for i_aux,v in ipairs(aux_characters) do + if (aux_characters[i_aux] == arguments[i]) then + table.remove(aux_characters, i_aux) + Aux.log('Character "'..arguments[i]..'" removed.') + break + end + end + end + end + elseif command == 'chars' then + local chars = nil + local num = table.getn(aux_characters); + for i,v in ipairs(aux_characters) do + if( i ~= num) then + if chars ~= nil then + chars = chars .. v .. ", "; + else + chars = v .. ", "; + end + else + if chars ~= nil then + chars = chars .. v; + else + chars = v; + end + end + end + if num > 0 then + Aux.log('Your characters: "'..chars..'".') + else + Aux.log('You don\'t have any additional characters. Type "/aux addchar NAME" to add one.') + end + end end \ No newline at end of file