<?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%3AChat_options</id>
	<title>Module:Chat options - 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%3AChat_options"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Chat_options&amp;action=history"/>
	<updated>2026-05-01T16:29:40Z</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:Chat_options&amp;diff=34111&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;-- &lt;pre&gt; local p = {}   local hasc = require(&#039;Module:Paramtest&#039;).has_content local tooltips = require(&#039;Module:Tooltip&#039;)   function p.main(frame) 	local args = frame:getParent().args 	local items = {}   	local i = 1 	while hasc(args[i]) do 		local item = mw.text.trim(args[i]) 		local key 		local tooltip   		if item:lower() == &#039;accept&#039; then 			key = &#039;&amp;#x2713;&#039; 			tooltip = &#039;[Accept Quest]&#039; 		elseif item:lower() == &#039;any&#039; or item == &#039;~&#039; then 			key = &#039;~&#039; 			tooltip = &#039;[Any o...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Chat_options&amp;diff=34111&amp;oldid=prev"/>
		<updated>2024-10-15T22:09:36Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-- &amp;lt;pre&amp;gt; local p = {}   local hasc = require(&amp;#039;Module:Paramtest&amp;#039;).has_content local tooltips = require(&amp;#039;Module:Tooltip&amp;#039;)   function p.main(frame) 	local args = frame:getParent().args 	local items = {}   	local i = 1 	while hasc(args[i]) do 		local item = mw.text.trim(args[i]) 		local key 		local tooltip   		if item:lower() == &amp;#039;accept&amp;#039; then 			key = &amp;#039;✓&amp;#039; 			tooltip = &amp;#039;[Accept Quest]&amp;#039; 		elseif item:lower() == &amp;#039;any&amp;#039; or item == &amp;#039;~&amp;#039; then 			key = &amp;#039;~&amp;#039; 			tooltip = &amp;#039;[Any o...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- &amp;lt;pre&amp;gt;&lt;br /&gt;
local p = {}&lt;br /&gt;
 &lt;br /&gt;
local hasc = require(&amp;#039;Module:Paramtest&amp;#039;).has_content&lt;br /&gt;
local tooltips = require(&amp;#039;Module:Tooltip&amp;#039;)&lt;br /&gt;
 &lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local items = {}&lt;br /&gt;
 &lt;br /&gt;
	local i = 1&lt;br /&gt;
	while hasc(args[i]) do&lt;br /&gt;
		local item = mw.text.trim(args[i])&lt;br /&gt;
		local key&lt;br /&gt;
		local tooltip&lt;br /&gt;
 &lt;br /&gt;
		if item:lower() == &amp;#039;accept&amp;#039; then&lt;br /&gt;
			key = &amp;#039;&amp;amp;#x2713;&amp;#039;&lt;br /&gt;
			tooltip = &amp;#039;[Accept Quest]&amp;#039;&lt;br /&gt;
		elseif item:lower() == &amp;#039;any&amp;#039; or item == &amp;#039;~&amp;#039; then&lt;br /&gt;
			key = &amp;#039;~&amp;#039;&lt;br /&gt;
			tooltip = &amp;#039;[Any option]&amp;#039;&lt;br /&gt;
		else -- Match first case-insensitive, alphanumeric character&lt;br /&gt;
			key = item:match(&amp;#039;^[\?A-Za-z0-9#]&amp;#039;)&lt;br /&gt;
			if key then&lt;br /&gt;
				tooltip = mw.text.trim(mw.ustring.sub(item, 2))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
 &lt;br /&gt;
		table.insert(items, { key, tooltip })&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	return p.render(items)&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function p.render(items)&lt;br /&gt;
 &lt;br /&gt;
	local k,t,vals,tooltip_table&lt;br /&gt;
	tooltip_table = mw.html.create(&amp;#039;table&amp;#039;) -- Create tooltip table&lt;br /&gt;
	local c_options_arr = {}&lt;br /&gt;
 &lt;br /&gt;
	for i,v in ipairs(items) do&lt;br /&gt;
		k = mw.text.trim(v[1]) -- Chat option key value&lt;br /&gt;
		t = mw.text.trim(v[2]) -- Chat option text&lt;br /&gt;
 &lt;br /&gt;
		---&lt;br /&gt;
		--- Chat options list&lt;br /&gt;
		---&lt;br /&gt;
		vals = mw.html.create(&amp;#039;span&amp;#039;) -- Create chat options number&lt;br /&gt;
		vals:wikitext(k) -- Set text to the key value&lt;br /&gt;
		if hasc(t) then -- If it has text to display&lt;br /&gt;
			vals:addClass(&amp;#039;chat-options-underline&amp;#039;) -- Underline it&lt;br /&gt;
				:attr(&amp;#039;title&amp;#039;, t) -- Add hover title attrib with text&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(c_options_arr, tostring(vals))&lt;br /&gt;
 &lt;br /&gt;
		---&lt;br /&gt;
		--- Chat options tooltip&lt;br /&gt;
		---&lt;br /&gt;
		tooltip_table	:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
							:tag(&amp;#039;td&amp;#039;):wikitext(&amp;#039;\&amp;#039;\&amp;#039;\&amp;#039;&amp;#039;..k..&amp;#039;\&amp;#039;\&amp;#039;\&amp;#039;&amp;#039;):done()&lt;br /&gt;
							:tag(&amp;#039;td&amp;#039;):wikitext(t):done()&lt;br /&gt;
						:done()&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	-- Create chat options container&lt;br /&gt;
	local c_options_container = mw.html.create(&amp;#039;span&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;chat-options&amp;#039;)&lt;br /&gt;
			:wikitext(&amp;#039;(&amp;lt;i title=&amp;quot;Chat options&amp;quot;&amp;gt;[[File:Quick chat button.png|alt=Chat|link=]]&amp;lt;/i&amp;gt; &amp;#039;)&lt;br /&gt;
			:wikitext(table.concat(c_options_arr, &amp;#039;&amp;amp;bull;&amp;#039;)) -- Concat chat option numbers with hovers&lt;br /&gt;
			:wikitext(&amp;#039;)&amp;#039;)&lt;br /&gt;
	c_options_container = tostring(c_options_container)&lt;br /&gt;
 &lt;br /&gt;
	-- Create chat options tooltip&lt;br /&gt;
	local name = &amp;#039;c_option-&amp;#039; .. mw.hash.hashValue(&amp;#039;md5&amp;#039;, c_options_container)&lt;br /&gt;
	local c_tooltip_button = tooltips._span({&lt;br /&gt;
			name = name,&lt;br /&gt;
			alt = &amp;#039;\&amp;#039;\&amp;#039;\&amp;#039;&amp;amp;hellip;\&amp;#039;\&amp;#039;\&amp;#039;&amp;#039;&lt;br /&gt;
			})&lt;br /&gt;
			:css({&lt;br /&gt;
				[&amp;#039;background&amp;#039;] = &amp;#039;none&amp;#039;,&lt;br /&gt;
				[&amp;#039;border&amp;#039;] = &amp;#039;none&amp;#039;,&lt;br /&gt;
				[&amp;#039;color&amp;#039;] = &amp;#039;grey&amp;#039;&lt;br /&gt;
			})&lt;br /&gt;
	local c_tooltip_container = tooltips._div({&lt;br /&gt;
			name = name,&lt;br /&gt;
			hasarrow = true,&lt;br /&gt;
			limitwidth = true,&lt;br /&gt;
			content = tostring(tooltip_table)&lt;br /&gt;
			}):css(&amp;#039;padding&amp;#039;, &amp;#039;0&amp;#039;)&lt;br /&gt;
	c_tooltip_button = tostring(c_tooltip_button)&lt;br /&gt;
	c_tooltip_container = tostring(c_tooltip_container)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
	return c_options_container .. c_tooltip_button .. c_tooltip_container&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>