diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 784e831c7..54975ae3e 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -482,6 +482,12 @@ void ScriptMgr::OnOpenStateChange(bool open) FOREACH_SCRIPT(WorldScript)->OnOpenStateChange(open); } + +void ScriptMgr::OnLoadCustomDatabeTable() +{ + FOREACH_SCRIPT(WorldScript)->OnLoadCustomDatabeTable(); +} + void ScriptMgr::OnBeforeConfigLoad(bool reload) { #ifdef ELUNA diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 3d17d0908..ac6fcdbbc 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -245,6 +245,9 @@ class WorldScript : public ScriptObject // Called after the world configuration is (re)loaded. virtual void OnAfterConfigLoad(bool /*reload*/) { } + // Called when loading custom database tables + virtual void OnLoadCustomDatabeTable() { } + // Called before the world configuration is (re)loaded. virtual void OnBeforeConfigLoad(bool /*reload*/) { } @@ -1132,6 +1135,7 @@ class ScriptMgr public: /* WorldScript */ + void OnLoadCustomDatabeTable(); void OnOpenStateChange(bool open); void OnBeforeConfigLoad(bool reload); void OnAfterConfigLoad(bool reload); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 3443cfce0..0524fa405 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1355,6 +1355,9 @@ void World::SetInitialWorldSettings() stmt->setUInt32(0, 3 * DAY); CharacterDatabase.Execute(stmt); + ///- Custom Hook for loading DB items + sScriptMgr->OnLoadCustomDatabeTable(); + ///- Load the DBC files sLog->outString("Initialize data stores..."); LoadDBCStores(m_dataPath);