You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
5.5 KiB
157 lines
5.5 KiB
local WIT, core = ...
|
|
|
|
core.LastScan = { Bag = {}, Bank = {}}
|
|
|
|
local AceConsole = LibStub("AceConsole-3.0")
|
|
|
|
local function ShowConfig()
|
|
core.UI.MainWindow.Toggle()
|
|
core.UI.SelectModule(core.ConfigurationModule)
|
|
end
|
|
|
|
local function PrintMaterialPrices()
|
|
local printed = {}
|
|
|
|
for _, farm in pairs(core.Data.Results.Flips) do
|
|
if farm.Materials ~= nil then
|
|
for _, material in pairs(farm.Materials or {}) do
|
|
if material.BuyFromVendor then
|
|
if not tContains(printed, material.Id) then
|
|
table.insert(printed, material.Id)
|
|
print(('{ Id = %d, Price = %d }, --%s'):format(material.Id, core.PriceSourceHelper.GetItemVendorBuyPrice(material.Id), core.PriceSourceHelper.GetItemName(material.Id)))
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
local function PrintHelp()
|
|
AceConsole:Print(core.GetString("HelpCommands"))
|
|
end
|
|
|
|
function core.PrintInventoryValue(priceSource)
|
|
local continue = priceSource == "diff" or priceSource == "difference"
|
|
|
|
if continue then
|
|
priceSource = core.LastScan.Bag.PriceSource
|
|
end
|
|
|
|
if priceSource and not core.PriceSourceHelper.IsValidCustomPrice(priceSource) then
|
|
AceConsole:Print(core.GetString("InvalidPriceSource"))
|
|
return
|
|
end
|
|
|
|
local value = core.PriceSourceHelper.GetInventoryValue(priceSource)
|
|
if core.LastScan.Bag.Value and continue then
|
|
local diff = value - core.LastScan.Bag.Value
|
|
if diff ~= nil then
|
|
AceConsole:Print(core.GetString("InventoryValueChangeFormat"):format(priceSource or core.GetString("DefaultPriceSource"), core.PriceSourceHelper.ToColoredMoneyString(diff)))
|
|
core.LastScan.Bag.Value = value
|
|
end
|
|
else
|
|
if value ~= nil then
|
|
AceConsole:Print(core.GetString("InventoryValueFormat"):format(priceSource or core.GetString("DefaultPriceSource"), core.PriceSourceHelper.ToMoneyString(value)))
|
|
core.LastScan.Bag.PriceSource = priceSource
|
|
core.LastScan.Bag.Value = value
|
|
end
|
|
end
|
|
end
|
|
|
|
function core.PrintBankValue(priceSource)
|
|
local continue = priceSource == "diff" or priceSource == "difference"
|
|
|
|
if continue then
|
|
priceSource = core.LastScan.Bank.PriceSource
|
|
end
|
|
|
|
if priceSource and not core.PriceSourceHelper.IsValidCustomPrice(priceSource) then
|
|
AceConsole:Print(core.GetString("InvalidPriceSource"))
|
|
return
|
|
end
|
|
|
|
local value = core.PriceSourceHelper.GetBankValue(priceSource)
|
|
if value == 0 then
|
|
AceConsole:Print(core.GetString("OpenBank"))
|
|
elseif core.LastScan.Bank.Value and continue then
|
|
local diff = value - core.LastScan.Bank.Value
|
|
if diff ~= nil then
|
|
AceConsole:Print(core.GetString("BankValueChangeFormat"):format(priceSource or core.GetString("DefaultPriceSource"), core.PriceSourceHelper.ToColoredMoneyString(diff)))
|
|
core.LastScan.Bank.Value = value
|
|
end
|
|
else
|
|
if value ~= nil then
|
|
AceConsole:Print(core.GetString("BankValueFormat"):format(priceSource or core.GetString("DefaultPriceSource"), core.PriceSourceHelper.ToMoneyString(value)))
|
|
core.LastScan.Bank.PriceSource = priceSource
|
|
core.LastScan.Bank.Value = value
|
|
end
|
|
end
|
|
end
|
|
|
|
function core.ListInventory(priceSource)
|
|
local isUnitPrice = priceSource == "unitprice"
|
|
priceSource = not isUnitPrice and priceSource ~= "diff" and priceSource ~= "difference" and priceSource or nil
|
|
|
|
if priceSource and not core.PriceSourceHelper.IsValidCustomPrice(priceSource) then
|
|
AceConsole:Print(core.GetString("InvalidPriceSource"))
|
|
return
|
|
end
|
|
|
|
local list = core.PriceSourceHelper.GetInventoryContent(priceSource)
|
|
|
|
if list ~= nil then
|
|
for _, item in pairs(list) do
|
|
print(string.format("%sx%d - %s", item.ItemLink, item.Quantity, core.PriceSourceHelper.ToMoneyString(item.Price * (isUnitPrice and 1 or item.Quantity))))
|
|
end
|
|
end
|
|
end
|
|
|
|
local function OpenWITWindow()
|
|
core.UI.MainWindow.Show()
|
|
end
|
|
|
|
local function OpenWITRecorderWindow()
|
|
core.UI.MainWindow.Init()
|
|
core.Recorder().Show()
|
|
end
|
|
|
|
local function CloseWITWindow()
|
|
core.UI.MainWindow.Close()
|
|
end
|
|
|
|
local function ConsoleHandler(input)
|
|
input = input or ''
|
|
input = input:trim():lower()
|
|
|
|
local options = {}
|
|
options["config"] = ShowConfig
|
|
options["cfg"] = ShowConfig
|
|
options["configuration"] = ShowConfig
|
|
options["options"] = ShowConfig
|
|
options["settings"] = ShowConfig
|
|
options["help"] = PrintHelp
|
|
options["?"] = PrintHelp
|
|
options["show"] = OpenWITWindow
|
|
options["open"] = OpenWITWindow
|
|
options["close"] = CloseWITWindow
|
|
options["recorder"] = OpenWITRecorderWindow
|
|
options["rec"] = OpenWITRecorderWindow
|
|
options["bagvalue"] = core.PrintInventoryValue
|
|
options["bankvalue"] = core.PrintBankValue
|
|
options["baglist"] = core.ListInventory
|
|
options["material"] = PrintMaterialPrices
|
|
|
|
if input == nil or input == '' then
|
|
core.UI.MainWindow.Toggle()
|
|
else
|
|
local command, arg = AceConsole:GetArgs(input, 2)
|
|
local handler = options[command]
|
|
|
|
if handler ~= nil then
|
|
handler(arg)
|
|
end
|
|
end
|
|
end
|
|
--/wit bagvalue diff
|
|
AceConsole:RegisterChatCommand('wit', ConsoleHandler)
|
|
AceConsole:RegisterChatCommand('worthit', ConsoleHandler)
|
|
|