diff options
author | Spp <none@none> | 2010-11-23 20:49:36 +0100 |
---|---|---|
committer | Spp <none@none> | 2010-11-23 20:49:36 +0100 |
commit | d3c94781537986f789afbd13a2c0ace4d9e5ac7c (patch) | |
tree | 9838fc8bbdcd376bf1ed6721a79d179243491562 | |
parent | f25cbacf723ad200eea58bf7d053934a98770f18 (diff) |
Core/Groups: Add kicker and kick reason to RemoveMember
--HG--
branch : trunk
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 4 | ||||
-rwxr-xr-x | src/server/game/Entities/Player/Player.h | 2 | ||||
-rwxr-xr-x | src/server/game/Groups/Group.cpp | 4 | ||||
-rwxr-xr-x | src/server/game/Groups/Group.h | 2 | ||||
-rwxr-xr-x | src/server/game/Scripting/ScriptMgr.cpp | 4 | ||||
-rwxr-xr-x | src/server/game/Scripting/ScriptMgr.h | 4 | ||||
-rwxr-xr-x | src/server/game/Server/Protocol/Handlers/GroupHandler.cpp | 4 | ||||
-rw-r--r-- | src/server/scripts/World/dungeon_finder.cpp | 4 |
8 files changed, 14 insertions, 14 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index b6567dfb7fb..78417213e8d 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2593,11 +2593,11 @@ void Player::UninviteFromGroup() } } -void Player::RemoveFromGroup(Group* group, uint64 guid, RemoveMethod method /* = GROUP_REMOVEMETHOD_DEFAULT*/) +void Player::RemoveFromGroup(Group* group, uint64 guid, RemoveMethod method /* = GROUP_REMOVEMETHOD_DEFAULT*/, uint64 kicker /* = 0 */, const char* reason /* = NULL */) { if (group) { - if (group->RemoveMember(guid, method) <= 1) + if (group->RemoveMember(guid, method, kicker, reason) <= 1) { // group->Disband(); already disbanded in RemoveMember sObjectMgr.RemoveGroup(group); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 7e151769810..f24cd6b3e92 100755 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1710,7 +1710,7 @@ class Player : public Unit, public GridObject<Player> bool IsInSameGroupWith(Player const* p) const; bool IsInSameRaidWith(Player const* p) const { return p == this || (GetGroup() != NULL && GetGroup() == p->GetGroup()); } void UninviteFromGroup(); - static void RemoveFromGroup(Group* group, uint64 guid, RemoveMethod method = GROUP_REMOVEMETHOD_DEFAULT); + static void RemoveFromGroup(Group* group, uint64 guid, RemoveMethod method = GROUP_REMOVEMETHOD_DEFAULT, uint64 kicker = 0 , const char* reason = NULL); void RemoveFromGroup(RemoveMethod method = GROUP_REMOVEMETHOD_DEFAULT) { RemoveFromGroup(GetGroup(),GetGUID(), method); } void SendUpdateToOutOfRangeGroupMembers(); diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index 2d6477fbf5a..d8c3fce87ad 100755 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -354,11 +354,11 @@ bool Group::AddMember(const uint64 &guid, const char* name) return true; } -uint32 Group::RemoveMember(const uint64 &guid, const RemoveMethod &method) +uint32 Group::RemoveMember(const uint64 &guid, const RemoveMethod &method /* = GROUP_REMOVEMETHOD_DEFAULT */, uint64 kicker /* = 0 */, const char* reason /* = NULL */) { BroadcastGroupUpdate(); - sScriptMgr.OnGroupRemoveMember(this, guid, method); + sScriptMgr.OnGroupRemoveMember(this, guid, method, kicker, reason); // remove member and change leader (if need) only if strong more 2 members _before_ member remove (BG allow 1 member group) if (GetMembersCount() > (isBGGroup() ? 1u : 2u)) diff --git a/src/server/game/Groups/Group.h b/src/server/game/Groups/Group.h index 28ac362b4da..64b61732c1b 100755 --- a/src/server/game/Groups/Group.h +++ b/src/server/game/Groups/Group.h @@ -196,7 +196,7 @@ class Group void RemoveAllInvites(); bool AddLeaderInvite(Player *player); bool AddMember(const uint64 &guid, const char* name); - uint32 RemoveMember(const uint64 &guid, const RemoveMethod &method = GROUP_REMOVEMETHOD_DEFAULT); + uint32 RemoveMember(const uint64 &guid, const RemoveMethod &method = GROUP_REMOVEMETHOD_DEFAULT, uint64 kicker = 0, const char* reason = NULL); void ChangeLeader(const uint64 &guid); void SetLootMethod(LootMethod method) { m_lootMethod = method; } void SetLooterGuid(const uint64 &guid) { m_looterGuid = guid; } diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index bda7cc2fe18..a671247c10a 100755 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -1267,10 +1267,10 @@ void ScriptMgr::OnGroupInviteMember(Group* group, uint64 guid) FOREACH_SCRIPT(GroupScript)->OnInviteMember(group, guid); } -void ScriptMgr::OnGroupRemoveMember(Group* group, uint64 guid, RemoveMethod method) +void ScriptMgr::OnGroupRemoveMember(Group* group, uint64 guid, RemoveMethod method, uint64 kicker, const char* reason) { ASSERT(group); - FOREACH_SCRIPT(GroupScript)->OnRemoveMember(group, guid, method); + FOREACH_SCRIPT(GroupScript)->OnRemoveMember(group, guid, method, kicker, reason); } void ScriptMgr::OnGroupChangeLeader(Group* group, uint64 newLeaderGuid, uint64 oldLeaderGuid) diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index d55cb79196c..f2ec1cdf9ab 100755 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -748,7 +748,7 @@ public: virtual void OnAddMember(Group* /*group*/, uint64 /*guid*/) { } virtual void OnInviteMember(Group* /*group*/, uint64 /*guid*/) { } - virtual void OnRemoveMember(Group* /*group*/, uint64 /*guid*/, RemoveMethod& /*method*/) { } + virtual void OnRemoveMember(Group* /*group*/, uint64 /*guid*/, RemoveMethod& /*method*/, uint64 /*kicker*/, const char* /*reason*/) { } virtual void OnChangeLeader(Group* /*group*/, uint64 /*newLeaderGuid*/, uint64 /*oldLeaderGuid*/) { } virtual void OnDisband(Group* /*group*/) { } }; @@ -965,7 +965,7 @@ class ScriptMgr public: /* GroupScript */ void OnGroupAddMember(Group* group, uint64 guid); void OnGroupInviteMember(Group* group, uint64 guid); - void OnGroupRemoveMember(Group* group, uint64 guid, RemoveMethod method); + void OnGroupRemoveMember(Group* group, uint64 guid, RemoveMethod method, uint64 kicker, const char* reason); void OnGroupChangeLeader(Group* group, uint64 newLeaderGuid, uint64 oldLeaderGuid); void OnGroupDisband(Group* group); diff --git a/src/server/game/Server/Protocol/Handlers/GroupHandler.cpp b/src/server/game/Server/Protocol/Handlers/GroupHandler.cpp index 9946bc60538..42b2dd2092d 100755 --- a/src/server/game/Server/Protocol/Handlers/GroupHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/GroupHandler.cpp @@ -281,7 +281,7 @@ void WorldSession::HandleGroupUninviteGuidOpcode(WorldPacket & recv_data) if (grp->isLFGGroup()) sLFGMgr.InitBoot(grp, GUID_LOPART(GetPlayer()->GetGUID()), GUID_LOPART(guid), reason); else - Player::RemoveFromGroup(grp, guid, GROUP_REMOVEMETHOD_KICK); + Player::RemoveFromGroup(grp, guid, GROUP_REMOVEMETHOD_KICK, GetPlayer()->GetGUID(), reason.c_str()); return; } @@ -326,7 +326,7 @@ void WorldSession::HandleGroupUninviteOpcode(WorldPacket & recv_data) if (grp->isLFGGroup()) sLFGMgr.InitBoot(grp, GUID_LOPART(GetPlayer()->GetGUID()), GUID_LOPART(guid), ""); else - Player::RemoveFromGroup(grp, guid, GROUP_REMOVEMETHOD_KICK); + Player::RemoveFromGroup(grp, guid, GROUP_REMOVEMETHOD_KICK, GetPlayer()->GetGUID()); return; } diff --git a/src/server/scripts/World/dungeon_finder.cpp b/src/server/scripts/World/dungeon_finder.cpp index 31566049ad8..805d32539d5 100644 --- a/src/server/scripts/World/dungeon_finder.cpp +++ b/src/server/scripts/World/dungeon_finder.cpp @@ -51,10 +51,10 @@ public: sLFGMgr.Leave(plr); } - void OnRemoveMember(Group* group, uint64 guid, RemoveMethod& method) + void OnRemoveMember(Group* group, uint64 guid, RemoveMethod& method, uint64 kicker, const char* reason) { uint64 gguid = group->GetGUID(); - sLog.outDebug("OnRemoveMember [" UI64FMTD "]: remove [" UI64FMTD "] Method: %d", gguid, guid, method); + sLog.outDebug("OnRemoveMember [" UI64FMTD "]: remove [" UI64FMTD "] Method: %d Kicker: [" UI64FMTD "] Reason: %s", gguid, guid, method, kicker, (reason ? reason : "")); if (!gguid) return; |