diff options
Diffstat (limited to 'src/server/game/Groups/Group.cpp')
-rw-r--r-- | src/server/game/Groups/Group.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index d49255cff1e..8877839e2af 100644 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -256,6 +256,8 @@ bool Group::AddInvite(Player *player) player->SetGroupInvite(this); + sScriptMgr.OnGroupInviteMember(this, player->GetGUID()); + return true; } @@ -314,6 +316,7 @@ bool Group::AddMember(const uint64 &guid, const char* name) return false; SendUpdate(); + sScriptMgr.OnGroupAddMember(this, guid); Player *player = sObjectMgr.GetPlayer(guid); if (player) @@ -363,6 +366,8 @@ uint32 Group::RemoveMember(const uint64 &guid, const RemoveMethod &method) else if (isLFGGroup() && !isLfgDungeonComplete()) sLFGMgr.OfferContinue(this); + sScriptMgr.OnGroupRemoveMember(this, guid, method); + // remove member and change leader (if need) only if strong more 2 members _before_ member remove if (GetMembersCount() > (isBGGroup() ? 1u : 2u)) // in BG group case allow 1 members group { @@ -426,6 +431,7 @@ void Group::ChangeLeader(const uint64 &guid) if (slot == m_memberSlots.end()) return; + sScriptMgr.OnGroupChangeLeader(this, m_leaderGuid, guid); _setLeader(guid); WorldPacket data(SMSG_GROUP_SET_LEADER, slot->name.size()+1); @@ -436,8 +442,9 @@ void Group::ChangeLeader(const uint64 &guid) void Group::Disband(bool hideDestroy /* = false */) { - Player *player; + sScriptMgr.OnGroupDisband(this); + Player *player; for (member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr) { player = sObjectMgr.GetPlayer(citr->guid); |