From 4bc1d6b53b8a42d485d48d1c9d5e5d21ec75db44 Mon Sep 17 00:00:00 2001 From: Manuel Simon Hirsig Date: Fri, 10 Jun 2016 13:20:48 +0200 Subject: [PATCH] slash refactoring, characters now per realm --- core.lua | 11 +++---- slash.lua | 99 ++++++++++++++++++++++--------------------------------- 2 files changed, 44 insertions(+), 66 deletions(-) diff --git a/core.lua b/core.lua index d4b6dd5..bff2abc 100644 --- a/core.lua +++ b/core.lua @@ -1,5 +1,5 @@ Aux = { - version = '2.13.4', + version = '2.13.5', blizzard_ui_shown = false, orig = {}, } @@ -423,11 +423,10 @@ function Aux.show_elements(elements) end function Aux.is_player(name) - for i,v in ipairs(aux_characters) do - if aux_characters[i] == name then - return true - end - end + local realm = GetCVar('realmName') + if aux_characters[realm][name] then + return true + end return UnitName('player') == name end diff --git a/slash.lua b/slash.lua index 784d9ff..a2a682d 100644 --- a/slash.lua +++ b/slash.lua @@ -2,102 +2,81 @@ SLASH_AUX1 = '/aux' function SlashCmdList.AUX(command) if not command then return end local arguments = Aux.util.tokenize(command) - if command == 'clear history' then + if arguments[1] == 'clear' and arguments[2] == 'history' then Aux.persistence.load_dataset().history = nil Aux.log('History cleared.') - elseif command == 'clear post' then + elseif arguments[1] == 'clear' and arguments[2] == 'post' then Aux.persistence.load_dataset().post = nil Aux.log('Post settings cleared.') - elseif command == 'clear datasets' then + elseif arguments[1] == 'clear' and arguments[2] == 'datasets' then aux_datasets = {} Aux.log('Datasets cleared.') - elseif command == 'clear merchant buy' then + elseif arguments[1] == 'clear' and arguments[2] == 'merchant' and arguments[3] == 'buy' then aux_merchant_buy = {} Aux.log('Merchant buy prices cleared.') - elseif command == 'clear merchant sell' then + elseif arguments[1] == 'clear' and arguments[2] == 'merchant' and arguments[3] == 'sell' then aux_merchant_sell = {} Aux.log('Merchant sell prices cleared.') - elseif command == 'clear item cache' then + elseif arguments[1] == 'clear' and arguments[2] == 'item' and arguments[3] == 'cache' then aux_items = {} aux_item_ids = {} aux_auctionable_items = {} Aux.log('Item cache cleared.') - elseif command == 'populate wdb' then + elseif arguments[1] == 'populate' and arguments[2] == 'wdb' then Aux.cache.populate_wdb() - elseif command == 'tooltip daily' then + elseif arguments[1] == 'tooltip' and arguments[2] == 'daily' then aux_tooltip_daily = not aux_tooltip_daily Aux.log('Market value in tooltip '..(aux_tooltip_daily and 'enabled' or 'disabled')..'.') - elseif command == 'tooltip vendor buy' then + elseif arguments[1] == 'tooltip' and arguments[2] == 'vendor' and arguments[3] == 'buy' then aux_tooltip_vendor_buy = not aux_tooltip_vendor_buy Aux.log('Vendor buy price in tooltip '..(aux_tooltip_vendor_buy and 'enabled' or 'disabled')..'.') - elseif command == 'tooltip vendor sell' then + elseif arguments[1] == 'tooltip' and arguments[2] == 'vendor' and arguments[3] == 'sell' then aux_tooltip_vendor_sell = not aux_tooltip_vendor_sell Aux.log('Vendor sell price in tooltip '..(aux_tooltip_vendor_sell and 'enabled' or 'disabled')..'.') - elseif command == 'tooltip disenchant value' then + elseif arguments[1] == 'tooltip' and arguments[2] == 'disenchant' and arguments[3] == 'value' then aux_tooltip_disenchant_value = not aux_tooltip_disenchant_value Aux.log('Disenchant value in tooltip '..(aux_tooltip_disenchant_value and 'enabled' or 'disabled')..'.') - elseif command == 'tooltip disenchant distribution' then + elseif arguments[1] == 'tooltip' and arguments[2] == 'disenchant' and arguments[3] == 'distribution' then aux_tooltip_disenchant_distribution = not aux_tooltip_disenchant_distribution Aux.log('Disenchant distribution in tooltip '..(aux_tooltip_disenchant_distribution and 'enabled' or 'disabled')..'.') - elseif command == 'tooltip disenchant source' then + elseif arguments[1] == 'tooltip' and arguments[2] == 'disenchant' and arguments[3] == 'source' then aux_tooltip_disenchant_source = not aux_tooltip_disenchant_source Aux.log('Disenchant source in tooltip '..(aux_tooltip_disenchant_source and 'enabled' or 'disabled')..'.') - elseif command == 'ignore owner' then + elseif arguments[1] == 'ignore' and arguments[2] == 'owner' then aux_ignore_owner = not aux_ignore_owner Aux.log('Ignoring of owner '..(aux_ignore_owner and 'enabled' or 'disabled')..'.') - elseif arguments[1] == 'addchar' and arguments[2] then - local exists = false - for i=2, getn(arguments) do - exists = false - if arguments[i] ~= '' then - arguments[i] = string.gsub(arguments[i], '^%l', strupper) -- force uppercase - for i_aux,_ 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 + elseif arguments[1] == 'addchar' then + local realm = GetCVar('realmName') + aux_characters[realm] = aux_characters[realm] or {} + for i=2,getn(arguments) do + local name = string.gsub(strlower(arguments[i]), '^%l', strupper) + if not aux_characters[realm][name] then + aux_characters[realm][name] = true + Aux.log('Character "'..name..'" added.') 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 + elseif arguments[1] == 'delchar' then + local realm = GetCVar('realmName') + aux_characters[realm] = aux_characters[realm] or {} + for i=2,getn(arguments) do + local name = string.gsub(strlower(arguments[i]), '^%l', strupper) + if aux_characters[realm][name] then + aux_characters[realm][name] = nil + Aux.log('Character "'..name..'" removed.') end end - elseif command == 'chars' then - local chars - local num = table.getn(aux_characters) - for i,v in ipairs(aux_characters) do - if i ~= num then - if chars then - chars = chars .. v .. ", " - else - chars = v .. ", " - end - else - if chars then - chars = chars .. v - else - chars = v - end - end + elseif arguments[1] == 'chars' then + local realm = GetCVar('realmName') + local chars = {} + for name, _ in pairs(aux_characters[realm] or {}) do + tinsert(chars, name) end - if num > 0 then - Aux.log('Your characters: "'..chars..'".') + if getn(chars) > 0 then + Aux.log('Your characters: "'..Aux.util.join(chars, ', ')..'".') else Aux.log('You don\'t have any additional characters. Type "/aux addchar NAME" to add one.') end + else + Aux.log('Unknown command: "'..command..'"') end end \ No newline at end of file