mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 10:37:02 +00:00
[10377] Simplify use Guild::BroadcastEvent
This commit is contained in:
parent
c5ffa7710b
commit
f2406c1962
6 changed files with 52 additions and 50 deletions
|
|
@ -671,7 +671,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder *holder)
|
|||
|
||||
guild->DisplayGuildBankTabsInfo(this);
|
||||
|
||||
guild->BroadcastEvent(GE_SIGNED_ON, pCurrChar->GetGUID(), 1, pCurrChar->GetName(), "", "");
|
||||
guild->BroadcastEvent(GE_SIGNED_ON, pCurrChar->GetObjectGuid(), pCurrChar->GetName());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -490,9 +490,8 @@ void Guild::DelMember(uint64 guid, bool isDisbanding)
|
|||
// when leader non-exist (at guild load with deleted leader only) not send broadcasts
|
||||
if (oldLeader)
|
||||
{
|
||||
BroadcastEvent(GE_LEADER_CHANGED, 0, 2, oldLeader->Name, best->Name, "");
|
||||
|
||||
BroadcastEvent(GE_LEFT, guid, 1, oldLeader->Name, "", "");
|
||||
BroadcastEvent(GE_LEADER_CHANGED, oldLeader->Name.c_str(), best->Name.c_str());
|
||||
BroadcastEvent(GE_LEFT, guid, oldLeader->Name.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -697,7 +696,7 @@ int32 Guild::GetRank(uint32 LowGuid)
|
|||
|
||||
void Guild::Disband()
|
||||
{
|
||||
BroadcastEvent(GE_DISBANDED, 0, 0, "", "", "");
|
||||
BroadcastEvent(GE_DISBANDED);
|
||||
|
||||
while (!members.empty())
|
||||
{
|
||||
|
|
@ -2350,32 +2349,30 @@ void Guild::MoveFromCharToBank( Player * pl, uint8 PlayerBag, uint8 PlayerSlot,
|
|||
}
|
||||
}
|
||||
|
||||
void Guild::BroadcastEvent(GuildEvents event, uint64 guid, uint8 strCount, std::string str1, std::string str2, std::string str3)
|
||||
void Guild::BroadcastEvent(GuildEvents event, ObjectGuid guid, char const* str1 /*=NULL*/, char const* str2 /*=NULL*/, char const* str3 /*=NULL*/)
|
||||
{
|
||||
WorldPacket data(SMSG_GUILD_EVENT, 1+1+(guid ? 8 : 0));
|
||||
uint8 strCount = !str1 ? 0 : (!str2 ? 1 : (!str3 ? 2 : 3));
|
||||
|
||||
WorldPacket data(SMSG_GUILD_EVENT, 1 + 1 + 1*strCount + (guid.IsEmpty() ? 0 : 8));
|
||||
data << uint8(event);
|
||||
data << uint8(strCount);
|
||||
|
||||
switch(strCount)
|
||||
if (str3)
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
data << str1;
|
||||
break;
|
||||
case 2:
|
||||
data << str1 << str2;
|
||||
break;
|
||||
case 3:
|
||||
data << str1 << str2 << str3;
|
||||
break;
|
||||
default:
|
||||
sLog.outError("Guild::BroadcastEvent: incorrect strings count %u!", strCount);
|
||||
break;
|
||||
data << str2;
|
||||
data << str3;
|
||||
}
|
||||
else if (str2)
|
||||
{
|
||||
data << str1;
|
||||
data << str2;
|
||||
}
|
||||
else if (str1)
|
||||
data << str1;
|
||||
|
||||
if(guid)
|
||||
data << uint64(guid);
|
||||
if (!guid.IsEmpty())
|
||||
data << guid;
|
||||
|
||||
BroadcastPacket(&data);
|
||||
|
||||
|
|
|
|||
|
|
@ -340,7 +340,12 @@ class Guild
|
|||
void BroadcastToOfficers(WorldSession *session, const std::string& msg, uint32 language = LANG_UNIVERSAL);
|
||||
void BroadcastPacketToRank(WorldPacket *packet, uint32 rankId);
|
||||
void BroadcastPacket(WorldPacket *packet);
|
||||
void BroadcastEvent(GuildEvents event, uint64 guid, uint8 strCount, std::string str1, std::string str2, std::string str3);
|
||||
|
||||
void BroadcastEvent(GuildEvents event, ObjectGuid guid, char const* str1 = NULL, char const* str2 = NULL, char const* str3 = NULL);
|
||||
void BroadcastEvent(GuildEvents event, char const* str1 = NULL, char const* str2 = NULL, char const* str3 = NULL)
|
||||
{
|
||||
BroadcastEvent(event, ObjectGuid(), str1, str2, str3);
|
||||
}
|
||||
|
||||
template<class Do>
|
||||
void BroadcastWorker(Do& _do, Player* except = NULL)
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ void WorldSession::HandleGuildRemoveOpcode(WorldPacket& recvPacket)
|
|||
// Put record into guild log
|
||||
guild->LogGuildEvent(GUILD_EVENT_LOG_UNINVITE_PLAYER, GetPlayer()->GetGUIDLow(), GUID_LOPART(plGuid), 0);
|
||||
|
||||
guild->BroadcastEvent(GE_REMOVED, 0, 2, plName, _player->GetName(), "");
|
||||
guild->BroadcastEvent(GE_REMOVED, plName.c_str(), _player->GetName());
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildAcceptOpcode(WorldPacket& /*recvPacket*/)
|
||||
|
|
@ -204,7 +204,7 @@ void WorldSession::HandleGuildAcceptOpcode(WorldPacket& /*recvPacket*/)
|
|||
// Put record into guild log
|
||||
guild->LogGuildEvent(GUILD_EVENT_LOG_JOIN_GUILD, GetPlayer()->GetGUIDLow(), 0, 0);
|
||||
|
||||
guild->BroadcastEvent(GE_JOINED, player->GetGUID(), 1, player->GetName(), "", "");
|
||||
guild->BroadcastEvent(GE_JOINED, player->GetObjectGuid(), player->GetName());
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildDeclineOpcode(WorldPacket& /*recvPacket*/)
|
||||
|
|
@ -294,7 +294,7 @@ void WorldSession::HandleGuildPromoteOpcode(WorldPacket& recvPacket)
|
|||
// Put record into guild log
|
||||
guild->LogGuildEvent(GUILD_EVENT_LOG_PROMOTE_PLAYER, GetPlayer()->GetGUIDLow(), GUID_LOPART(plGuid), newRankId);
|
||||
|
||||
guild->BroadcastEvent(GE_PROMOTION, 0, 3, _player->GetName(), plName, guild->GetRankName(newRankId));
|
||||
guild->BroadcastEvent(GE_PROMOTION, _player->GetName(), plName.c_str(), guild->GetRankName(newRankId).c_str());
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildDemoteOpcode(WorldPacket& recvPacket)
|
||||
|
|
@ -356,7 +356,7 @@ void WorldSession::HandleGuildDemoteOpcode(WorldPacket& recvPacket)
|
|||
// Put record into guild log
|
||||
guild->LogGuildEvent(GUILD_EVENT_LOG_DEMOTE_PLAYER, GetPlayer()->GetGUIDLow(), GUID_LOPART(plGuid), newRankId);
|
||||
|
||||
guild->BroadcastEvent(GE_DEMOTION, 0, 3, _player->GetName(), plName, guild->GetRankName(slot->RankId));
|
||||
guild->BroadcastEvent(GE_DEMOTION, _player->GetName(), plName.c_str(), guild->GetRankName(slot->RankId).c_str());
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildLeaveOpcode(WorldPacket& /*recvPacket*/)
|
||||
|
|
@ -386,7 +386,7 @@ void WorldSession::HandleGuildLeaveOpcode(WorldPacket& /*recvPacket*/)
|
|||
// Put record into guild log
|
||||
guild->LogGuildEvent(GUILD_EVENT_LOG_LEAVE_GUILD, _player->GetGUIDLow(), 0, 0);
|
||||
|
||||
guild->BroadcastEvent(GE_LEFT, _player->GetGUID(), 1, _player->GetName(), "", "");
|
||||
guild->BroadcastEvent(GE_LEFT, _player->GetGUID(), _player->GetName());
|
||||
|
||||
SendGuildCommandResult(GUILD_QUIT_S, guild->GetName(), ERR_PLAYER_NO_MORE_IN_GUILD);
|
||||
}
|
||||
|
|
@ -451,7 +451,7 @@ void WorldSession::HandleGuildLeaderOpcode(WorldPacket& recvPacket)
|
|||
guild->SetLeader(newLeaderGUID);
|
||||
guild->ChangeRank(oldLeader->GetGUID(), GR_OFFICER);
|
||||
|
||||
guild->BroadcastEvent(GE_LEADER_CHANGED, 0, 2, oldLeader->GetName(), name, "");
|
||||
guild->BroadcastEvent(GE_LEADER_CHANGED, oldLeader->GetName(), name.c_str());
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildMOTDOpcode(WorldPacket& recvPacket)
|
||||
|
|
@ -479,7 +479,7 @@ void WorldSession::HandleGuildMOTDOpcode(WorldPacket& recvPacket)
|
|||
|
||||
guild->SetMOTD(MOTD);
|
||||
|
||||
guild->BroadcastEvent(GE_MOTD, 0, 1, MOTD, "", "");
|
||||
guild->BroadcastEvent(GE_MOTD, MOTD.c_str());
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildSetPublicNoteOpcode(WorldPacket& recvPacket)
|
||||
|
|
|
|||
|
|
@ -385,7 +385,7 @@ void WorldSession::LogoutPlayer(bool Save)
|
|||
guild->SetMemberStats(_player->GetGUID());
|
||||
guild->UpdateLogoutTime(_player->GetGUID());
|
||||
|
||||
guild->BroadcastEvent(GE_SIGNED_OFF, _player->GetGUID(), 1, _player->GetName(), "", "");
|
||||
guild->BroadcastEvent(GE_SIGNED_OFF, _player->GetGUID(), _player->GetName());
|
||||
}
|
||||
|
||||
///- Remove pet
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "10376"
|
||||
#define REVISION_NR "10377"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue