mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 17:54:48 +01:00
Core/Guilds: Implemented some guild packets, some basic guild functions is working, though most are still WIP/TODO
This commit is contained in:
@@ -36,7 +36,7 @@ inline Guild* _GetPlayerGuild(WorldSession* session, bool sendError = false)
|
||||
if (Guild* guild = sGuildMgr->GetGuildById(guildId)) // Find guild by id
|
||||
return guild;
|
||||
if (sendError)
|
||||
Guild::SendCommandResult(session, GUILD_CREATE_S, ERR_GUILD_PLAYER_NOT_IN_GUILD);
|
||||
Guild::SendCommandResult(session, GUILD_CREATE, ERR_GUILD_PLAYER_NOT_IN_GUILD);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ void WorldSession::HandleGuildQueryOpcode(WorldPacket& recvPacket)
|
||||
return;
|
||||
}
|
||||
|
||||
Guild::SendCommandResult(this, GUILD_CREATE_S, ERR_GUILD_PLAYER_NOT_IN_GUILD);
|
||||
Guild::SendCommandResult(this, GUILD_CREATE, ERR_GUILD_PLAYER_NOT_IN_GUILD);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildCreateOpcode(WorldPacket& recvPacket)
|
||||
@@ -79,8 +79,8 @@ void WorldSession::HandleGuildInviteOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_INVITE");
|
||||
|
||||
std::string invitedName;
|
||||
recvPacket >> invitedName;
|
||||
uint32 nameLength = recvPacket.ReadBits(7);
|
||||
std::string invitedName = recvPacket.ReadString(nameLength);
|
||||
|
||||
if (normalizePlayerName(invitedName))
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
@@ -91,12 +91,28 @@ void WorldSession::HandleGuildRemoveOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_REMOVE");
|
||||
|
||||
std::string playerName;
|
||||
recvPacket >> playerName;
|
||||
ObjectGuid playerGuid;
|
||||
|
||||
if (normalizePlayerName(playerName))
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleRemoveMember(this, playerName);
|
||||
playerGuid[6] = recvPacket.ReadBit();
|
||||
playerGuid[5] = recvPacket.ReadBit();
|
||||
playerGuid[4] = recvPacket.ReadBit();
|
||||
playerGuid[0] = recvPacket.ReadBit();
|
||||
playerGuid[1] = recvPacket.ReadBit();
|
||||
playerGuid[3] = recvPacket.ReadBit();
|
||||
playerGuid[7] = recvPacket.ReadBit();
|
||||
playerGuid[2] = recvPacket.ReadBit();
|
||||
|
||||
recvPacket.ReadByteSeq(playerGuid[2]);
|
||||
recvPacket.ReadByteSeq(playerGuid[6]);
|
||||
recvPacket.ReadByteSeq(playerGuid[5]);
|
||||
recvPacket.ReadByteSeq(playerGuid[7]);
|
||||
recvPacket.ReadByteSeq(playerGuid[1]);
|
||||
recvPacket.ReadByteSeq(playerGuid[4]);
|
||||
recvPacket.ReadByteSeq(playerGuid[3]);
|
||||
recvPacket.ReadByteSeq(playerGuid[0]);
|
||||
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleRemoveMember(this, playerGuid);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildAcceptOpcode(WorldPacket& /*recvPacket*/)
|
||||
@@ -129,36 +145,114 @@ void WorldSession::HandleGuildRosterOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_ROSTER");
|
||||
|
||||
recvPacket.rfinish();
|
||||
|
||||
uint64 guildGuid = 0;
|
||||
|
||||
if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid))
|
||||
if (guild->IsMember(GetPlayer()->GetGUID()))
|
||||
guild->HandleRoster(this);
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleRoster(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildPromoteOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_PROMOTE");
|
||||
|
||||
std::string playerName;
|
||||
recvPacket >> playerName;
|
||||
ObjectGuid targetGuid;
|
||||
|
||||
if (normalizePlayerName(playerName))
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleUpdateMemberRank(this, playerName, false);
|
||||
targetGuid[7] = recvPacket.ReadBit();
|
||||
targetGuid[2] = recvPacket.ReadBit();
|
||||
targetGuid[5] = recvPacket.ReadBit();
|
||||
targetGuid[6] = recvPacket.ReadBit();
|
||||
targetGuid[1] = recvPacket.ReadBit();
|
||||
targetGuid[0] = recvPacket.ReadBit();
|
||||
targetGuid[3] = recvPacket.ReadBit();
|
||||
targetGuid[4] = recvPacket.ReadBit();
|
||||
|
||||
recvPacket.ReadByteSeq(targetGuid[0]);
|
||||
recvPacket.ReadByteSeq(targetGuid[5]);
|
||||
recvPacket.ReadByteSeq(targetGuid[2]);
|
||||
recvPacket.ReadByteSeq(targetGuid[3]);
|
||||
recvPacket.ReadByteSeq(targetGuid[6]);
|
||||
recvPacket.ReadByteSeq(targetGuid[4]);
|
||||
recvPacket.ReadByteSeq(targetGuid[1]);
|
||||
recvPacket.ReadByteSeq(targetGuid[7]);
|
||||
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleUpdateMemberRank(this, targetGuid, false);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildDemoteOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_DEMOTE");
|
||||
|
||||
std::string playerName;
|
||||
recvPacket >> playerName;
|
||||
ObjectGuid targetGuid;
|
||||
|
||||
if (normalizePlayerName(playerName))
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleUpdateMemberRank(this, playerName, true);
|
||||
targetGuid[7] = recvPacket.ReadBit();
|
||||
targetGuid[1] = recvPacket.ReadBit();
|
||||
targetGuid[5] = recvPacket.ReadBit();
|
||||
targetGuid[6] = recvPacket.ReadBit();
|
||||
targetGuid[2] = recvPacket.ReadBit();
|
||||
targetGuid[3] = recvPacket.ReadBit();
|
||||
targetGuid[0] = recvPacket.ReadBit();
|
||||
targetGuid[4] = recvPacket.ReadBit();
|
||||
|
||||
recvPacket.ReadByteSeq(targetGuid[1]);
|
||||
recvPacket.ReadByteSeq(targetGuid[2]);
|
||||
recvPacket.ReadByteSeq(targetGuid[7]);
|
||||
recvPacket.ReadByteSeq(targetGuid[5]);
|
||||
recvPacket.ReadByteSeq(targetGuid[6]);
|
||||
recvPacket.ReadByteSeq(targetGuid[0]);
|
||||
recvPacket.ReadByteSeq(targetGuid[4]);
|
||||
recvPacket.ReadByteSeq(targetGuid[3]);
|
||||
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleUpdateMemberRank(this, targetGuid, true);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildAssignRankOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_ASSIGN_MEMBER_RANK");
|
||||
|
||||
ObjectGuid targetGuid;
|
||||
ObjectGuid setterGuid;
|
||||
|
||||
uint32 rankId;
|
||||
recvPacket >> rankId;
|
||||
|
||||
targetGuid[1] = recvPacket.ReadBit();
|
||||
targetGuid[7] = recvPacket.ReadBit();
|
||||
setterGuid[4] = recvPacket.ReadBit();
|
||||
setterGuid[2] = recvPacket.ReadBit();
|
||||
targetGuid[4] = recvPacket.ReadBit();
|
||||
targetGuid[5] = recvPacket.ReadBit();
|
||||
targetGuid[6] = recvPacket.ReadBit();
|
||||
setterGuid[1] = recvPacket.ReadBit();
|
||||
setterGuid[7] = recvPacket.ReadBit();
|
||||
targetGuid[2] = recvPacket.ReadBit();
|
||||
targetGuid[3] = recvPacket.ReadBit();
|
||||
targetGuid[0] = recvPacket.ReadBit();
|
||||
setterGuid[6] = recvPacket.ReadBit();
|
||||
setterGuid[3] = recvPacket.ReadBit();
|
||||
setterGuid[0] = recvPacket.ReadBit();
|
||||
setterGuid[5] = recvPacket.ReadBit();
|
||||
|
||||
recvPacket.ReadByteSeq(targetGuid[0]);
|
||||
recvPacket.ReadByteSeq(setterGuid[1]);
|
||||
recvPacket.ReadByteSeq(setterGuid[3]);
|
||||
recvPacket.ReadByteSeq(setterGuid[5]);
|
||||
recvPacket.ReadByteSeq(targetGuid[7]);
|
||||
recvPacket.ReadByteSeq(targetGuid[3]);
|
||||
recvPacket.ReadByteSeq(setterGuid[0]);
|
||||
recvPacket.ReadByteSeq(targetGuid[1]);
|
||||
recvPacket.ReadByteSeq(setterGuid[6]);
|
||||
recvPacket.ReadByteSeq(targetGuid[2]);
|
||||
recvPacket.ReadByteSeq(targetGuid[5]);
|
||||
recvPacket.ReadByteSeq(targetGuid[4]);
|
||||
recvPacket.ReadByteSeq(setterGuid[2]);
|
||||
recvPacket.ReadByteSeq(setterGuid[4]);
|
||||
recvPacket.ReadByteSeq(targetGuid[6]);
|
||||
recvPacket.ReadByteSeq(setterGuid[7]);
|
||||
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleSetMemberRank(this, targetGuid, setterGuid, rankId);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildLeaveOpcode(WorldPacket& /*recvPacket*/)
|
||||
@@ -193,107 +287,104 @@ void WorldSession::HandleGuildMOTDOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_MOTD");
|
||||
|
||||
std::string motd; // Empty by default
|
||||
if (!recvPacket.empty())
|
||||
recvPacket >> motd;
|
||||
uint32 motdLength = recvPacket.ReadBits(11);
|
||||
std::string motd = recvPacket.ReadString(motdLength);
|
||||
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleSetMOTD(this, motd);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildSetPublicNoteOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildSetNoteOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_SET_PUBLIC_NOTE");
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_SET_NOTE");
|
||||
|
||||
std::string playerName;
|
||||
recvPacket >> playerName;
|
||||
ObjectGuid playerGuid;
|
||||
|
||||
std::string publicNote;
|
||||
recvPacket >> publicNote;
|
||||
playerGuid[1] = recvPacket.ReadBit();
|
||||
playerGuid[4] = recvPacket.ReadBit();
|
||||
playerGuid[5] = recvPacket.ReadBit();
|
||||
playerGuid[3] = recvPacket.ReadBit();
|
||||
playerGuid[0] = recvPacket.ReadBit();
|
||||
playerGuid[7] = recvPacket.ReadBit();
|
||||
bool type = recvPacket.ReadBit(); // 0 == Officer, 1 == Public
|
||||
playerGuid[6] = recvPacket.ReadBit();
|
||||
uint32 noteLength = recvPacket.ReadBits(8);
|
||||
playerGuid[2] = recvPacket.ReadBit();
|
||||
|
||||
if (normalizePlayerName(playerName))
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleSetMemberNote(this, playerName, publicNote, false);
|
||||
recvPacket.ReadByteSeq(playerGuid[4]);
|
||||
recvPacket.ReadByteSeq(playerGuid[5]);
|
||||
recvPacket.ReadByteSeq(playerGuid[0]);
|
||||
recvPacket.ReadByteSeq(playerGuid[3]);
|
||||
recvPacket.ReadByteSeq(playerGuid[1]);
|
||||
recvPacket.ReadByteSeq(playerGuid[6]);
|
||||
recvPacket.ReadByteSeq(playerGuid[7]);
|
||||
std::string note = recvPacket.ReadString(noteLength);
|
||||
recvPacket.ReadByteSeq(playerGuid[2]);
|
||||
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleSetMemberNote(this, note, playerGuid, type);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildSetOfficerNoteOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildQueryRanksOpcode(WorldPacket& recvData)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_SET_OFFICER_NOTE");
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_QUERY_RANKS");
|
||||
|
||||
std::string playerName;
|
||||
recvPacket >> playerName;
|
||||
ObjectGuid guildGuid;
|
||||
|
||||
std::string officerNote;
|
||||
recvPacket >> officerNote;
|
||||
guildGuid[2] = recvData.ReadBit();
|
||||
guildGuid[3] = recvData.ReadBit();
|
||||
guildGuid[0] = recvData.ReadBit();
|
||||
guildGuid[6] = recvData.ReadBit();
|
||||
guildGuid[4] = recvData.ReadBit();
|
||||
guildGuid[7] = recvData.ReadBit();
|
||||
guildGuid[5] = recvData.ReadBit();
|
||||
guildGuid[1] = recvData.ReadBit();
|
||||
|
||||
if (normalizePlayerName(playerName))
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleSetMemberNote(this, playerName, officerNote, true);
|
||||
}
|
||||
recvData.ReadByteSeq(guildGuid[3]);
|
||||
recvData.ReadByteSeq(guildGuid[4]);
|
||||
recvData.ReadByteSeq(guildGuid[5]);
|
||||
recvData.ReadByteSeq(guildGuid[7]);
|
||||
recvData.ReadByteSeq(guildGuid[1]);
|
||||
recvData.ReadByteSeq(guildGuid[0]);
|
||||
recvData.ReadByteSeq(guildGuid[6]);
|
||||
recvData.ReadByteSeq(guildGuid[2]);
|
||||
|
||||
void WorldSession::HandleGuildRankOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_RANK");
|
||||
|
||||
Guild* guild = _GetPlayerGuild(this, true);
|
||||
if (!guild)
|
||||
{
|
||||
recvPacket.rpos(recvPacket.wpos());
|
||||
return;
|
||||
}
|
||||
|
||||
uint32 rankId;
|
||||
recvPacket >> rankId;
|
||||
|
||||
uint32 rights;
|
||||
recvPacket >> rights;
|
||||
|
||||
std::string rankName;
|
||||
recvPacket >> rankName;
|
||||
|
||||
uint32 money;
|
||||
recvPacket >> money;
|
||||
|
||||
GuildBankRightsAndSlotsVec rightsAndSlots(GUILD_BANK_MAX_TABS);
|
||||
for (uint8 tabId = 0; tabId < GUILD_BANK_MAX_TABS; ++tabId)
|
||||
{
|
||||
uint32 bankRights;
|
||||
uint32 slots;
|
||||
|
||||
recvPacket >> bankRights;
|
||||
recvPacket >> slots;
|
||||
|
||||
rightsAndSlots[tabId] = GuildBankRightsAndSlots(uint8(bankRights), slots);
|
||||
}
|
||||
|
||||
guild->HandleSetRankInfo(this, rankId, rankName, rights, money, rightsAndSlots);
|
||||
if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid))
|
||||
if (guild->IsMember(_player->GetGUID()))
|
||||
guild->HandleGuildRanks(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildAddRankOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_ADD_RANK");
|
||||
|
||||
std::string rankName;
|
||||
recvPacket >> rankName;
|
||||
uint32 rankId;
|
||||
recvPacket >> rankId;
|
||||
|
||||
uint32 length = recvPacket.ReadBits(7);
|
||||
std::string rankName = recvPacket.ReadString(length);
|
||||
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleAddNewRank(this, rankName);
|
||||
guild->HandleAddNewRank(this, rankName); //, rankId);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildDelRankOpcode(WorldPacket& /*recvPacket*/)
|
||||
void WorldSession::HandleGuildDelRankOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_DEL_RANK");
|
||||
|
||||
uint32 rankId;
|
||||
recvPacket >> rankId;
|
||||
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleRemoveLowestRank(this);
|
||||
guild->HandleRemoveRank(this, rankId);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildChangeInfoTextOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_INFO_TEXT");
|
||||
|
||||
std::string info;
|
||||
recvPacket >> info;
|
||||
uint32 length = recvPacket.ReadBits(12);
|
||||
std::string info = recvPacket.ReadString(length);
|
||||
|
||||
if (Guild* guild = _GetPlayerGuild(this, true))
|
||||
guild->HandleSetInfo(this, info);
|
||||
@@ -347,7 +438,7 @@ void WorldSession::HandleGuildBankMoneyWithdrawn(WorldPacket & /* recv_data */)
|
||||
|
||||
void WorldSession::HandleGuildPermissions(WorldPacket& /* recv_data */)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received (MSG_GUILD_PERMISSIONS)");
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received (CMSG_GUILD_PERMISSIONS)");
|
||||
|
||||
if (Guild* guild = _GetPlayerGuild(this))
|
||||
guild->SendPermissions(this);
|
||||
@@ -369,7 +460,7 @@ void WorldSession::HandleGuildBankerActivate(WorldPacket & recv_data)
|
||||
if (Guild* guild = _GetPlayerGuild(this))
|
||||
guild->SendBankTabsInfo(this);
|
||||
else
|
||||
Guild::SendCommandResult(this, GUILD_UNK1, ERR_GUILD_PLAYER_NOT_IN_GUILD);
|
||||
Guild::SendCommandResult(this, GUILD_VIEW_TAB, ERR_GUILD_PLAYER_NOT_IN_GUILD);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -459,13 +550,14 @@ void WorldSession::HandleGuildBankSwapItems(WorldPacket & recv_data)
|
||||
|
||||
uint8 destSlotId;
|
||||
recv_data >> destSlotId;
|
||||
recv_data.read_skip<uint32>(); // Always 0
|
||||
|
||||
uint32 destItemEntry;
|
||||
recv_data >> destItemEntry;
|
||||
|
||||
recv_data >> tabId;
|
||||
recv_data >> slotId;
|
||||
recv_data >> itemEntry;
|
||||
recv_data.read_skip<uint8>(); // Always 0
|
||||
|
||||
recv_data >> splitedAmount;
|
||||
|
||||
guild->SwapItems(GetPlayer(), tabId, slotId, destTabId, destSlotId, splitedAmount);
|
||||
@@ -515,7 +607,7 @@ void WorldSession::HandleGuildBankBuyTab(WorldPacket & recv_data)
|
||||
uint8 tabId;
|
||||
recv_data >> tabId;
|
||||
|
||||
if (GetPlayer()->GetGameObjectIfCanInteractWith(GoGuid, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (!GoGuid || GetPlayer()->GetGameObjectIfCanInteractWith(GoGuid, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (Guild* guild = _GetPlayerGuild(this))
|
||||
guild->HandleBuyBankTab(this, tabId);
|
||||
}
|
||||
@@ -578,26 +670,71 @@ void WorldSession::HandleSetGuildBankTabText(WorldPacket& recv_data)
|
||||
guild->SetBankTabText(tabId, text);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildQueryXPOpcode(WorldPacket& recv_data)
|
||||
void WorldSession::HandleGuildQueryXPOpcode(WorldPacket& recvData)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_QUERY_GUILD_XP");
|
||||
/*
|
||||
Bitstream is correct, it just needs a proper guild implementation
|
||||
uint64 playerGuid = 0;
|
||||
|
||||
BitStream mask = recv_data.ReadBitStream(8);
|
||||
ObjectGuid guildGuid;
|
||||
|
||||
ByteBuffer bytes(8, true);
|
||||
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();
|
||||
|
||||
recv_data.ReadXorByte(mask[5], bytes[6]);
|
||||
recv_data.ReadXorByte(mask[1], bytes[2]);
|
||||
recv_data.ReadXorByte(mask[7], bytes[1]);
|
||||
recv_data.ReadXorByte(mask[4], bytes[4]);
|
||||
recv_data.ReadXorByte(mask[0], bytes[0]);
|
||||
recv_data.ReadXorByte(mask[6], bytes[3]);
|
||||
recv_data.ReadXorByte(mask[3], bytes[5]);
|
||||
recv_data.ReadXorByte(mask[2], bytes[7]);
|
||||
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]);
|
||||
|
||||
playerGuid = BitConverter::ToUInt64(bytes);
|
||||
*/
|
||||
//if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid))
|
||||
// guild->Send SMSG_GUILD_XP
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildSetRankPermissionsOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_SET_RANK_PERMISSIONS");
|
||||
|
||||
Guild* guild = _GetPlayerGuild(this, true);
|
||||
if (!guild)
|
||||
{
|
||||
recvPacket.rfinish();
|
||||
return;
|
||||
}
|
||||
|
||||
uint32 unk;
|
||||
uint32 rankId;
|
||||
uint32 oldRights;
|
||||
uint32 newRights;
|
||||
uint32 moneyPerDay;
|
||||
|
||||
recvPacket >> unk;
|
||||
recvPacket >> oldRights;
|
||||
recvPacket >> newRights;
|
||||
|
||||
GuildBankRightsAndSlotsVec rightsAndSlots(GUILD_BANK_MAX_TABS);
|
||||
for (uint8 tabId = 0; tabId < GUILD_BANK_MAX_TABS; ++tabId)
|
||||
{
|
||||
uint32 bankRights;
|
||||
uint32 slots;
|
||||
|
||||
recvPacket >> bankRights;
|
||||
recvPacket >> slots;
|
||||
|
||||
rightsAndSlots[tabId] = GuildBankRightsAndSlots(uint8(bankRights), slots);
|
||||
}
|
||||
|
||||
recvPacket >> moneyPerDay;
|
||||
recvPacket >> rankId;
|
||||
uint32 nameLength = recvPacket.ReadBits(7);
|
||||
std::string rankName = recvPacket.ReadString(nameLength);
|
||||
|
||||
guild->HandleSetRankInfo(this, rankId, rankName, newRights, moneyPerDay, rightsAndSlots);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user