From e8a907d89e37bf6eeab8e852c8439ae4899cd114 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Wed, 31 Jul 2013 11:16:11 +0200 Subject: Implemented the actual tab completion for commands and playernames. Each command is reported only if the player has the permission to use it. --- source/PluginManager.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'source/PluginManager.cpp') diff --git a/source/PluginManager.cpp b/source/PluginManager.cpp index 37032f6c3..043390cbc 100644 --- a/source/PluginManager.cpp +++ b/source/PluginManager.cpp @@ -1335,14 +1335,22 @@ bool cPluginManager::ExecuteConsoleCommand(const AStringVector & a_Split, cComma -void cPluginManager::TabCompleteCommand(const AString & a_Text, AStringVector & a_Results) -{ - // TODO - // DEBUG: - LOGWARNING("%s: Not implemented yet!", __FUNCTION__); - a_Results.push_back(a_Text + "_plgmgr1"); - a_Results.push_back(a_Text + "_plgmgr3"); - a_Results.push_back(a_Text + "_plgmgr2"); +void cPluginManager::TabCompleteCommand(const AString & a_Text, AStringVector & a_Results, cPlayer * a_Player) +{ + for (CommandMap::iterator itr = m_Commands.begin(), end = m_Commands.end(); itr != end; ++itr) + { + if (NoCaseCompare(itr->first.substr(0, a_Text.length()), a_Text) != 0) + { + // Command name doesn't match + continue; + } + if ((a_Player != NULL) && !a_Player->HasPermission(itr->second.m_Permission)) + { + // Player doesn't have permission for the command + continue; + } + a_Results.push_back(itr->first); + } } -- cgit v1.2.3