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:
@@ -0,0 +1,6 @@
|
|||||||
|
--
|
||||||
|
DELETE FROM `command` WHERE `name`='go creature name';
|
||||||
|
INSERT INTO `command` (`name`, `security`, `help`) VALUES
|
||||||
|
('go creature name', 1, 'Syntax: .go creature name #name\r\nTeleports you to the first spawn for the given creature name.\r\n*If* more than one creature is found, then you are teleported to the first that is found inside the database.');
|
||||||
|
|
||||||
|
UPDATE `command` SET `help` = 'Syntax: .go creature id #creature_entry\r\nTeleports you to the given creature entry.\r\n*If* more than one creature is found, then you are teleported to the first that is found inside the database.' WHERE `name` = 'go creature id';
|
||||||
@@ -47,6 +47,7 @@ public:
|
|||||||
{
|
{
|
||||||
{ "creature", HandleGoCreatureSpawnIdCommand, SEC_MODERATOR, Console::No },
|
{ "creature", HandleGoCreatureSpawnIdCommand, SEC_MODERATOR, Console::No },
|
||||||
{ "creature id", HandleGoCreatureCIdCommand, 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", HandleGoGameObjectSpawnIdCommand, SEC_MODERATOR, Console::No },
|
||||||
{ "gameobject id", HandleGoGameObjectGOIdCommand, SEC_MODERATOR, Console::No },
|
{ "gameobject id", HandleGoGameObjectGOIdCommand, SEC_MODERATOR, Console::No },
|
||||||
{ "graveyard", HandleGoGraveyardCommand, 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);
|
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)
|
static bool HandleGoGameObjectSpawnIdCommand(ChatHandler* handler, uint32 spawnId)
|
||||||
{
|
{
|
||||||
GameObjectData const* spawnpoint = sObjectMgr->GetGameObjectData(spawnId);
|
GameObjectData const* spawnpoint = sObjectMgr->GetGameObjectData(spawnId);
|
||||||
|
|||||||
Reference in New Issue
Block a user