feat(Scripts/Commands): introduce go creature name (#17910)

* feat(Scripts/Commands): introduce go creature name

* closes https://github.com/azerothcore/azerothcore-wotlk/issues/2315

* Since new command handler the old "go creature" dont take name as argument

* Update cs_go.cpp

* this could be null... so let's avoid stupid crashes

* we only need the first result if there are multiple

* Update cs_go.cpp

* Update rev_1701381015172273800.sql
This commit is contained in:
Kitzunu
2023-12-03 02:57:41 +01:00
committed by GitHub
parent eb1ecc38a5
commit d0f10a12c0
2 changed files with 30 additions and 0 deletions

View File

@@ -47,6 +47,7 @@ public:
{
{ "creature", HandleGoCreatureSpawnIdCommand, SEC_MODERATOR, Console::No },
{ "creature id", HandleGoCreatureCIdCommand, SEC_MODERATOR, Console::No },
{ "creature name", HandleGoCreatureNameCommand, SEC_MODERATOR, Console::No },
{ "gameobject", HandleGoGameObjectSpawnIdCommand, SEC_MODERATOR, Console::No },
{ "gameobject id", HandleGoGameObjectGOIdCommand, SEC_MODERATOR, Console::No },
{ "graveyard", HandleGoGraveyardCommand, SEC_MODERATOR, Console::No },
@@ -117,6 +118,29 @@ public:
return DoTeleport(handler, { spawnpoint->posX, spawnpoint->posY, spawnpoint->posZ }, spawnpoint->mapid);
}
static bool HandleGoCreatureNameCommand(ChatHandler* handler, Tail name)
{
if (!name.data())
return false;
QueryResult result = WorldDatabase.Query("SELECT entry FROM creature_template WHERE name = \"{}\" LIMIT 1" , name.data());
if (!result)
{
handler->SendErrorMessage(LANG_COMMAND_GOCREATNOTFOUND);
return false;
}
uint32 entry = result->Fetch()[0].Get<uint32>();
CreatureData const* spawnpoint = GetCreatureData(handler, entry);
if (!spawnpoint)
{
handler->SendErrorMessage(LANG_COMMAND_GOCREATNOTFOUND);
return false;
}
return DoTeleport(handler, { spawnpoint->posX, spawnpoint->posY, spawnpoint->posZ }, spawnpoint->mapid);
}
static bool HandleGoGameObjectSpawnIdCommand(ChatHandler* handler, uint32 spawnId)
{
GameObjectData const* spawnpoint = sObjectMgr->GetGameObjectData(spawnId);