aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Scripting
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-10-22 20:26:56 +0200
committerShauren <shauren.trinity@gmail.com>2015-10-22 22:34:16 +0200
commitc92faf627712d26a7abdce2db62ffb8b938a4522 (patch)
tree8b84fc1f6a84a774062e46e6f6cc1dc9bf36a917 /src/server/game/Scripting
parentdb8aba662ae94aeaab74ae2ae29c38cf0b8bffb4 (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.cpp10
-rw-r--r--src/server/game/Scripting/ScriptMgr.h4
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 */