aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/GuildHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/GuildHandler.cpp')
-rwxr-xr-xsrc/server/game/Handlers/GuildHandler.cpp73
1 files changed, 53 insertions, 20 deletions
diff --git a/src/server/game/Handlers/GuildHandler.cpp b/src/server/game/Handlers/GuildHandler.cpp
index b3c2d4ae030..06536a90db3 100755
--- a/src/server/game/Handlers/GuildHandler.cpp
+++ b/src/server/game/Handlers/GuildHandler.cpp
@@ -645,32 +645,33 @@ void WorldSession::HandleSetGuildBankTabText(WorldPacket& recvData)
guild->SetBankTabText(tabId, text);
}
-void WorldSession::HandleGuildQueryXPOpcode(WorldPacket& recvData)
+void WorldSession::HandleGuildQueryXPOpcode(WorldPacket& recvPacket)
{
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_QUERY_GUILD_XP");
ObjectGuid guildGuid;
- guildGuid[2] = recvData.ReadBit();
- guildGuid[1] = recvData.ReadBit();
- guildGuid[0] = recvData.ReadBit();
- guildGuid[5] = recvData.ReadBit();
- guildGuid[4] = recvData.ReadBit();
- guildGuid[7] = recvData.ReadBit();
- guildGuid[6] = recvData.ReadBit();
- guildGuid[3] = recvData.ReadBit();
-
- recvData.ReadByteSeq(guildGuid[7]);
- recvData.ReadByteSeq(guildGuid[2]);
- recvData.ReadByteSeq(guildGuid[3]);
- recvData.ReadByteSeq(guildGuid[6]);
- recvData.ReadByteSeq(guildGuid[1]);
- recvData.ReadByteSeq(guildGuid[5]);
- recvData.ReadByteSeq(guildGuid[0]);
- recvData.ReadByteSeq(guildGuid[4]);
+ guildGuid[2] = recvPacket.ReadBit();
+ guildGuid[1] = recvPacket.ReadBit();
+ guildGuid[0] = recvPacket.ReadBit();
+ guildGuid[5] = recvPacket.ReadBit();
+ guildGuid[4] = recvPacket.ReadBit();
+ guildGuid[7] = recvPacket.ReadBit();
+ guildGuid[6] = recvPacket.ReadBit();
+ guildGuid[3] = recvPacket.ReadBit();
+
+ recvPacket.ReadByteSeq(guildGuid[7]);
+ recvPacket.ReadByteSeq(guildGuid[2]);
+ recvPacket.ReadByteSeq(guildGuid[3]);
+ recvPacket.ReadByteSeq(guildGuid[6]);
+ recvPacket.ReadByteSeq(guildGuid[1]);
+ recvPacket.ReadByteSeq(guildGuid[5]);
+ recvPacket.ReadByteSeq(guildGuid[0]);
+ recvPacket.ReadByteSeq(guildGuid[4]);
- //if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid))
- // guild->Send SMSG_GUILD_XP
+ if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid))
+ if (guild->IsMember(_player->GetGUID()))
+ guild->SendGuildXP(this);
}
void WorldSession::HandleGuildSetRankPermissionsOpcode(WorldPacket& recvPacket)
@@ -741,3 +742,35 @@ void WorldSession::HandleGuildRequestPartyState(WorldPacket& recvData)
if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid))
guild->HandleGuildPartyRequest(this);
}
+
+void WorldSession::HandleGuildRequestMaxDailyXP(WorldPacket& recvPacket)
+{
+ ObjectGuid guid;
+ guid[0] = recvPacket.ReadBit();
+ guid[3] = recvPacket.ReadBit();
+ guid[5] = recvPacket.ReadBit();
+ guid[1] = recvPacket.ReadBit();
+ guid[4] = recvPacket.ReadBit();
+ guid[6] = recvPacket.ReadBit();
+ guid[7] = recvPacket.ReadBit();
+ guid[2] = recvPacket.ReadBit();
+
+ recvPacket.ReadByteSeq(guid[7]);
+ recvPacket.ReadByteSeq(guid[4]);
+ recvPacket.ReadByteSeq(guid[3]);
+ recvPacket.ReadByteSeq(guid[5]);
+ recvPacket.ReadByteSeq(guid[1]);
+ recvPacket.ReadByteSeq(guid[2]);
+ recvPacket.ReadByteSeq(guid[6]);
+ recvPacket.ReadByteSeq(guid[0]);
+
+ if (Guild* guild = sGuildMgr->GetGuildByGuid(guid))
+ {
+ if (guild->IsMember(_player->GetGUID()))
+ {
+ WorldPacket data(SMSG_GUILD_MAX_DAILY_XP, 8);
+ data << uint64(sWorld->getIntConfig(CONFIG_GUILD_DAILY_XP_CAP));
+ SendPacket(&data);
+ }
+ }
+}