Module:Player list

--- Functions for making lists of players -- @require Dev:Links -- @require Module:Player link -- @require Module:RobloxUrls -- @require Module:Utils -- @require Module:DPL -- local links = require("Dev:Links") local player_link = require("Module:Player link") local roblox_urls = require("Module:RobloxUrls") local utils = require("Module:Utils") local dpl = require("Module:DPL")

local p = {}

--- Create an unordered list of players with links. -- This function makes an attempt to avoid exceeding the expensive function limit. -- @param {table} args A table with player names as values. -- @return {string} Wikitext for list of players. function p._player_list(args, forceDPL) forceDPL = true -- temporary args = utils.trim_positional_arguments(args) local items = {} if #args <= 90 and not forceDPL then for _, name in ipairs(args) do local item = "* " .. player_link._player_link{player = name} table.insert(items, item) end else local pages = dpl.list({category="Player pages"}) local page_set = utils.array_to_set(pages) for _, name in ipairs(args) do			local title = mw.title.makeTitle('Community', name) if title and page_set[title.prefixedText] then local item = "* " .. links.link(title.fullText, name, "local") table.insert(items, item) else local item = "* " .. links.link(tostring(roblox_urls.user_from_username(name)), name, "ext") table.insert(items, item) end end end return table.concat(items, "\n") end

p.player_list = utils.make_wrapper_function(p._player_list)

return p