diff options
author | faketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-08-20 14:20:20 +0200 |
---|---|---|
committer | faketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-08-20 14:20:20 +0200 |
commit | 12906c026d414c752d3c0ba9481f425b24b29c67 (patch) | |
tree | d64298334a68275e0d7c22c9dfb0e82c95654f83 /MCServer/Plugins/Core/help.lua | |
parent | Window, Chest, Furnace and Pawn are not using cPackets at all (diff) | |
download | cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.gz cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.bz2 cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.lz cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.xz cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.zst cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.zip |
Diffstat (limited to 'MCServer/Plugins/Core/help.lua')
-rw-r--r-- | MCServer/Plugins/Core/help.lua | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/MCServer/Plugins/Core/help.lua b/MCServer/Plugins/Core/help.lua new file mode 100644 index 000000000..02ef25ebd --- /dev/null +++ b/MCServer/Plugins/Core/help.lua @@ -0,0 +1,54 @@ +function HandleHelpCommand( Split, Player )
+ local PluginManager = cRoot:Get():GetPluginManager()
+
+ local LinesPerPage = 9
+ local CurrentPage = 1
+ local CurrentLine = 0
+
+ if( #Split == 2 ) then
+ CurrentPage = tonumber(Split[2])
+ end
+
+ local Pages = {}
+
+ local PluginList = PluginManager:GetAllPlugins()
+ for i, Plugin in ipairs( PluginList ) do
+ 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
+
+ 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
+ end
+
+ return true
+end
\ No newline at end of file |