<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mbwiki.stairwaygames.work/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ADevmodule</id>
	<title>Module:Devmodule - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mbwiki.stairwaygames.work/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ADevmodule"/>
	<link rel="alternate" type="text/html" href="https://mbwiki.stairwaygames.work/w/index.php?title=Module:Devmodule&amp;action=history"/>
	<updated>2026-04-07T16:26:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://mbwiki.stairwaygames.work/w/index.php?title=Module:Devmodule&amp;diff=5698&amp;oldid=prev</id>
		<title>Admin coral island: Created page with &quot;-- &lt;nowiki&gt; -------------------------------------------------------------------------------- -- Invokes global modules from dev.wikia.com. -- -- Syntax: -- {{Devmodule|#mod = &lt;module name&gt;|#fun = &lt;function name&gt;|&lt;parameters&gt;}} -------------------------------------------------------------------------------- local p = {}  local getArgs = require(&quot;Dev:Arguments&quot;).getArgs local normalize = require(&quot;Dev:NormalizeModuleName&quot;) local userError = require(&quot;Dev:User error&quot;) local r...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mbwiki.stairwaygames.work/w/index.php?title=Module:Devmodule&amp;diff=5698&amp;oldid=prev"/>
		<updated>2023-08-04T02:53:25Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-- &amp;lt;nowiki&amp;gt; -------------------------------------------------------------------------------- -- Invokes global modules from dev.wikia.com. -- -- Syntax: -- {{Devmodule|#mod = &amp;lt;module name&amp;gt;|#fun = &amp;lt;function name&amp;gt;|&amp;lt;parameters&amp;gt;}} -------------------------------------------------------------------------------- local p = {}  local getArgs = require(&amp;quot;Dev:Arguments&amp;quot;).getArgs local normalize = require(&amp;quot;Dev:NormalizeModuleName&amp;quot;) local userError = require(&amp;quot;Dev:User error&amp;quot;) local r...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- &amp;lt;nowiki&amp;gt;&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Invokes global modules from dev.wikia.com.&lt;br /&gt;
--&lt;br /&gt;
-- Syntax:&lt;br /&gt;
-- {{Devmodule|#mod = &amp;lt;module name&amp;gt;|#fun = &amp;lt;function name&amp;gt;|&amp;lt;parameters&amp;gt;}}&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&amp;quot;Dev:Arguments&amp;quot;).getArgs&lt;br /&gt;
local normalize = require(&amp;quot;Dev:NormalizeModuleName&amp;quot;)&lt;br /&gt;
local userError = require(&amp;quot;Dev:User error&amp;quot;)&lt;br /&gt;
local removeArgs = require(&amp;quot;Dev:FrameTools&amp;quot;).removeArgs&lt;br /&gt;
&lt;br /&gt;
--% Entry point to use module&lt;br /&gt;
--@ frame (table) A scribunto frame&lt;br /&gt;
--: (string) The return content of the module &lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = getArgs(frame)&lt;br /&gt;
    local moduleName = args[&amp;quot;#mod&amp;quot;] or args[&amp;quot;#modulename&amp;quot;]&lt;br /&gt;
    local functionName = args[&amp;quot;#fun&amp;quot;] or args[&amp;quot;#fname&amp;quot;] or &amp;quot;main&amp;quot;&lt;br /&gt;
    local success, _, invokedModule&lt;br /&gt;
&lt;br /&gt;
    -- try to `normalize()` the given module name&lt;br /&gt;
    -- if this fails, then the user did not pass the right parameters&lt;br /&gt;
    success, _, moduleName = pcall(normalize, moduleName)&lt;br /&gt;
&lt;br /&gt;
    if not success then&lt;br /&gt;
        return userError(&amp;quot;no `#mod` parameter given &amp;quot; ..&lt;br /&gt;
                         &amp;quot;(should be the name of a module on dev.wikia)&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- try to `require()` the given module&lt;br /&gt;
    -- if this fails, then the user gave an incorrect module name&lt;br /&gt;
    success, invokedModule = pcall(require, &amp;quot;Dev:&amp;quot; .. moduleName)&lt;br /&gt;
&lt;br /&gt;
    if not success then&lt;br /&gt;
        return userError(&amp;quot;could not find a module called `&amp;quot; .. moduleName ..&lt;br /&gt;
                         &amp;quot;` on dev.wikia&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- make sure the module has a function called `functionName`&lt;br /&gt;
    -- if this fails, then the user gave an incorrect function name&lt;br /&gt;
    local func = invokedModule[functionName]&lt;br /&gt;
&lt;br /&gt;
    if not func then&lt;br /&gt;
        return userError(&amp;quot;that module does not have a function called `&amp;quot; ..&lt;br /&gt;
                         functionName .. &amp;quot;`&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- create a frame-like object, without the Devmodule-exclusive arguments&lt;br /&gt;
    local pseudoFrame = removeArgs(frame, &amp;quot;#mod&amp;quot;, &amp;quot;#modulename&amp;quot;, &amp;quot;#fun&amp;quot;,&lt;br /&gt;
                                   &amp;quot;#fname&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    -- call the function&lt;br /&gt;
    -- any errors from the function itself will be passed to the user&lt;br /&gt;
    return func(pseudoFrame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&lt;br /&gt;
-- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
-- (Add categories here.)&lt;/div&gt;</summary>
		<author><name>Admin coral island</name></author>
	</entry>
</feed>