Difference between revisions of "Module:Market"
Jump to navigation
Jump to search
m (Separated functions for templates and modules) |
m |
||
Line 21: | Line 21: | ||
function p.price(frame) | function p.price(frame) | ||
local args = frame:getParent().args | local args = frame:getParent().args | ||
− | p._price(args) | + | return p._price(args) |
end | end | ||
Revision as of 12:11, 10 February 2022
Gets the market price when passing the item name.
1: itemName(required) - Name of the item. Letter case does not matter.
2: multiplier(optional) - Price for multiple items. Default is 1.
3: separator(optional) - Adds ',' as thousands separators. Use 1 to enable.
4: league(optional) - 1 for main, 5 for pre-season, 6 for season 1. Default is 1.
local p = {} local data_module_names = { price = 'Module:MarketPrices/data' } local loaded_data_modules = {} function p.loadPrice (item, data_type) local module_name = data_module_names[data_type] if loaded_data_modules[module_name] == nil then loaded_data_modules[module_name] = mw.loadData(module_name) end return loaded_data_modules[module_name][item] end function p.addSeparator(num) return tostring(num):reverse():gsub("(%d%d%d)","%1,"):gsub(",(%-?)$","%1"):reverse() end function p.price(frame) local args = frame:getParent().args return p._price(args) end function p._price(args) local item = args[1] local multi = args[2] local separator = args[3] local price = 0 if multi == nil then multi = 1 end item = string.lower(item) price = p.loadPrice (item, 'price') * multi if separator == "1" then return p.addSeparator(price) else return price end end return p