diff --git a/core/AdminCache.cpp b/core/AdminCache.cpp index 57ca47cb..7298347a 100644 --- a/core/AdminCache.cpp +++ b/core/AdminCache.cpp @@ -349,7 +349,7 @@ void AdminCache::AddCommandOverride(const char *cmd, OverrideType type, FlagBits sm_trie_insert(pTrie, cmd, (void *)(unsigned int)flags); - g_ConCmds.UpdateAdminCmdFlags(cmd, type, flags); + g_ConCmds.UpdateAdminCmdFlags(cmd, type, flags, false); } bool AdminCache::GetCommandOverride(const char *cmd, OverrideType type, FlagBits *pFlags) @@ -397,7 +397,7 @@ void AdminCache::_UnsetCommandGroupOverride(const char *group) sm_trie_delete(m_pCmdGrpOverrides, group); - g_ConCmds.UpdateAdminCmdFlags(group, Override_CommandGroup, 0); + g_ConCmds.UpdateAdminCmdFlags(group, Override_CommandGroup, 0, true); } void AdminCache::_UnsetCommandOverride(const char *cmd) @@ -409,7 +409,7 @@ void AdminCache::_UnsetCommandOverride(const char *cmd) sm_trie_delete(m_pCmdOverrides, cmd); - g_ConCmds.UpdateAdminCmdFlags(cmd, Override_Command, 0); + g_ConCmds.UpdateAdminCmdFlags(cmd, Override_Command, 0, true); } void AdminCache::DumpCommandOverrideCache(OverrideType type) diff --git a/core/ConCmdManager.cpp b/core/ConCmdManager.cpp index c8d4a768..43da1796 100644 --- a/core/ConCmdManager.cpp +++ b/core/ConCmdManager.cpp @@ -648,7 +648,7 @@ void ConCmdManager::AddToCmdList(ConCmdInfo *info) } } -void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, FlagBits bits) +void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, FlagBits bits, bool remove) { ConCmdInfo *pInfo; @@ -667,7 +667,7 @@ void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, Flag pHook = (*iter); if (pHook->pAdmin) { - if (bits) + if (!remove) { pHook->pAdmin->eflags = bits; } else { @@ -698,7 +698,7 @@ void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, Flag pHook = (*citer); if (pHook->pAdmin && pHook->pAdmin->cmdGrpId == grpid) { - if (bits) + if (remove) { pHook->pAdmin->eflags = bits; } else { diff --git a/core/ConCmdManager.h b/core/ConCmdManager.h index 162209e3..062003e9 100644 --- a/core/ConCmdManager.h +++ b/core/ConCmdManager.h @@ -117,7 +117,7 @@ public: const char *description, int flags); ResultType DispatchClientCommand(int client, const char *cmd, int args, ResultType type); - void UpdateAdminCmdFlags(const char *cmd, OverrideType type, FlagBits bits); + void UpdateAdminCmdFlags(const char *cmd, OverrideType type, FlagBits bits, bool remove); bool LookForSourceModCommand(const char *cmd); bool LookForCommandAdminFlags(const char *cmd, FlagBits *pFlags); bool CheckCommandAccess(int client, const char *cmd, FlagBits flags);