1
0

Core: fixed /help and /pluginlist

git-svn-id: http://mc-server.googlecode.com/svn/trunk@967 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
faketruth 2012-10-15 22:55:45 +00:00
parent f9dab57d8b
commit 6d121a4914
2 changed files with 26 additions and 22 deletions

View File

@ -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

View File

@ -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 .. ")" )