diff options
| author | Shauren <shauren.trinity@gmail.com> | 2015-10-22 20:26:56 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2015-10-22 22:34:16 +0200 |
| commit | c92faf627712d26a7abdce2db62ffb8b938a4522 (patch) | |
| tree | 8b84fc1f6a84a774062e46e6f6cc1dc9bf36a917 /src/server/game/Scripting | |
| parent | db8aba662ae94aeaab74ae2ae29c38cf0b8bffb4 (diff) | |
Core/Commands: Refactored chat command script hook, fixes a crash when building with gcc 5
Closes #15616
Closes #15740
(cherry picked from commit 2d942ddcc528cc9fe718ebbd5903318fcbdab817)
# Conflicts:
# src/server/scripts/Commands/cs_battlenet_account.cpp
# src/server/scripts/Commands/cs_cast.cpp
# src/server/scripts/Commands/cs_debug.cpp
# src/server/scripts/Commands/cs_go.cpp
# src/server/scripts/Commands/cs_misc.cpp
# src/server/scripts/Commands/cs_mmaps.cpp
# src/server/scripts/Commands/cs_modify.cpp
# src/server/scripts/Commands/cs_npc.cpp
# src/server/scripts/Commands/cs_reload.cpp
# src/server/scripts/Commands/cs_ticket.cpp
Diffstat (limited to 'src/server/game/Scripting')
| -rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/Scripting/ScriptMgr.h | 4 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index db5e09c5d2a..f2613b0267c 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -33,6 +33,7 @@ #include "Player.h" #include "WorldPacket.h" #include "WorldSession.h" +#include "Chat.h" // namespace // { @@ -972,12 +973,15 @@ OutdoorPvP* ScriptMgr::CreateOutdoorPvP(OutdoorPvPData const* data) return tmpscript->GetOutdoorPvP(); } -std::vector<ChatCommand*> ScriptMgr::GetChatCommands() +std::vector<ChatCommand> ScriptMgr::GetChatCommands() { - std::vector<ChatCommand*> table; + std::vector<ChatCommand> table; FOR_SCRIPTS_RET(CommandScript, itr, end, table) - table.push_back(itr->second->GetCommands()); + { + std::vector<ChatCommand> cmds = itr->second->GetCommands(); + table.insert(table.end(), cmds.begin(), cmds.end()); + } return table; } diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 7e1751244fd..a2024a5ccba 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -554,7 +554,7 @@ class CommandScript : public ScriptObject public: // Should return a pointer to a valid command table (ChatCommand array) to be used by ChatHandler. - virtual ChatCommand* GetCommands() const = 0; + virtual std::vector<ChatCommand> GetCommands() const = 0; }; class WeatherScript : public ScriptObject, public UpdatableScript<Weather> @@ -1014,7 +1014,7 @@ class ScriptMgr public: /* CommandScript */ - std::vector<ChatCommand*> GetChatCommands(); + std::vector<ChatCommand> GetChatCommands(); public: /* WeatherScript */ |
