<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AGELimits</id>
	<title>Module:GELimits - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AGELimits"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:GELimits&amp;action=history"/>
	<updated>2026-05-16T04:20:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=Module:GELimits&amp;diff=34944&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;local p = {} local data = mw.loadJsonData(&#039;Module:GELimits/data.json&#039;)  function p.main(frame) 	local args = frame:getParent().args[1] 	 	return data[args] or 0 end  function p.table(frame) 	local sectionString = &quot;#ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot; 	 	local bySection = {} 	for name, _ in pairs(data) do 		local letter = string.sub(name, 1, 1) 		if letter ~= &#039;%&#039; then 			if string.find(sectionString, letter) == nil then 				letter = &quot;#&quot; 			end 			if bySection[letter] == nil then...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:GELimits&amp;diff=34944&amp;oldid=prev"/>
		<updated>2024-10-16T23:12:08Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local p = {} local data = mw.loadJsonData(&amp;#039;Module:GELimits/data.json&amp;#039;)  function p.main(frame) 	local args = frame:getParent().args[1] 	 	return data[args] or 0 end  function p.table(frame) 	local sectionString = &amp;quot;#ABCDEFGHIJKLMNOPQRSTUVWXYZ&amp;quot; 	 	local bySection = {} 	for name, _ in pairs(data) do 		local letter = string.sub(name, 1, 1) 		if letter ~= &amp;#039;%&amp;#039; then 			if string.find(sectionString, letter) == nil then 				letter = &amp;quot;#&amp;quot; 			end 			if bySection[letter] == nil then...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local data = mw.loadJsonData(&amp;#039;Module:GELimits/data.json&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = frame:getParent().args[1]&lt;br /&gt;
	&lt;br /&gt;
	return data[args] or 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.table(frame)&lt;br /&gt;
	local sectionString = &amp;quot;#ABCDEFGHIJKLMNOPQRSTUVWXYZ&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	local bySection = {}&lt;br /&gt;
	for name, _ in pairs(data) do&lt;br /&gt;
		local letter = string.sub(name, 1, 1)&lt;br /&gt;
		if letter ~= &amp;#039;%&amp;#039; then&lt;br /&gt;
			if string.find(sectionString, letter) == nil then&lt;br /&gt;
				letter = &amp;quot;#&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			if bySection[letter] == nil then&lt;br /&gt;
				bySection[letter] = {}&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(bySection[letter], name)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for i = 1, #sectionString do&lt;br /&gt;
	    local sectionHeader = sectionString:sub(i, i)&lt;br /&gt;
	    local limits = bySection[sectionHeader]&lt;br /&gt;
	    if limits ~= nil then&lt;br /&gt;
	    	table.sort(limits)&lt;br /&gt;
	    	table.insert(ret, &amp;#039;\n\n==&amp;#039;..sectionHeader..&amp;#039;==\n&amp;#039;)&lt;br /&gt;
	    	local inner = mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
		    	:addClass(&amp;#039;wikitable&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;sortable&amp;#039;)&lt;br /&gt;
				:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
					:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
						:wikitext(&amp;#039;Item&amp;#039;)&lt;br /&gt;
					:done()&lt;br /&gt;
					:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
						:wikitext(&amp;#039;Limit&amp;#039;)&lt;br /&gt;
					:done()&lt;br /&gt;
				:done()&lt;br /&gt;
	    	for _, name in ipairs(limits) do&lt;br /&gt;
	    		local limit = data[name]&lt;br /&gt;
	    		row = inner:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	    			:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
	    				:wikitext(&amp;#039;[[Exchange:&amp;#039; .. name .. &amp;#039;|&amp;#039; .. name .. &amp;#039;]]&amp;#039;)&lt;br /&gt;
	    			:done()&lt;br /&gt;
	    			:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
	    				:wikitext(limit)&lt;br /&gt;
	    			:done()&lt;br /&gt;
	    		:done()&lt;br /&gt;
	    	end&lt;br /&gt;
	    	inner:done()&lt;br /&gt;
	    	table.insert(ret, tostring(inner))&lt;br /&gt;
	    end&lt;br /&gt;
	end&lt;br /&gt;
	return mw.text.trim(table.concat(ret, &amp;#039;&amp;#039;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.table_nosections(frame)&lt;br /&gt;
	local lang = mw.getContentLanguage()&lt;br /&gt;
	function fnum(x)&lt;br /&gt;
		if tonumber(x) then&lt;br /&gt;
			return lang:formatNum(tonumber(x))&lt;br /&gt;
		end&lt;br /&gt;
		return x&lt;br /&gt;
	end&lt;br /&gt;
	function sortfunc(a,b)&lt;br /&gt;
		return a[1] &amp;lt; b[1]&lt;br /&gt;
	end&lt;br /&gt;
	local ret = mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
	ret:addClass(&amp;#039;wikitable align-right-2 sortable&amp;#039;)&lt;br /&gt;
		:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Item&amp;#039;):done()&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Limit&amp;#039;):done()&lt;br /&gt;
			:done()&lt;br /&gt;
			:newline()&lt;br /&gt;
	local data_list = {}&lt;br /&gt;
	for name,limit in pairs(data) do&lt;br /&gt;
		if name ~= &amp;#039;%LAST_UPDATE%&amp;#039; and name ~= &amp;#039;%LAST_UPDATE_F%&amp;#039; then&lt;br /&gt;
			table.insert(data_list, {name,limit})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(data_list, sortfunc)&lt;br /&gt;
	for _,info in ipairs(data_list) do&lt;br /&gt;
		ret:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;td&amp;#039;):wikitext(&amp;#039;[[&amp;#039;..info[1]..&amp;#039;]]&amp;#039;):done()&lt;br /&gt;
			:tag(&amp;#039;td&amp;#039;):wikitext(fnum(info[2])):attr(&amp;#039;data-sort-value&amp;#039;,info[2]):done()&lt;br /&gt;
			:done()&lt;br /&gt;
			:newline()&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>