diff options
author | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2013-02-01 20:55:42 +0100 |
---|---|---|
committer | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2013-02-01 20:55:42 +0100 |
commit | 019c8b5bc71708e2d895a95757643406f75b4149 (patch) | |
tree | 47c5e399e562384a255d5d789d761d8857dff6af /MCServer/Plugins/Core/help.lua | |
parent | Renamed HOOK_KILLED to HOOK_KILLING to match naming conventions. (diff) | |
download | cuberite-019c8b5bc71708e2d895a95757643406f75b4149.tar cuberite-019c8b5bc71708e2d895a95757643406f75b4149.tar.gz cuberite-019c8b5bc71708e2d895a95757643406f75b4149.tar.bz2 cuberite-019c8b5bc71708e2d895a95757643406f75b4149.tar.lz cuberite-019c8b5bc71708e2d895a95757643406f75b4149.tar.xz cuberite-019c8b5bc71708e2d895a95757643406f75b4149.tar.zst cuberite-019c8b5bc71708e2d895a95757643406f75b4149.zip |
Diffstat (limited to 'MCServer/Plugins/Core/help.lua')
-rw-r--r-- | MCServer/Plugins/Core/help.lua | 76 |
1 files changed, 30 insertions, 46 deletions
diff --git a/MCServer/Plugins/Core/help.lua b/MCServer/Plugins/Core/help.lua index 800a65924..68cdeca66 100644 --- a/MCServer/Plugins/Core/help.lua +++ b/MCServer/Plugins/Core/help.lua @@ -1,56 +1,40 @@ -function HandleHelpCommand( Split, Player )
+function HandleHelpCommand(Split, Player)
local PluginManager = cRoot:Get():GetPluginManager()
- local LinesPerPage = 9
- local CurrentPage = 1
- local CurrentLine = 0
+ local LinesPerPage = 9;
+ local CurrentPage = 1;
+ local CurrentLine = 0;
+ local PageRequested = 1;
+ local Output = {};
- if( #Split == 2 ) then
- CurrentPage = tonumber(Split[2])
+ if (#Split == 2) then
+ PageRequested = tonumber(Split[2]);
end
- local Pages = {}
+ local Process = function(Command, Permission, HelpString)
+ if not(Player:HasPermission(Permission)) then
+ return false;
+ end;
+ if (HelpString == "") then
+ return false;
+ end;
- local PluginList = PluginManager:GetAllPlugins()
- for k, Plugin in pairs(PluginList) do
- if( Plugin ) then
- local Commands = Plugin:GetCommands()
- for i, v in ipairs( Commands ) do
- if( Player:HasPermission( v.Permission ) ) then
- local PageNum = math.floor( CurrentLine/LinesPerPage )+1
- if( Pages[ PageNum ] == nil ) then Pages[ PageNum ] = {} end -- Create page
-
- if( Pages[ PageNum ].ShownName ~= Plugin:GetName() and SHOW_PLUGIN_NAMES == true ) then
- if( CurrentLine == LinesPerPage * PageNum -1 ) then -- Don't add if it's the last line of the page, it looks silly
- -- Add it to the next page instead
- CurrentLine = CurrentLine+1
- PageNum = math.floor( CurrentLine/LinesPerPage )+1
-
- if( Pages[ PageNum ] == nil ) then Pages[ PageNum ] = {} end -- Create page
- table.insert( Pages[ PageNum ], cChatColor.Gold .. Plugin:GetName() )
- else
- Pages[ PageNum ].ShownName = Plugin:GetName()
- table.insert( Pages[ PageNum ], cChatColor.Gold .. Plugin:GetName() )
- end
- CurrentLine = CurrentLine+1
- PageNum = math.floor( CurrentLine/LinesPerPage )+1
- if( Pages[ PageNum ] == nil ) then Pages[ PageNum ] = {} end -- Create page
- end
- local Message = cChatColor.Blue .. v.Command .. v.Description;
- table.insert( Pages[ PageNum ], Message )
- CurrentLine = CurrentLine+1
- end
- end
- end
- end
-
- Player:SendMessage( cChatColor.Purple .. "- All commands - " .. cChatColor.Gold .. "[Page " .. (CurrentPage) .."/"..#Pages.."]" )
-
- if( Pages[CurrentPage] ~= nil ) then
- for i, v in ipairs(Pages[CurrentPage]) do
- Player:SendMessage( v )
- end
+ CurrentLine = CurrentLine + 1;
+ CurrentPage = math.floor(CurrentLine / LinesPerPage) + 1;
+ if (CurrentPage ~= PageRequested) then
+ return false;
+ end;
+ table.insert(Output, cChatColor.Blue .. Command .. HelpString);
end
+
+ PluginManager:ForEachCommand(Process);
+
+ -- CurrentPage now contains the total number of pages, and Output has the individual help lines to be sent
+
+ Player:SendMessage(cChatColor.Purple .. "- All commands - " .. cChatColor.Gold .. "[Page " .. PageRequested .. " / " .. CurrentPage .. "]");
+ for idx, msg in ipairs(Output) do
+ Player:SendMessage(msg);
+ end;
return true
end
\ No newline at end of file |