25 playerGuid[7] = recvPacket.
ReadBit();
26 playerGuid[3] = recvPacket.
ReadBit();
27 playerGuid[4] = recvPacket.
ReadBit();
28 guildGuid[3] = recvPacket.
ReadBit();
29 guildGuid[4] = recvPacket.
ReadBit();
30 playerGuid[2] = recvPacket.
ReadBit();
31 playerGuid[6] = recvPacket.
ReadBit();
32 guildGuid[2] = recvPacket.
ReadBit();
33 guildGuid[5] = recvPacket.
ReadBit();
34 playerGuid[1] = recvPacket.
ReadBit();
35 playerGuid[5] = recvPacket.
ReadBit();
36 guildGuid[7] = recvPacket.
ReadBit();
37 playerGuid[0] = recvPacket.
ReadBit();
38 guildGuid[1] = recvPacket.
ReadBit();
39 guildGuid[6] = recvPacket.
ReadBit();
40 guildGuid[0] = recvPacket.
ReadBit();
59 SF_LOG_ERROR(
"guild",
"CMSG_GUILD_QUERY [%s]: Guild: %u Target: %u",
63 if (guild->IsMember(playerGuid))
64 guild->HandleQuery(
this);
70 std::string invitedName = recvPacket.
ReadString(nameLength);
75 guild->HandleInviteMember(
this, invitedName);
82 recvPacket.
ReadGuidMask(playerGuid, 7, 3, 4, 2, 5, 6, 1, 0);
88 guild->HandleRemoveMember(
this, playerGuid);
97 guild->HandleAcceptMember(
this);
107 if (
GetPlayer()->GetLastGuildInviterGUID())
110 inviter->SendDeclineGuildInvitation(
GetPlayer()->GetName());
122 guild->HandleRoster(
this);
131 recvPacket.
ReadGuidMask(targetGuid, 6, 0, 4, 3, 1, 7, 2, 5);
132 recvPacket.
ReadGuidBytes(targetGuid, 1, 7, 2, 5, 3, 4, 0, 6);
137 guild->HandleUpdateMemberRank(
this, targetGuid,
false);
144 recvPacket.
ReadGuidMask(targetGuid, 3, 6, 0, 2, 7, 5, 4, 1);
145 recvPacket.
ReadGuidBytes(targetGuid, 7, 4, 2, 5, 1, 3, 0, 6);
150 guild->HandleUpdateMemberRank(
this, targetGuid,
true);
158 recvPacket >> rankId;
160 recvPacket.
ReadGuidMask(targetGuid, 2, 3, 1, 6, 0, 4, 7, 5);
161 recvPacket.
ReadGuidBytes(targetGuid, 7, 3, 2, 5, 6, 0, 4, 1);
163 SF_LOG_DEBUG(
"guild",
"CMSG_GUILD_ASSIGN_MEMBER_RANK [%s]: Target: %u Rank: %u, Issuer: %u",
167 guild->HandleSetMemberRank(
this, targetGuid,
_player->GetGUID(), rankId);
175 guild->HandleLeaveMember(
this);
183 guild->HandleDisband(
this);
189 std::string motd = recvPacket.
ReadString(motdLength);
193 guild->HandleSetMOTD(
this, motd);
203 bool isPublic = recvPacket.
ReadBit();
207 std::string note = recvPacket.
ReadString(notelength);
210 SF_LOG_DEBUG(
"guild",
"CMSG_GUILD_SET_NOTE [%s]: Target: %u, Note: %s, Public: %u",
214 guild->HandleSetMemberNote(
this, note, playerGuid, isPublic);
223 SF_LOG_DEBUG(
"guild",
"CMSG_GUILD_SET_ACHIEVEMENT_TRACKING: ignoring %u tracked achievements from %s",
229 std::vector<uint32> achievementIds;
230 achievementIds.reserve(count);
232 for (
uint32 i = 0; i < count; ++i)
235 recvPacket >> achievementId;
236 achievementIds.push_back(achievementId);
239 SF_LOG_DEBUG(
"guild",
"CMSG_GUILD_SET_ACHIEVEMENT_TRACKING: %s is tracking %u guild achievements",
247 recvPacket.
ReadGuidMask(guildGuid, 0, 2, 5, 4, 3, 7, 6, 1);
250 SF_LOG_DEBUG(
"guild",
"CMSG_GUILD_QUERY_RANKS [%s]: Guild: %u",
254 if (guild->IsMember(
_player->GetGUID()))
255 guild->SendGuildRankInfo(
this);
261 recvPacket >> rankId;
264 std::string rankName = recvPacket.
ReadString(length);
269 guild->HandleAddNewRank(
this, rankName);
275 recvPacket >> rankId;
280 guild->HandleRemoveRank(
this, rankId);
286 std::string info = recvPacket.
ReadString(length);
291 guild->HandleSetInfo(
this, info);
297 recvPacket >> vendorGuid;
302 SF_LOG_DEBUG(
"guild",
"MSG_SAVE_GUILD_EMBLEM [%s]: Guid: [" UI64FMTD"] Style: %d, Color: %d, BorderStyle: %d, BorderColor: %d, BackgroundColor: %d",
313 guild->HandleSetEmblem(
this, emblemInfo);
326 guild->SendEventLog(
this);
334 guild->SendMoneyInfo(
this);
343 guild->SendPermissions(
this);
353 sendAllSlots = recvPacket.
ReadBit();
384 sendAllSlots = recvPacket.
ReadBit();
393 guild->SendBankList(
this, tabId,
true,
false);
409 if (money &&
GetPlayer()->HasEnoughMoney(money))
411 guild->HandleMemberDepositMoney(
this, money);
428 guild->HandleMemberWithdrawMoney(
this, money);
443 uint32 stackCount, itemId, itemId2 = 0, bankItemCount = 0;
444 uint8 bankSlot, bankTab, toSlot, containerSlot =
NULL_BAG, containerItemSlot =
NULL_SLOT, bankSlot2 = 0, bankTab2 = 0;
445 bool hasContainerSlot, hasContainerItemSlot, hasItemId2, hasBankSlot2, hasBankTab2, hasBankItemCount, bankOnly, autoStore;
447 recvPacket >> stackCount;
448 recvPacket >> bankSlot;
449 recvPacket >> toSlot;
450 recvPacket >> itemId;
451 recvPacket >> bankTab;
453 banker[5] = recvPacket.
ReadBit();
454 hasBankTab2 = !recvPacket.
ReadBit();
455 banker[1] = recvPacket.
ReadBit();
456 hasContainerSlot = !recvPacket.
ReadBit();
457 autoStore = recvPacket.
ReadBit();
458 banker[0] = recvPacket.
ReadBit();
459 hasItemId2 = !recvPacket.
ReadBit();
460 hasBankSlot2 = !recvPacket.
ReadBit();
461 banker[2] = recvPacket.
ReadBit();
462 bankOnly = recvPacket.
ReadBit();
463 banker[4] = recvPacket.
ReadBit();
464 banker[7] = recvPacket.
ReadBit();
465 banker[3] = recvPacket.
ReadBit();
466 hasContainerItemSlot = !recvPacket.
ReadBit();
467 banker[6] = recvPacket.
ReadBit();
468 hasBankItemCount = !recvPacket.
ReadBit();
486 recvPacket >> itemId2;
488 if (hasContainerSlot)
489 recvPacket >> containerSlot;
491 if (hasContainerItemSlot)
492 recvPacket >> containerItemSlot;
495 recvPacket >> bankSlot2;
497 if (hasBankItemCount)
498 recvPacket >> bankItemCount;
501 recvPacket >> bankTab2;
533 guild->HandleBuyBankTab(
this, tabId);
539 std::string name, icon;
544 guid[5] = recvPacket.
ReadBit();
546 guid[1] = recvPacket.
ReadBit();
547 guid[4] = recvPacket.
ReadBit();
548 guid[2] = recvPacket.
ReadBit();
549 guid[7] = recvPacket.
ReadBit();
550 guid[0] = recvPacket.
ReadBit();
551 guid[6] = recvPacket.
ReadBit();
552 guid[3] = recvPacket.
ReadBit();
566 SF_LOG_DEBUG(
"guild",
"CMSG_GUILD_BANK_UPDATE_TAB [%s]: Go: [" UI64FMTD "], TabId: %u, Name: %s, Icon: %s",
569 if (!name.empty() && !icon.empty())
572 guild->HandleSetBankTabInfo(
this, tabId, name, icon);
583 guild->SendBankLog(
this, tabId);
594 guild->SendBankTabText(
this, tabId);
603 std::string text = recvPacket.
ReadString(textLen);
605 SF_LOG_DEBUG(
"guild",
"CMSG_SET_GUILD_BANK_TEXT [%s]: TabId: %u, Text: %s",
GetPlayerInfo().c_str(), tabId, text.c_str());
608 guild->SetBankTabText(tabId, text);
613 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_QUERY_GUILD_XP");
617 recvPacket.
ReadGuidMask(guildGuid, 5, 6, 0, 1, 3, 7, 4, 2);
623 if (guild->IsMember(
_player->GetGUID()))
624 guild->SendGuildXP(
this);
642 recvPacket >> oldRankId;
650 recvPacket >> bankRights;
656 recvPacket >> moneyPerDay;
657 recvPacket >> oldRights;
658 recvPacket >> newRights;
659 recvPacket >> newRankId;
662 std::string rankName = recvPacket.
ReadString(nameLength);
664 SF_LOG_DEBUG(
"guild",
"CMSG_GUILD_SET_RANK_PERMISSIONS [%s]: Rank: %s (%u)",
GetPlayerInfo().c_str(), rankName.c_str(), newRankId);
666 guild->
HandleSetRankInfo(
this, newRankId, rankName, newRights, moneyPerDay, rightsAndSlots);
671 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_GUILD_REQUEST_PARTY_STATE");
675 recvPacket.
ReadGuidMask(guildGuid, 1, 5, 7, 2, 6, 3, 0, 4);
679 guild->HandleGuildPartyRequest(
this);
690 if (guild->IsMember(
_player->GetGUID()))
711 std::vector<GuildReward>
const& rewards =
sGuildMgr->GetGuildRewards();
716 for (
uint32 i = 0; i < rewards.size(); i++)
717 data.
WriteBits(rewards[i].Achievements.size(), 22);
721 for (
uint32 i = 0; i < rewards.size(); i++)
723 for (
uint32 j = 0; j < rewards[i].Achievements.size(); j++)
726 data <<
int32(rewards[i].Racemask);
729 data <<
uint32(rewards[i].Standing);
730 data <<
uint64(rewards[i].Price);
733 data <<
uint32(time(NULL));
744 guild->SendNewsUpdate(
this);
753 recvPacket >> newsId;
762 guild->HandleNewsSetSticky(
this, newsId, sticky);
768 std::string playerName = recvPacket.
ReadString(nameLength);
773 guild->HandleSetNewGuildMaster(
this, playerName);
779 guild->HandleReplaceGuildMaster(
this);
785 for (
int i = 0; i < 6; i++)
788 for (
int i = 0; i < 6; i++)
791 for (
int i = 0; i < 6; i++)
794 for (
int i = 0; i < 6; i++)
797 for (
int i = 0; i < 6; i++)
815 guild->HandleSetBankTabNote(
this, tabId, note);
const uint32 GuildChallengeMaxLevelGoldReward[]
const uint32 GuildChallengeGoldReward[]
@ ERR_GUILD_PLAYER_NOT_IN_GUILD
const uint32 GuildChallengeWeeklyMaximum[]
const uint32 GuildChallengeXPReward[]
std::vector< GuildBankRightsAndSlots > GuildBankRightsAndSlotsVec
@ ERR_GUILDEMBLEM_INVALIDVENDOR
@ ERR_GUILDEMBLEM_NOGUILD
@ EQUIP_ERR_INTERNAL_BAG_ERROR
#define SF_LOG_DEBUG(filterType__,...)
#define SF_LOG_ERROR(filterType__,...)
uint32 GUID_LOPART(uint64 x)
bool normalizePlayerName(std::string &name)
@ PLAYER_FLAGS_AUTO_DECLINE_GUILD
@ GAMEOBJECT_TYPE_GUILD_BANK
@ UNIT_NPC_FLAG_TABARDDESIGNER
@ PLAYER_FIELD_PLAYER_FLAGS
uint32 ReadBits(size_t bits)
void ReadGuidBytes(ObjectGuid &guid, Offsets... offsets)
void ReadByteSeq(uint8 &b)
std::string ReadString(size_t length)
void ReadGuidMask(ObjectGuid &guid, Offsets... offsets)
void WriteBits(T value, size_t bits)
uint32 GetBackgroundColor() const
void ReadPacket(WorldPacket &recv)
uint32 GetBorderStyle() const
uint32 GetBorderColor() const
void SwapItemsWithInventory(Player *player, bool toChar, uint8 tabId, uint8 slotId, uint8 playerBag, uint8 playerSlotId, uint32 splitedAmount)
static void SendCommandResult(WorldSession *session, GuildCommandType type, GuildCommandError errCode, std::string const ¶m="")
void SwapItems(Player *player, uint8 tabId, uint8 slotId, uint8 destTabId, uint8 destSlotId, uint32 splitedAmount)
void HandleSetRankInfo(WorldSession *session, uint8 rankId, std::string const &name, uint32 rights, uint32 moneyPerDay, GuildBankRightsAndSlotsVec const &rightsAndSlots)
void SendBankList(WorldSession *session, uint8 tabId, bool withContent, bool withTabInfo) const
static void SendSaveEmblemResult(WorldSession *session, GuildEmblemError errCode)
static Player * FindPlayer(uint64)
void ApplyModFlag(uint16 index, uint32 flag, bool apply)
void SendEquipError(InventoryResult msg, Item *pItem, Item *pItem2=NULL, uint32 itemid=0)
void SetInGuild(uint32 guildId)
void SetGuildIdInvited(uint32 GuildId)
static bool IsInventoryPos(uint16 pos)
GameObject * GetGameObjectIfCanInteractWith(uint64 guid, GameobjectTypes type) const
void SetLastGuildInviterGUID(uint64 guid)
void RemoveAurasByType(AuraType auraType, uint64 casterGUID=0, Aura *except=NULL, bool negative=true, bool positive=true)
void HandleGuildRequestMaxDailyXP(WorldPacket &recvPacket)
void HandleGuildBankTabNote(WorldPacket &recvData)
void HandleGuildSetNoteOpcode(WorldPacket &recvPacket)
void HandleSaveGuildEmblemOpcode(WorldPacket &recvPacket)
void HandleGuildRequestChallengeUpdate(WorldPacket &recvPacket)
void HandleGuildQueryRanksOpcode(WorldPacket &recvPacket)
void HandleGuildRewardsQueryOpcode(WorldPacket &recvPacket)
void HandleAutoDeclineGuildInvites(WorldPacket &recvPacket)
void HandleGuildRosterOpcode(WorldPacket &recvPacket)
void HandleGuildSetRankPermissionsOpcode(WorldPacket &recvPacket)
void HandleGuildPromoteOpcode(WorldPacket &recvPacket)
void HandleGuildMOTDOpcode(WorldPacket &recvPacket)
void HandleGuildReplaceGuildMaster(WorldPacket &recvPacket)
std::string GetPlayerInfo() const
void HandleGuildBankDepositMoney(WorldPacket &recvData)
void HandleGuildBankBuyTab(WorldPacket &recvData)
Player * GetPlayer() const
void HandleGuildEventLogQueryOpcode(WorldPacket &recvPacket)
void HandleGuildSetAchievementTracking(WorldPacket &recvPacket)
void HandleQueryGuildBankTabText(WorldPacket &recvData)
void HandleGuildSetGuildMaster(WorldPacket &recvPacket)
void HandleGuildBankLogQuery(WorldPacket &recvData)
void HandleGuildAcceptOpcode(WorldPacket &recvPacket)
void HandleGuildAssignRankOpcode(WorldPacket &recvPacket)
void HandleGuildInviteOpcode(WorldPacket &recvPacket)
void HandleGuildDisbandOpcode(WorldPacket &recvPacket)
void SendPacket(WorldPacket const *packet, bool forced=false)
Send a packet to the client.
void HandleGuildBankWithdrawMoney(WorldPacket &recvData)
void HandleGuildAddRankOpcode(WorldPacket &recvPacket)
void HandleGuildQueryXPOpcode(WorldPacket &recvData)
void HandleGuildBankSwapItems(WorldPacket &recvData)
void HandleGuildBankMoneyWithdrawn(WorldPacket &recvData)
void HandleGuildQueryOpcode(WorldPacket &recvPacket)
void HandleGuildDeclineOpcode(WorldPacket &recvPacket)
void HandleGuildBankerActivate(WorldPacket &recvData)
void HandleGuildRequestPartyState(WorldPacket &recvPacket)
void HandleGuildLeaveOpcode(WorldPacket &recvPacket)
void HandleGuildChangeInfoTextOpcode(WorldPacket &recvPacket)
void HandleSetGuildBankTabText(WorldPacket &recvData)
void HandleGuildQueryNewsOpcode(WorldPacket &recvPacket)
void HandleGuildNewsUpdateStickyOpcode(WorldPacket &recvPacket)
void HandleGuildRemoveOpcode(WorldPacket &recvPacket)
void HandleGuildBankUpdateTab(WorldPacket &recvData)
void HandleGuildPermissions(WorldPacket &recvData)
void HandleGuildDemoteOpcode(WorldPacket &recvPacket)
void HandleGuildDelRankOpcode(WorldPacket &recvPacket)
void HandleGuildBankQueryTab(WorldPacket &recvData)
@ SMSG_GUILD_CHALLENGE_UPDATED
@ SMSG_GUILD_REWARDS_LIST
@ SMSG_GUILD_MAX_DAILY_XP
@ CONFIG_GUILD_DAILY_XP_CAP