Feed The Beast Wiki

Follow the Feed The Beast Wiki on Discord or Mastodon!

READ MORE

Feed The Beast Wiki
Advertisement
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Documentation for this module may be created at Module:Mod List/doc

local p = {}

local function getMods(lang)
	local success, data = pcall(function()
        return mw.loadData([[Module:Mods/list/]]..lang)
    end)
    if not success then
       data = mw.loadData([[Module:Mods/list]])
    end
    return data.byName
end

local function getName(mod, trans)
	local name = trans[mod]
	return name ~= nil and (trans[mod].localized or trans[mod].name) or mod
end

function sort(cat, lang)
	local list = ""
	if lang == nil then
		lang = require([[Module:Utility_functions]]).pageSuffix():sub(2)
		if lang == "en" then
			list = mw:getCurrentFrame():callParserFunction{name = "#dpl:", args = {namespace = "", category = cat, nottitlematch = '%/%', allowcachedresults = "true", count = ""}}
		else
			list = mw:getCurrentFrame():callParserFunction{name = "#dpl:", args = {namespace = "", category = cat .. "/" .. lang, titlematch = '%/' .. lang, allowcachedresults = "true", count = ""}}
		end
	else
		list = mw:getCurrentFrame():callParserFunction{name = "#dpl:", args = {namespace = "", category = cat .. "/" .. lang, titlematch = '%/' .. lang, allowcachedresults = "true", count = ""}}
	end

	if list:find("Warning: No results.", 51, true) == nil then
		local mods = {}
		for mod in list:gsub("</li><li>", "¦"):sub(9,-11):gmatch("([^¦]+)") do
			table.insert(mods, mod)
		end
		table.sort(mods)
		local list = ""
		if lang ~= nil then
			trans = getMods(lang)
		end
		for _, mod in ipairs(mods) do
			if lang == nil or cat ~= "Mods" then --This only works for Mods right not, but whatever.
				list = list .. mod .. "&nbsp;'''&bull;''' "
			else
				local m = mod:match("%[%[.*|(.*)%]%]") --Doesn't matter which one we take
				if lang == "en" then
					list = list .. "[[" .. m .. "|" .. getName(m, trans) .. "]]&nbsp;'''&bull;''' "
				else
					list = list .. "[[" .. m .. "|" .. getName(m:sub(1, -(#lang+2)), trans) .. "]]&nbsp;'''&bull;''' "
				end
			end
		end
		return list:sub(1,-20)
	else
		return "[[Feed The Beast Wiki:Translation portal|Translate]]"
	end
end

p.mods = function(params)
	return sort("Mods", nil, params.args.lang)
end

p.modpacks = function(params)
	return sort("Modpacks", nil, params.args.lang)
end
p.officialftbmodpacks = function(params)
	return sort("Official FTB modpacks", nil, params.args.lang)
end
p.officialtechnicmodpacks = function(params)
	return sort("Official Technic modpacks", nil, params.args.lang)
end

p.technicmodpacks = function(params)
	return sort("Technic modpacks", nil, params.args.lang)
end

p.atlaunchermodpacks = function(params)
	return sort("ATLauncher modpacks", nil, params.args.lang)
end

p.atmmodpacks = function(params)
	return sort("ATM modpacks", nil, params.args.lang)
end

return p
Advertisement