diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index a92668803..95f931439 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -8945,7 +8945,7 @@ void ObjectMgr::LoadGameTele() LOG_INFO("server.loading", " "); } -GameTele const* ObjectMgr::GetGameTele(std::string_view name) const +GameTele const* ObjectMgr::GetGameTele(std::string_view name, bool exactSearch) const { // explicit name case std::wstring wname; @@ -8961,7 +8961,7 @@ GameTele const* ObjectMgr::GetGameTele(std::string_view name) const { if (itr->second.wnameLow == wname) return &itr->second; - else if (!alt && itr->second.wnameLow.find(wname) != std::wstring::npos) + else if (!exactSearch && !alt && itr->second.wnameLow.find(wname) != std::wstring::npos) alt = &itr->second; } diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index f1d53892e..2b45f3ce1 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -1347,7 +1347,7 @@ public: if (itr == _gameTeleStore.end()) return nullptr; return &itr->second; } - [[nodiscard]] GameTele const* GetGameTele(std::string_view name) const; + [[nodiscard]] GameTele const* GetGameTele(std::string_view name, bool exactSearch = false) const; [[nodiscard]] GameTeleContainer const& GetGameTeleMap() const { return _gameTeleStore; } bool AddGameTele(GameTele& data); bool DeleteGameTele(std::string_view name); diff --git a/src/server/scripts/Commands/cs_tele.cpp b/src/server/scripts/Commands/cs_tele.cpp index 259fd89ad..59ce640ea 100644 --- a/src/server/scripts/Commands/cs_tele.cpp +++ b/src/server/scripts/Commands/cs_tele.cpp @@ -72,7 +72,7 @@ public: if (!player) return false; - if (sObjectMgr->GetGameTele(name)) + if (sObjectMgr->GetGameTele(name, true)) { handler->SendErrorMessage(LANG_COMMAND_TP_ALREADYEXIST); return false;