[Quest API] Add Goto Player Teleport Methods. (#2379)

* [Quest API] Add Player Teleport Methods.

These methods will allow server operators to teleport players directly to other players via the quest API using the #goto command's functionality.
- Add $client->TeleportToPlayerByCharID(character_id) to Perl.
- Add $client->TeleportToPlayerByName(player_name) to Perl.
- Add $client->TeleportGroupToPlayerByCharID(character_id) to Perl.
- Add $client->TeleportGroupToPlayerByName(player_name) to Perl.
- Add $client->TeleportRaidToPlayerByCharID(character_id) to Perl.
- Add $client->TeleportRaidToPlayerByName(player_name) to Perl.
- Add client:TeleportToPlayerByCharID(character_id) to Lua.
- Add client:TeleportToPlayerByName(player_name) to Lua.
- Add client:TeleportGroupToPlayerByCharID(character_id) to Lua.
- Add client:TeleportGroupToPlayerByName(player_name) to Lua.
- Add client:TeleportRaidToPlayerByCharID(character_id) to Lua.
- Add client:TeleportRaidToPlayerByName(player_name) to Lua.

* Simplify by using repositories

* Simplify

Co-authored-by: Akkadius <akkadius1@gmail.com>
This commit is contained in:
Kinglykrab
2022-08-20 10:23:41 -04:00
committed by GitHub
parent 59691f39d7
commit 3e8d34825a
5 changed files with 126 additions and 31 deletions
+36
View File
@@ -2419,6 +2419,36 @@ void Perl_Client_TaskSelector(Client* self, perl::array task_ids)
self->TaskQuestSetSelector(self, task_count, tasks);
}
bool Perl_Client_TeleportToPlayerByCharacterID(Client* self, uint32 character_id)
{
return self->GotoPlayer(database.GetCharNameByID(character_id));
}
bool Perl_Client_TeleportToPlayerByName(Client* self, std::string player_name)
{
return self->GotoPlayer(player_name);
}
bool Perl_Client_TeleportGroupToPlayerByCharacterID(Client* self, uint32 character_id)
{
return self->GotoPlayerGroup(database.GetCharNameByID(character_id));
}
bool Perl_Client_TeleportGroupToPlayerByName(Client* self, std::string player_name)
{
return self->GotoPlayerGroup(player_name);
}
bool Perl_Client_TeleportRaidToPlayerByCharacterID(Client* self, uint32 character_id)
{
return self->GotoPlayerRaid(database.GetCharNameByID(character_id));
}
bool Perl_Client_TeleportRaidToPlayerByName(Client* self, std::string player_name)
{
return self->GotoPlayerRaid(player_name);
}
void perl_register_client()
{
perl::interpreter perl(PERL_GET_THX);
@@ -2823,6 +2853,12 @@ void perl_register_client()
package.add("TakeMoneyFromPP", (bool(*)(Client*, uint64_t, bool))&Perl_Client_TakeMoneyFromPP);
package.add("TakePlatinum", (bool(*)(Client*, uint32))&Perl_Client_TakePlatinum);
package.add("TakePlatinum", (bool(*)(Client*, uint32, bool))&Perl_Client_TakePlatinum);
package.add("TeleportToPlayerByCharID", &Perl_Client_TeleportToPlayerByCharacterID);
package.add("TeleportToPlayerByName", &Perl_Client_TeleportToPlayerByName);
package.add("TeleportGroupToPlayerByCharID", &Perl_Client_TeleportGroupToPlayerByCharacterID);
package.add("TeleportGroupToPlayerByName", &Perl_Client_TeleportGroupToPlayerByName);
package.add("TeleportRaidToPlayerByCharID", &Perl_Client_TeleportRaidToPlayerByCharacterID);
package.add("TeleportRaidToPlayerByName", &Perl_Client_TeleportRaidToPlayerByName);
package.add("TaskSelector", &Perl_Client_TaskSelector);
package.add("Thirsty", &Perl_Client_Thirsty);
package.add("TrainDiscBySpellID", &Perl_Client_TrainDiscBySpellID);