[Quest API] Add GetLeader() and GetLeaderName() to Perl/Lua. (#2701)

* [Quest API] Add $raid->GetLeader() and $raid->GetLeaderName()

* Remove semicolon

* Tweaks

* Remove inline

* Add LUA compatibility

* Add GetLeaderName() to LUA

* Cast leadername to string

* Fix GetLeaderName return type

* Tweak
This commit is contained in:
Vayle 2023-01-03 20:17:19 -05:00 committed by GitHub
parent a80a6de59f
commit 6e1c4b768f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 0 deletions

View File

@ -83,6 +83,16 @@ bool Lua_Raid::IsLeader(Lua_Client c) {
return self->IsLeader(c);
}
Lua_Client Lua_Raid::GetLeader() {
Lua_Safe_Call_Class(Lua_Client);
return self->GetLeader();
}
std::string Lua_Raid::GetLeaderName() {
Lua_Safe_Call_String();
return self->GetLeaderName();
}
bool Lua_Raid::IsGroupLeader(const char *name) {
Lua_Safe_Call_Bool();
return self->IsGroupLeader(name);
@ -181,6 +191,8 @@ luabind::scope lua_register_raid() {
.def("IsGroupLeader", (bool(Lua_Raid::*)(Lua_Client))&Lua_Raid::IsGroupLeader)
.def("IsLeader", (bool(Lua_Raid::*)(const char*))&Lua_Raid::IsLeader)
.def("IsLeader", (bool(Lua_Raid::*)(Lua_Client))&Lua_Raid::IsLeader)
.def("GetLeader", (Lua_Client(Lua_Raid::*)(void))&Lua_Raid::GetLeader)
.def("GetLeaderName", (std::string(Lua_Raid::*)(void)) & Lua_Raid::GetLeaderName)
.def("IsRaidMember", (bool(Lua_Raid::*)(const char*))&Lua_Raid::IsRaidMember)
.def("IsRaidMember", (bool(Lua_Raid::*)(Lua_Client))&Lua_Raid::IsRaidMember)
.def("RaidCount", (int(Lua_Raid::*)(void))&Lua_Raid::RaidCount)

View File

@ -40,6 +40,8 @@ public:
void BalanceHP(int penalty, uint32 group_id);
bool IsLeader(const char *c);
bool IsLeader(Lua_Client c);
Lua_Client GetLeader();
std::string GetLeaderName();
bool IsGroupLeader(const char *name);
bool IsGroupLeader(Lua_Client c);
int GetHighestLevel();

View File

@ -78,6 +78,16 @@ bool Perl_Raid_IsLeader(Raid* self, Client* c) // @categories Raid
return self->IsLeader(c);
}
Client* Perl_Raid_GetLeader(Raid* self) // @categories Raid
{
return self->GetLeader();
}
std::string Perl_Raid_GetLeaderName(Raid* self) // @categories Raid
{
return self->GetLeaderName();
}
bool Perl_Raid_IsGroupLeader(Raid* self, const char* who) // @categories Group, Raid
{
return self->IsGroupLeader(who);
@ -165,6 +175,8 @@ void perl_register_raid()
package.add("GetID", &Perl_Raid_GetID);
package.add("GetLowestLevel", &Perl_Raid_GetLowestLevel);
package.add("GetMember", &Perl_Raid_GetMember);
package.add("GetLeader", &Perl_Raid_GetLeader);
package.add("GetLeaderName", &Perl_Raid_GetLeaderName);
package.add("GetTotalRaidDamage", &Perl_Raid_GetTotalRaidDamage);
package.add("GroupCount", &Perl_Raid_GroupCount);
package.add("IsGroupLeader", (bool(*)(Raid*, const char*))&Perl_Raid_IsGroupLeader);

View File

@ -104,6 +104,7 @@ public:
void SetLeader(Client* c) { leader = c; }
Client* GetLeader() { return leader; }
std::string GetLeaderName() { return leadername; }
bool IsLeader(Client* c) { return c == leader; }
bool IsLeader(const char* name) { return !strcmp(leadername, name); }
void SetRaidLeader(const char *wasLead, const char *name);