From 6d121a4914592abf68b603f84cc24bb831e6f671 Mon Sep 17 00:00:00 2001 From: faketruth Date: Mon, 15 Oct 2012 22:55:45 +0000 Subject: Core: fixed /help and /pluginlist git-svn-id: http://mc-server.googlecode.com/svn/trunk@967 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- MCServer/Plugins/Core/help.lua | 42 +++++++++++++++++++----------------- MCServer/Plugins/Core/pluginlist.lua | 6 ++++-- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/MCServer/Plugins/Core/help.lua b/MCServer/Plugins/Core/help.lua index 02ef25ebd..800a65924 100644 --- a/MCServer/Plugins/Core/help.lua +++ b/MCServer/Plugins/Core/help.lua @@ -12,32 +12,34 @@ function HandleHelpCommand( Split, Player ) 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 + 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 - table.insert( Pages[ PageNum ], cChatColor.Gold .. Plugin:GetName() ) - else - Pages[ PageNum ].ShownName = Plugin:GetName() - table.insert( Pages[ PageNum ], cChatColor.Gold .. Plugin:GetName() ) end + local Message = cChatColor.Blue .. v.Command .. v.Description; + table.insert( Pages[ PageNum ], Message ) 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 diff --git a/MCServer/Plugins/Core/pluginlist.lua b/MCServer/Plugins/Core/pluginlist.lua index 7b007f7db..5f01c0339 100644 --- a/MCServer/Plugins/Core/pluginlist.lua +++ b/MCServer/Plugins/Core/pluginlist.lua @@ -3,8 +3,10 @@ function HandlePluginListCommand( Split, Player ) local PluginList = PluginManager:GetAllPlugins() local PluginTable = {} - for i, Plugin in ipairs( PluginList ) do - table.insert(PluginTable, Plugin:GetName() ) + for k, Plugin in pairs( PluginList ) do + if ( Plugin ) then + table.insert(PluginTable, Plugin:GetName() ) + end end Player:SendMessage( cChatColor.Green .. "Loaded plugins: (" .. #PluginTable .. ")" ) -- cgit v1.2.3