mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-18 14:10:18 -04:00
[3.3.5] ChatCommands, the other half: chat command resolution refactor (PR #25463)
(cherry picked from commit 1eca51b417)
This commit is contained in:
@@ -19,7 +19,6 @@
|
||||
#include "AchievementMgr.h"
|
||||
#include "AreaTrigger.h"
|
||||
#include "AreaTriggerAI.h"
|
||||
#include "Chat.h"
|
||||
#include "ChatCommand.h"
|
||||
#include "Conversation.h"
|
||||
#include "Creature.h"
|
||||
@@ -1057,17 +1056,17 @@ class ScriptRegistrySwapHooks<CommandScript, Base>
|
||||
public:
|
||||
void BeforeReleaseContext(std::string const& /*context*/) final override
|
||||
{
|
||||
ChatHandler::invalidateCommandTable();
|
||||
Trinity::ChatCommands::InvalidateCommandMap();
|
||||
}
|
||||
|
||||
void BeforeSwapContext(bool /*initialize*/) override
|
||||
{
|
||||
ChatHandler::invalidateCommandTable();
|
||||
Trinity::ChatCommands::InvalidateCommandMap();
|
||||
}
|
||||
|
||||
void BeforeUnload() final override
|
||||
{
|
||||
ChatHandler::invalidateCommandTable();
|
||||
Trinity::ChatCommands::InvalidateCommandMap();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1753,22 +1752,16 @@ OutdoorPvP* ScriptMgr::CreateOutdoorPvP(uint32 scriptId)
|
||||
return tmpscript->GetOutdoorPvP();
|
||||
}
|
||||
|
||||
std::vector<ChatCommand> ScriptMgr::GetChatCommands()
|
||||
Trinity::ChatCommands::ChatCommandTable ScriptMgr::GetChatCommands()
|
||||
{
|
||||
std::vector<ChatCommand> table;
|
||||
Trinity::ChatCommands::ChatCommandTable table;
|
||||
|
||||
FOR_SCRIPTS_RET(CommandScript, itr, end, table)
|
||||
{
|
||||
std::vector<ChatCommand> cmds = itr->second->GetCommands();
|
||||
table.insert(table.end(), cmds.begin(), cmds.end());
|
||||
Trinity::ChatCommands::ChatCommandTable cmds = itr->second->GetCommands();
|
||||
std::move(cmds.begin(), cmds.end(), std::back_inserter(table));
|
||||
}
|
||||
|
||||
// Sort commands in alphabetical order
|
||||
std::sort(table.begin(), table.end(), [](ChatCommand const& a, ChatCommand const& b)
|
||||
{
|
||||
return strcmp(a.Name, b.Name) < 0;
|
||||
});
|
||||
|
||||
return table;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user