From e9f18f8b4fcf4ae7891b631765bcc49a4a183220 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 30 Jul 2013 22:48:59 +0200 Subject: Tab completion packet is handled and sent. This only handles the network comm and the overall design logic, the actual completion is not yet implemented, only dummy values are returned for now. --- source/PluginManager.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'source/PluginManager.cpp') diff --git a/source/PluginManager.cpp b/source/PluginManager.cpp index b7a21a7ea..37032f6c3 100644 --- a/source/PluginManager.cpp +++ b/source/PluginManager.cpp @@ -1335,6 +1335,20 @@ 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"); +} + + + + + bool cPluginManager::AddPlugin(cPlugin * a_Plugin) { m_Plugins[a_Plugin->GetDirectory()] = a_Plugin; -- cgit v1.2.3 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