Core/Guild: Updated and enabled most previously implemented guild and petition related packets
Merged from https://github.com/Mogadischu/TrinityCore/commits/guild Signed-off-by: Duarte Duarte <[email protected]>
This commit is contained in:
committed by
Duarte Duarte
parent
69104cfa2a
commit
bc0c0ae2a3
@@ -1795,8 +1795,6 @@ CREATE TABLE `guild` (
|
||||
`createdate` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`BankMoney` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`level` int(10) unsigned DEFAULT '1',
|
||||
`experience` bigint(20) unsigned DEFAULT '0',
|
||||
`todayExperience` bigint(20) unsigned DEFAULT '0',
|
||||
PRIMARY KEY (`guildid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Guild System';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
@@ -1932,8 +1930,8 @@ CREATE TABLE `guild_bank_right` (
|
||||
`guildid` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`TabId` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||
`rid` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||
`gbright` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||
`SlotPerDay` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`gbright` tinyint(3) NOT NULL DEFAULT '0',
|
||||
`SlotPerDay` int(10) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`guildid`,`TabId`,`rid`),
|
||||
KEY `guildid_key` (`guildid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
@@ -2610,8 +2608,7 @@ CREATE TABLE `petition` (
|
||||
`ownerguid` bigint(20) unsigned NOT NULL,
|
||||
`petitionguid` bigint(20) unsigned DEFAULT '0',
|
||||
`name` varchar(24) NOT NULL,
|
||||
`type` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`ownerguid`,`type`),
|
||||
PRIMARY KEY (`ownerguid`),
|
||||
UNIQUE KEY `index_ownerguid_petitionguid` (`ownerguid`,`petitionguid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Guild System';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
@@ -2637,7 +2634,6 @@ CREATE TABLE `petition_sign` (
|
||||
`petitionguid` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`playerguid` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`player_account` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`type` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`petitionguid`,`playerguid`),
|
||||
KEY `Idx_playerguid` (`playerguid`),
|
||||
KEY `Idx_ownerguid` (`ownerguid`)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
ALTER TABLE `guild` DROP COLUMN `experience`, DROP COLUMN `todayExperience`;
|
||||
|
||||
ALTER TABLE `guild_bank_right` MODIFY COLUMN `gbright` mediumint(3) NOT NULL DEFAULT 0; -- temp type, can hold all values
|
||||
UPDATE `guild_bank_right` SET `gbright` = -1 WHERE `gbright` = 255;
|
||||
ALTER TABLE `guild_bank_right` MODIFY COLUMN `gbright` tinyint(3) NOT NULL DEFAULT 0;
|
||||
|
||||
ALTER TABLE `guild_bank_right` MODIFY COLUMN `SlotPerDay` bigint(10) NOT NULL DEFAULT 0; -- temp type, can hold all values
|
||||
UPDATE `guild_bank_right` SET `SlotPerDay` = -1 WHERE `SlotPerDay` = 4294967295;
|
||||
ALTER TABLE `guild_bank_right` MODIFY COLUMN `SlotPerDay` int(10) NOT NULL DEFAULT 0;
|
||||
@@ -0,0 +1,5 @@
|
||||
DELETE FROM `petition` WHERE `type` NOT IN(10); -- delete all non guild petitions
|
||||
ALTER TABLE `petition` DROP COLUMN `type`, DROP PRIMARY KEY, ADD PRIMARY KEY (`ownerguid`);
|
||||
|
||||
DELETE FROM `petition_sign` WHERE `type` NOT IN(10); -- delete all non guild petition signs
|
||||
ALTER TABLE `petition_sign` DROP COLUMN `type`;
|
||||
@@ -0,0 +1,135 @@
|
||||
DROP TABLE `guild_xp_for_level` IF EXISTS;
|
||||
|
||||
ALTER TABLE `guild_rewards` CHANGE COLUMN `entry` `ItemID` mediumint(8) UNSIGNED NOT NULL DEFAULT 0;
|
||||
ALTER TABLE `guild_rewards` CHANGE COLUMN `standing` `MinGuildRep` tinyint(3) UNSIGNED NULL DEFAULT 0;
|
||||
ALTER TABLE `guild_rewards` CHANGE COLUMN `racemask` `RaceMask` int(11) NULL DEFAULT 0;
|
||||
ALTER TABLE `guild_rewards` CHANGE COLUMN `price` `Cost` bigint(20) UNSIGNED NULL DEFAULT 0;
|
||||
ALTER TABLE `guild_rewards` DROP COLUMN `achievement`;
|
||||
|
||||
TRUNCATE TABLE `guild_rewards`;
|
||||
INSERT IGNORE INTO `guild_rewards` (`ItemID`, `MinGuildRep`, `RaceMask`, `Cost`) VALUES
|
||||
(89194, 5, -1, 1500000),
|
||||
(89195, 7, -1, 2000000),
|
||||
(114968, 6, 0, 3000000),
|
||||
(116666, 7, -1, 40000000),
|
||||
(63206, 5, 18875469, 3000000),
|
||||
(63207, 5, 33555378, 3000000),
|
||||
(65435, 5, 0, 1500000),
|
||||
(85666, 7, -1, 30000000),
|
||||
(67107, 7, 33555378, 15000000),
|
||||
(69887, 4, 0, 15000000),
|
||||
(69888, 5, -1, 17500000),
|
||||
(69892, 4, 0, 12000000),
|
||||
(71033, 7, 0, 15000000),
|
||||
(65498, 5, 0, 1500000),
|
||||
(120352, 7, 0, 1000000),
|
||||
(64398, 5, 18875469, 2000000),
|
||||
(64399, 5, 18875469, 3000000),
|
||||
(64400, 5, 33555378, 1500000),
|
||||
(64401, 5, 33555378, 2000000),
|
||||
(64402, 5, 33555378, 3000000),
|
||||
(61931, 4, 0, 15000000),
|
||||
(61935, 4, 0, 15000000),
|
||||
(61936, 4, 0, 15000000),
|
||||
(61937, 4, 0, 15000000),
|
||||
(61942, 4, 0, 15000000),
|
||||
(65274, 6, 33555378, 5000000),
|
||||
(61958, 4, 0, 15000000),
|
||||
(85508, 5, -1, 1000000),
|
||||
(85509, 5, -1, 1000000),
|
||||
(85510, 5, -1, 1000000),
|
||||
(63352, 5, 18875469, 1500000),
|
||||
(63353, 5, 33555378, 1500000),
|
||||
(62799, 5, 0, 1500000),
|
||||
(62800, 5, 0, 1500000),
|
||||
(63359, 5, 18875469, 1500000),
|
||||
(69209, 4, -1, 1250000),
|
||||
(69210, 5, -1, 2500000),
|
||||
(62286, 4, 0, 100000000),
|
||||
(62287, 6, 33555378, 200000000),
|
||||
(63398, 6, 0, 3000000),
|
||||
(63125, 7, 0, 30000000),
|
||||
(62298, 7, 18875469, 15000000),
|
||||
(62023, 5, -1, 17500000),
|
||||
(62024, 5, -1, 17500000),
|
||||
(62025, 5, -1, 17500000),
|
||||
(62026, 5, -1, 17500000),
|
||||
(62027, 5, -1, 17500000),
|
||||
(62029, 5, -1, 17500000),
|
||||
(63138, 7, -1, 3000000),
|
||||
(65360, 6, 18875469, 5000000),
|
||||
(65361, 5, 18875469, 3000000),
|
||||
(62038, 4, 0, 12000000),
|
||||
(65362, 5, 33555378, 3000000),
|
||||
(62039, 4, 0, 12000000),
|
||||
(65363, 6, 18875469, 5000000),
|
||||
(62040, 4, 0, 12000000),
|
||||
(65364, 6, 33555378, 5000000),
|
||||
(68136, 6, 18875469, 200000000),
|
||||
(89190, 5, -1, 1500000),
|
||||
(89191, 7, -1, 2000000),
|
||||
(89192, 5, -1, 1500000),
|
||||
(89193, 7, -1, 2000000);
|
||||
|
||||
DROP TABLE IF EXISTS `guild_rewards_req_achievements`;
|
||||
CREATE TABLE `guild_rewards_req_achievements` (
|
||||
`ItemID` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||
`AchievementRequired` mediumint(8) unsigned DEFAULT '0',
|
||||
PRIMARY KEY (`ItemID`,`AchievementRequired`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT IGNORE INTO `guild_rewards_req_achievements` (`ItemID`, `AchievementRequired`) VALUES
|
||||
(89194, 6681),
|
||||
(89190, 6681),
|
||||
(89192, 6681),
|
||||
(89191, 6644),
|
||||
(89191, 6664),
|
||||
(89193, 6644),
|
||||
(89193, 6664),
|
||||
(89195, 6644),
|
||||
(89195, 6664),
|
||||
(114968, 9651),
|
||||
(116666, 9669),
|
||||
(65435, 5465),
|
||||
(85666, 6682),
|
||||
(69888, 6626),
|
||||
(62023, 6626),
|
||||
(62024, 6626),
|
||||
(62025, 6626),
|
||||
(62026, 6626),
|
||||
(62027, 6626),
|
||||
(62029, 6626),
|
||||
(71033, 5840),
|
||||
(65498, 5024),
|
||||
(120352, 9388),
|
||||
(64398, 5143),
|
||||
(64401, 5143),
|
||||
(64399, 5422),
|
||||
(64402, 5422),
|
||||
(64400, 4860),
|
||||
(63359, 4860),
|
||||
(65274, 5035),
|
||||
(65360, 5035),
|
||||
(85508, 7448),
|
||||
(85509, 7448),
|
||||
(85510, 7448),
|
||||
(85508, 7449),
|
||||
(85509, 7449),
|
||||
(85510, 7449),
|
||||
(63352, 4989),
|
||||
(63353, 4989),
|
||||
(62799, 5467),
|
||||
(62800, 5036),
|
||||
(62286, 5196),
|
||||
(62287, 5158),
|
||||
(62287, 4949),
|
||||
(68136, 5152),
|
||||
(68136, 4949),
|
||||
(65361, 5031),
|
||||
(65362, 5179),
|
||||
(65363, 5201),
|
||||
(65364, 5201),
|
||||
(63398, 5144),
|
||||
(63125, 4988),
|
||||
(63138, 5812),
|
||||
(63138, 5892);
|
||||
@@ -997,8 +997,8 @@ void AchievementMgr<T>::UpdateAchievementCriteria(AchievementCriteriaTypes type,
|
||||
, GetOwner()->GetGUID().ToString().c_str(), AchievementGlobalMgr::GetCriteriaTypeString(type), type, miscValue1, miscValue2, miscValue3);
|
||||
|
||||
// Lua_GetGuildLevelEnabled() is checked in achievement UI to display guild tab
|
||||
if (IsGuild<T>() && !sWorld->getBoolConfig(CONFIG_GUILD_LEVELING_ENABLED))
|
||||
return;
|
||||
//if (IsGuild<T>() && !sWorld->getBoolConfig(CONFIG_GUILD_LEVELING_ENABLED))
|
||||
// return;
|
||||
|
||||
AchievementCriteriaList const& achievementCriteriaList = sAchievementMgr->GetAchievementCriteriaByType(type, IsGuild<T>());
|
||||
for (AchievementCriteria const* achievementCriteria : achievementCriteriaList)
|
||||
|
||||
@@ -139,7 +139,7 @@ bool ArenaTeam::AddMember(ObjectGuid playerGuid)
|
||||
|
||||
// Remove all player signatures from other petitions
|
||||
// This will prevent player from joining too many arena teams and corrupt arena team data integrity
|
||||
Player::RemovePetitionsAndSigns(playerGuid, GetType());
|
||||
//Player::RemovePetitionsAndSigns(playerGuid, GetType()); /// @todo arena teams removed in 5.4
|
||||
|
||||
// Feed data to the struct
|
||||
ArenaTeamMember newMember;
|
||||
|
||||
@@ -4389,7 +4389,7 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
|
||||
RemoveFromGroup(group, playerguid);
|
||||
|
||||
// Remove signs from petitions (also remove petitions if owner);
|
||||
RemovePetitionsAndSigns(playerguid, 10);
|
||||
RemovePetitionsAndSigns(playerguid);
|
||||
|
||||
switch (charDeleteMethod)
|
||||
{
|
||||
@@ -7287,7 +7287,7 @@ void Player::SetInGuild(ObjectGuid::LowType guildId)
|
||||
else
|
||||
SetGuidValue(OBJECT_FIELD_DATA, ObjectGuid::Empty);
|
||||
|
||||
ApplyModFlag(PLAYER_FLAGS, PLAYER_FLAGS_GUILD_LEVEL_ENABLED, guildId != 0 && sWorld->getBoolConfig(CONFIG_GUILD_LEVELING_ENABLED));
|
||||
ApplyModFlag(PLAYER_FLAGS, PLAYER_FLAGS_GUILD_LEVEL_ENABLED, guildId != 0);
|
||||
SetUInt16Value(OBJECT_FIELD_TYPE, 1, guildId != 0);
|
||||
}
|
||||
|
||||
@@ -14748,9 +14748,6 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
|
||||
else
|
||||
moneyRew = int32(quest->GetRewMoneyMaxLevel() * sWorld->getRate(RATE_DROP_MONEY));
|
||||
|
||||
if (Guild* guild = sGuildMgr->GetGuildById(GetGuildId()))
|
||||
guild->GiveXP(uint32(quest->XPValue(getLevel()) * sWorld->getRate(RATE_XP_QUEST) * sWorld->getRate(RATE_XP_GUILD_MODIFIER)), this);
|
||||
|
||||
moneyRew += quest->GetRewMoney();
|
||||
|
||||
if (moneyRew)
|
||||
@@ -20815,18 +20812,9 @@ void Player::SendProficiency(ItemClass itemClass, uint32 itemSubclassMask)
|
||||
SendDirectMessage(packet.Write());
|
||||
}
|
||||
|
||||
void Player::RemovePetitionsAndSigns(ObjectGuid guid, uint32 type)
|
||||
void Player::RemovePetitionsAndSigns(ObjectGuid guid)
|
||||
{
|
||||
PreparedStatement* stmt;
|
||||
|
||||
if (type == 10)
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PETITION_SIG_BY_GUID);
|
||||
else
|
||||
{
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PETITION_SIG_BY_GUID_TYPE);
|
||||
stmt->setUInt8(1, uint8(type));
|
||||
}
|
||||
|
||||
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PETITION_SIG_BY_GUID);
|
||||
stmt->setUInt64(0, guid.GetCounter());
|
||||
PreparedQueryResult result = CharacterDatabase.Query(stmt);
|
||||
|
||||
@@ -20844,48 +20832,23 @@ void Player::RemovePetitionsAndSigns(ObjectGuid guid, uint32 type)
|
||||
owner->GetSession()->SendPetitionQueryOpcode(petitionguid);
|
||||
} while (result->NextRow());
|
||||
|
||||
if (type == 10)
|
||||
{
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ALL_PETITION_SIGNATURES);
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ALL_PETITION_SIGNATURES);
|
||||
|
||||
stmt->setUInt64(0, guid.GetCounter());
|
||||
stmt->setUInt64(0, guid.GetCounter());
|
||||
|
||||
CharacterDatabase.Execute(stmt);
|
||||
}
|
||||
else
|
||||
{
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_SIGNATURE);
|
||||
|
||||
stmt->setUInt64(0, guid.GetCounter());
|
||||
stmt->setUInt8(1, uint8(type));
|
||||
|
||||
CharacterDatabase.Execute(stmt);
|
||||
}
|
||||
CharacterDatabase.Execute(stmt);
|
||||
}
|
||||
|
||||
SQLTransaction trans = CharacterDatabase.BeginTransaction();
|
||||
if (type == 10)
|
||||
{
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_BY_OWNER);
|
||||
stmt->setUInt64(0, guid.GetCounter());
|
||||
trans->Append(stmt);
|
||||
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_SIGNATURE_BY_OWNER);
|
||||
stmt->setUInt64(0, guid.GetCounter());
|
||||
trans->Append(stmt);
|
||||
}
|
||||
else
|
||||
{
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_BY_OWNER_AND_TYPE);
|
||||
stmt->setUInt64(0, guid.GetCounter());
|
||||
stmt->setUInt8(1, uint8(type));
|
||||
trans->Append(stmt);
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_BY_OWNER);
|
||||
stmt->setUInt64(0, guid.GetCounter());
|
||||
trans->Append(stmt);
|
||||
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_SIGNATURE_BY_OWNER);
|
||||
stmt->setUInt64(0, guid.GetCounter());
|
||||
trans->Append(stmt);
|
||||
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_SIGNATURE_BY_OWNER_AND_TYPE);
|
||||
stmt->setUInt64(0, guid.GetCounter());
|
||||
stmt->setUInt8(1, uint8(type));
|
||||
trans->Append(stmt);
|
||||
}
|
||||
CharacterDatabase.CommitTransaction(trans);
|
||||
}
|
||||
|
||||
|
||||
@@ -2045,7 +2045,7 @@ class Player : public Unit, public GridObject<Player>
|
||||
static ObjectGuid::LowType GetGuildIdFromDB(ObjectGuid guid);
|
||||
static uint8 GetRankFromDB(ObjectGuid guid);
|
||||
ObjectGuid::LowType GetGuildIdInvited() { return m_GuildIdInvited; }
|
||||
static void RemovePetitionsAndSigns(ObjectGuid guid, uint32 type);
|
||||
static void RemovePetitionsAndSigns(ObjectGuid guid);
|
||||
|
||||
// Arena Team
|
||||
void SetInArenaTeam(uint32 ArenaTeamId, uint8 slot, uint8 type);
|
||||
|
||||
+481
-765
File diff suppressed because it is too large
Load Diff
@@ -29,6 +29,16 @@
|
||||
|
||||
class Item;
|
||||
|
||||
namespace WorldPackets
|
||||
{
|
||||
namespace Guild
|
||||
{
|
||||
class GuildBankLogQueryResults;
|
||||
class GuildEventLogQueryResults;
|
||||
class GuildNews;
|
||||
}
|
||||
}
|
||||
|
||||
enum GuildMisc
|
||||
{
|
||||
GUILD_BANK_MAX_TABS = 8, // send by client for money log also
|
||||
@@ -40,7 +50,6 @@ enum GuildMisc
|
||||
GUILD_WITHDRAW_MONEY_UNLIMITED = 0xFFFFFFFF,
|
||||
GUILD_WITHDRAW_SLOT_UNLIMITED = 0xFFFFFFFF,
|
||||
GUILD_EVENT_LOG_GUID_UNDEFINED = 0xFFFFFFFF,
|
||||
GUILD_EXPERIENCE_UNCAPPED_LEVEL = 20, ///> Hardcoded in client, starting from this level, guild daily experience gain is unlimited.
|
||||
TAB_UNDEFINED = 0xFF,
|
||||
};
|
||||
|
||||
@@ -65,20 +74,24 @@ enum GuildDefaultRanks
|
||||
|
||||
enum GuildRankRights
|
||||
{
|
||||
GR_RIGHT_EMPTY = 0x00000040,
|
||||
GR_RIGHT_GCHATLISTEN = GR_RIGHT_EMPTY | 0x00000001,
|
||||
GR_RIGHT_GCHATSPEAK = GR_RIGHT_EMPTY | 0x00000002,
|
||||
GR_RIGHT_OFFCHATLISTEN = GR_RIGHT_EMPTY | 0x00000004,
|
||||
GR_RIGHT_OFFCHATSPEAK = GR_RIGHT_EMPTY | 0x00000008,
|
||||
GR_RIGHT_INVITE = GR_RIGHT_EMPTY | 0x00000010,
|
||||
GR_RIGHT_REMOVE = GR_RIGHT_EMPTY | 0x00000020,
|
||||
GR_RIGHT_PROMOTE = GR_RIGHT_EMPTY | 0x00000080,
|
||||
GR_RIGHT_DEMOTE = GR_RIGHT_EMPTY | 0x00000100,
|
||||
GR_RIGHT_SETMOTD = GR_RIGHT_EMPTY | 0x00001000,
|
||||
GR_RIGHT_EPNOTE = GR_RIGHT_EMPTY | 0x00002000,
|
||||
GR_RIGHT_VIEWOFFNOTE = GR_RIGHT_EMPTY | 0x00004000,
|
||||
GR_RIGHT_EOFFNOTE = GR_RIGHT_EMPTY | 0x00008000,
|
||||
GR_RIGHT_MODIFY_GUILD_INFO = GR_RIGHT_EMPTY | 0x00010000,
|
||||
GR_RIGHT_NONE = 0x00000000,
|
||||
GR_RIGHT_GCHATLISTEN = 0x00000001,
|
||||
GR_RIGHT_GCHATSPEAK = 0x00000002,
|
||||
GR_RIGHT_OFFCHATLISTEN = 0x00000004,
|
||||
GR_RIGHT_OFFCHATSPEAK = 0x00000008,
|
||||
GR_RIGHT_INVITE = 0x00000010,
|
||||
GR_RIGHT_REMOVE = 0x00000020,
|
||||
GR_RIGHT_ROSTER = 0x00000040,
|
||||
GR_RIGHT_PROMOTE = 0x00000080,
|
||||
GR_RIGHT_DEMOTE = 0x00000100,
|
||||
GR_RIGHT_UNK_200 = 0x00000200,
|
||||
GR_RIGHT_UNK_400 = 0x00000400,
|
||||
GR_RIGHT_UNK_800 = 0x00000800,
|
||||
GR_RIGHT_SETMOTD = 0x00001000,
|
||||
GR_RIGHT_EDIT_PUBLIC_NOTE = 0x00002000,
|
||||
GR_RIGHT_VIEWOFFNOTE = 0x00004000,
|
||||
GR_RIGHT_EOFFNOTE = 0x00008000,
|
||||
GR_RIGHT_MODIFY_GUILD_INFO = 0x00010000,
|
||||
GR_RIGHT_WITHDRAW_GOLD_LOCK = 0x00020000, // remove money withdraw capacity
|
||||
GR_RIGHT_WITHDRAW_REPAIR = 0x00040000, // withdraw for repair
|
||||
GR_RIGHT_WITHDRAW_GOLD = 0x00080000, // withdraw gold
|
||||
@@ -88,19 +101,19 @@ enum GuildRankRights
|
||||
|
||||
enum GuildCommandType
|
||||
{
|
||||
GUILD_COMMAND_CREATE = 0,
|
||||
GUILD_COMMAND_INVITE = 1,
|
||||
GUILD_COMMAND_QUIT = 3,
|
||||
GUILD_COMMAND_ROSTER = 5,
|
||||
GUILD_COMMAND_PROMOTE = 6,
|
||||
GUILD_COMMAND_DEMOTE = 7,
|
||||
GUILD_COMMAND_REMOVE = 8,
|
||||
GUILD_COMMAND_CREATE_GUILD = 0,
|
||||
GUILD_COMMAND_INVITE_PLAYER = 1,
|
||||
GUILD_COMMAND_LEAVE_GUILD = 3,
|
||||
GUILD_COMMAND_GET_ROSTER = 5,
|
||||
GUILD_COMMAND_PROMOTE_PLAYER = 6,
|
||||
GUILD_COMMAND_DEMOTE_PLAYER = 7,
|
||||
GUILD_COMMAND_REMOVE_PLAYER = 8,
|
||||
GUILD_COMMAND_CHANGE_LEADER = 10,
|
||||
GUILD_COMMAND_EDIT_MOTD = 11,
|
||||
GUILD_COMMAND_GUILD_CHAT = 13,
|
||||
GUILD_COMMAND_FOUNDER = 14,
|
||||
GUILD_COMMAND_CHANGE_RANK = 16,
|
||||
GUILD_COMMAND_PUBLIC_NOTE = 19,
|
||||
GUILD_COMMAND_EDIT_PUBLIC_NOTE = 19,
|
||||
GUILD_COMMAND_VIEW_TAB = 21,
|
||||
GUILD_COMMAND_MOVE_ITEM = 22,
|
||||
GUILD_COMMAND_REPAIR = 25,
|
||||
@@ -142,36 +155,6 @@ enum GuildCommandError
|
||||
ERR_GUILD_REP_TOO_LOW = 39
|
||||
};
|
||||
|
||||
enum GuildEvents
|
||||
{
|
||||
GE_PROMOTION = 1,
|
||||
GE_DEMOTION = 2,
|
||||
GE_MOTD = 3,
|
||||
GE_JOINED = 4,
|
||||
GE_LEFT = 5,
|
||||
GE_REMOVED = 6,
|
||||
GE_LEADER_IS = 7,
|
||||
GE_LEADER_CHANGED = 8,
|
||||
GE_DISBANDED = 9,
|
||||
GE_TABARDCHANGE = 10,
|
||||
GE_RANK_UPDATED = 11,
|
||||
GE_RANK_CREATED = 12,
|
||||
GE_RANK_DELETED = 13,
|
||||
GE_RANK_ORDER_CHANGED = 14,
|
||||
GE_FOUNDER = 15,
|
||||
GE_SIGNED_ON = 16,
|
||||
GE_SIGNED_OFF = 17,
|
||||
GE_GUILDBANKBAGSLOTS_CHANGED = 18,
|
||||
GE_BANK_TAB_PURCHASED = 19,
|
||||
GE_BANK_TAB_UPDATED = 20,
|
||||
GE_BANK_MONEY_SET = 21,
|
||||
GE_BANK_TAB_AND_MONEY_UPDATED = 22,
|
||||
GE_BANK_TEXT_CHANGED = 23,
|
||||
// 24 - error 795
|
||||
GE_SIGNED_ON_MOBILE = 25,
|
||||
GE_SIGNED_Off_MOBILE = 26,
|
||||
};
|
||||
|
||||
enum PetitionTurns
|
||||
{
|
||||
PETITION_TURN_OK = 0,
|
||||
@@ -200,7 +183,7 @@ enum GuildBankRights
|
||||
GUILD_BANK_RIGHT_UPDATE_TEXT = 0x04,
|
||||
|
||||
GUILD_BANK_RIGHT_DEPOSIT_ITEM = GUILD_BANK_RIGHT_VIEW_TAB | GUILD_BANK_RIGHT_PUT_ITEM,
|
||||
GUILD_BANK_RIGHT_FULL = 0xFF
|
||||
GUILD_BANK_RIGHT_FULL = -1
|
||||
};
|
||||
|
||||
enum GuildBankEventLogTypes
|
||||
@@ -255,26 +238,27 @@ enum GuildNews
|
||||
GUILD_NEWS_ITEM_CRAFTED = 4,
|
||||
GUILD_NEWS_ITEM_PURCHASED = 5,
|
||||
GUILD_NEWS_LEVEL_UP = 6,
|
||||
GUILD_NEWS_CREATE = 7, // @todo Implement
|
||||
GUILD_NEWS_EVENT = 8 // @todo Implement
|
||||
};
|
||||
|
||||
struct GuildReward
|
||||
{
|
||||
uint32 Entry;
|
||||
int32 Racemask;
|
||||
uint64 Price;
|
||||
uint32 AchievementId;
|
||||
uint8 Standing;
|
||||
uint32 ItemID;
|
||||
uint8 MinGuildRep;
|
||||
int32 RaceMask;
|
||||
uint64 Cost;
|
||||
std::vector<uint32> AchievementsRequired;
|
||||
};
|
||||
|
||||
uint32 const MinNewsItemLevel[MAX_CONTENT] = { 61, 90, 200, 353 };
|
||||
|
||||
// Guild Challenge
|
||||
#define GUILD_CHALLENGES_TYPES 4
|
||||
#define GUILD_CHALLENGES_TYPES 6
|
||||
|
||||
const uint32 GuildChallengeGoldReward[GUILD_CHALLENGES_TYPES] = { 0, 250, 1000, 500 };
|
||||
const uint32 GuildChallengeMaxLevelGoldReward[GUILD_CHALLENGES_TYPES] = { 0, 125, 500, 250 };
|
||||
const uint32 GuildChallengeXPReward[GUILD_CHALLENGES_TYPES] = { 0, 300000, 3000000, 1500000 };
|
||||
const uint32 GuildChallengesPerWeek[GUILD_CHALLENGES_TYPES] = { 0, 7, 1, 3 };
|
||||
const uint32 GuildChallengeGoldReward[GUILD_CHALLENGES_TYPES] = { 0, 250, 1000, 500, 250, 500 };
|
||||
const uint32 GuildChallengeMaxLevelGoldReward[GUILD_CHALLENGES_TYPES] = { 0, 125, 500, 250, 125, 250 };
|
||||
const uint32 GuildChallengesMaxCount[GUILD_CHALLENGES_TYPES] = { 0, 7, 1, 3, 0, 3 };
|
||||
|
||||
// Emblem info
|
||||
class EmblemInfo
|
||||
@@ -284,7 +268,7 @@ public:
|
||||
|
||||
void LoadFromDB(Field* fields);
|
||||
void SaveToDB(ObjectGuid::LowType guildId) const;
|
||||
void ReadPacket(WorldPacket& recv);
|
||||
void ReadPacket(WorldPackets::Guild::SaveGuildEmblem& packet);
|
||||
|
||||
uint32 GetStyle() const { return m_style; }
|
||||
uint32 GetColor() const { return m_color; }
|
||||
@@ -306,26 +290,26 @@ class GuildBankRightsAndSlots
|
||||
public:
|
||||
GuildBankRightsAndSlots() : tabId(TAB_UNDEFINED), rights(0), slots(0) { }
|
||||
GuildBankRightsAndSlots(uint8 _tabId) : tabId(_tabId), rights(0), slots(0) { }
|
||||
GuildBankRightsAndSlots(uint8 _tabId, uint8 _rights, uint32 _slots) : tabId(_tabId), rights(_rights), slots(_slots) { }
|
||||
GuildBankRightsAndSlots(uint8 _tabId, int8 _rights, int32 _slots) : tabId(_tabId), rights(_rights), slots(_slots) { }
|
||||
|
||||
void SetGuildMasterValues()
|
||||
{
|
||||
rights = GUILD_BANK_RIGHT_FULL;
|
||||
slots = uint32(GUILD_WITHDRAW_SLOT_UNLIMITED);
|
||||
slots = int32(GUILD_WITHDRAW_SLOT_UNLIMITED);
|
||||
}
|
||||
|
||||
void SetTabId(uint8 _tabId) { tabId = _tabId; }
|
||||
void SetSlots(uint32 _slots) { slots = _slots; }
|
||||
void SetRights(uint8 _rights) { rights = _rights; }
|
||||
void SetSlots(int32 _slots) { slots = _slots; }
|
||||
void SetRights(int8 _rights) { rights = _rights; }
|
||||
|
||||
int8 GetTabId() const { return tabId; }
|
||||
int32 GetSlots() const { return slots; }
|
||||
int8 GetRights() const { return rights; }
|
||||
|
||||
private:
|
||||
uint8 tabId;
|
||||
uint8 rights;
|
||||
uint32 slots;
|
||||
uint8 tabId;
|
||||
int8 rights;
|
||||
int32 slots;
|
||||
};
|
||||
|
||||
typedef std::vector <GuildBankRightsAndSlots> GuildBankRightsAndSlotsVec;
|
||||
@@ -345,6 +329,7 @@ private:
|
||||
m_zoneId(0),
|
||||
m_level(0),
|
||||
m_class(0),
|
||||
_gender(0),
|
||||
m_flags(GUILDMEMBER_STATUS_NONE),
|
||||
m_logoutTime(::time(NULL)),
|
||||
m_accountId(0),
|
||||
@@ -359,7 +344,7 @@ private:
|
||||
}
|
||||
|
||||
void SetStats(Player* player);
|
||||
void SetStats(std::string const& name, uint8 level, uint8 _class, uint32 zoneId, uint32 accountId, uint32 reputation);
|
||||
void SetStats(std::string const& name, uint8 level, uint8 _class, uint8 gender, uint32 zoneId, uint32 accountId, uint32 reputation);
|
||||
bool CheckStats() const;
|
||||
|
||||
void SetPublicNote(std::string const& publicNote);
|
||||
@@ -385,6 +370,7 @@ private:
|
||||
std::string GetPublicNote() const { return m_publicNote; }
|
||||
std::string GetOfficerNote() const { return m_officerNote; }
|
||||
uint8 GetClass() const { return m_class; }
|
||||
uint8 GetGender() const { return _gender; }
|
||||
uint8 GetLevel() const { return m_level; }
|
||||
uint8 GetFlags() const { return m_flags; }
|
||||
uint32 GetZoneId() const { return m_zoneId; }
|
||||
@@ -422,6 +408,7 @@ private:
|
||||
uint32 m_zoneId;
|
||||
uint8 m_level;
|
||||
uint8 m_class;
|
||||
uint8 _gender;
|
||||
uint8 m_flags;
|
||||
uint64 m_logoutTime;
|
||||
uint32 m_accountId;
|
||||
@@ -452,7 +439,6 @@ private:
|
||||
uint64 GetTimestamp() const { return m_timestamp; }
|
||||
|
||||
virtual void SaveToDB(SQLTransaction& trans) const = 0;
|
||||
virtual void WritePacket(WorldPacket& data, ByteBuffer& content) const = 0;
|
||||
|
||||
protected:
|
||||
ObjectGuid::LowType m_guildId;
|
||||
@@ -473,7 +459,7 @@ private:
|
||||
~EventLogEntry() { }
|
||||
|
||||
void SaveToDB(SQLTransaction& trans) const override;
|
||||
void WritePacket(WorldPacket& data, ByteBuffer& content) const override;
|
||||
void WritePacket(WorldPackets::Guild::GuildEventLogQueryResults& packet) const;
|
||||
|
||||
private:
|
||||
GuildEventLogTypes m_eventType;
|
||||
@@ -511,7 +497,7 @@ private:
|
||||
~BankEventLogEntry() { }
|
||||
|
||||
void SaveToDB(SQLTransaction& trans) const override;
|
||||
void WritePacket(WorldPacket& data, ByteBuffer& content) const override;
|
||||
void WritePacket(WorldPackets::Guild::GuildBankLogQueryResults& packet) const;
|
||||
|
||||
private:
|
||||
GuildBankEventLogTypes m_eventType;
|
||||
@@ -547,7 +533,7 @@ private:
|
||||
}
|
||||
|
||||
void SaveToDB(SQLTransaction& trans) const;
|
||||
void WritePacket(WorldPacket& data, ByteBuffer& content) const;
|
||||
void WritePacket(WorldPackets::Guild::GuildNews& newsPacket) const;
|
||||
|
||||
private:
|
||||
GuildNews m_type;
|
||||
@@ -572,10 +558,8 @@ private:
|
||||
void LoadEvent(LogEntry* entry);
|
||||
// Adds new event to collection and saves it to DB
|
||||
void AddEvent(SQLTransaction& trans, LogEntry* entry);
|
||||
// Writes information about all events to packet
|
||||
void WritePacket(WorldPacket& data) const;
|
||||
uint32 GetNextGUID();
|
||||
GuildLog* GetGuildLog() { return &m_log; } // Hack needed for news as WritePacket can't be used
|
||||
GuildLog* GetGuildLog() { return &m_log; }
|
||||
|
||||
private:
|
||||
GuildLog m_log;
|
||||
@@ -587,8 +571,8 @@ private:
|
||||
class RankInfo
|
||||
{
|
||||
public:
|
||||
RankInfo(): m_guildId(UI64LIT(0)), m_rankId(GUILD_RANK_NONE), m_rights(GR_RIGHT_EMPTY), m_bankMoneyPerDay(0) { }
|
||||
RankInfo(ObjectGuid::LowType guildId) : m_guildId(guildId), m_rankId(GUILD_RANK_NONE), m_rights(GR_RIGHT_EMPTY), m_bankMoneyPerDay(0) { }
|
||||
RankInfo(): m_guildId(UI64LIT(0)), m_rankId(GUILD_RANK_NONE), m_rights(GR_RIGHT_NONE), m_bankMoneyPerDay(0) { }
|
||||
RankInfo(ObjectGuid::LowType guildId) : m_guildId(guildId), m_rankId(GUILD_RANK_NONE), m_rights(GR_RIGHT_NONE), m_bankMoneyPerDay(0) { }
|
||||
RankInfo(ObjectGuid::LowType guildId, uint8 rankId, std::string const& name, uint32 rights, uint32 money) :
|
||||
m_guildId(guildId), m_rankId(rankId), m_name(name), m_rights(rights),
|
||||
m_bankMoneyPerDay(rankId != GR_GUILDMASTER ? money : GUILD_WITHDRAW_MONEY_UNLIMITED) { }
|
||||
@@ -810,7 +794,7 @@ public:
|
||||
void HandleMemberDepositMoney(WorldSession* session, uint64 amount, bool cashFlow = false);
|
||||
bool HandleMemberWithdrawMoney(WorldSession* session, uint64 amount, bool repair = false);
|
||||
void HandleMemberLogout(WorldSession* session);
|
||||
void HandleDisband(WorldSession* session);
|
||||
void HandleDelete(WorldSession* session);
|
||||
void HandleGuildPartyRequest(WorldSession* session);
|
||||
void HandleNewsSetSticky(WorldSession* session, uint32 newsId, bool sticky);
|
||||
void HandleGuildRequestChallengeUpdate(WorldSession* session);
|
||||
@@ -822,14 +806,20 @@ public:
|
||||
void SendGuildRankInfo(WorldSession* session) const;
|
||||
void SendEventLog(WorldSession* session) const;
|
||||
void SendBankLog(WorldSession* session, uint8 tabId) const;
|
||||
void SendBankList(WorldSession* session, uint8 tabId, bool withContent, bool withTabInfo) const;
|
||||
void SendGuildXP(WorldSession* session = NULL) const;
|
||||
void SendBankList(WorldSession* session, uint8 tabId, bool fullUpdate) const;
|
||||
void SendBankTabText(WorldSession* session, uint8 tabId) const;
|
||||
void SendPermissions(WorldSession* session) const;
|
||||
void SendMoneyInfo(WorldSession* session) const;
|
||||
void SendLoginInfo(WorldSession* session);
|
||||
void SendNewsUpdate(WorldSession* session);
|
||||
|
||||
// Send events
|
||||
void SendEventBankMoneyChanged();
|
||||
void SendEventMOTD(WorldSession* session, bool broadcast = false);
|
||||
void SendEventNewLeader(Member* newLeader, Member* oldLeader, bool isSelfPromoted = false);
|
||||
void SendEventPlayerLeft(Player* leaver, Player* remover = nullptr, bool isRemoved = false);
|
||||
void SendEventPresenceChanged(WorldSession* session, bool loggedOn, bool broadcast = false);
|
||||
|
||||
// Load from DB
|
||||
bool LoadFromDB(Field* fields);
|
||||
void LoadGuildNewsLogFromDB(Field* fields);
|
||||
@@ -880,9 +870,6 @@ public:
|
||||
|
||||
// Guild leveling
|
||||
uint8 GetLevel() const { return _level; }
|
||||
void GiveXP(uint32 xp, Player* source);
|
||||
uint64 GetExperience() const { return _experience; }
|
||||
uint64 GetTodayExperience() const { return _todayExperience; }
|
||||
|
||||
void AddGuildNews(uint8 type, ObjectGuid guid, uint32 flags, uint32 value);
|
||||
|
||||
@@ -915,8 +902,6 @@ protected:
|
||||
AchievementMgr<Guild> m_achievementMgr;
|
||||
|
||||
uint8 _level;
|
||||
uint64 _experience;
|
||||
uint64 _todayExperience;
|
||||
|
||||
private:
|
||||
inline uint8 _GetRanksSize() const { return uint8(m_ranks.size()); }
|
||||
@@ -926,7 +911,7 @@ private:
|
||||
{
|
||||
if (player)
|
||||
if (Member const* member = GetMember(player->GetGUID()))
|
||||
return (_GetRankRights(member->GetRankId()) & right) != GR_RIGHT_EMPTY;
|
||||
return (_GetRankRights(member->GetRankId()) & right) != GR_RIGHT_NONE;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -990,7 +975,7 @@ private:
|
||||
int32 _GetMemberRemainingSlots(Member const* member, uint8 tabId) const;
|
||||
int32 _GetMemberRemainingMoney(Member const* member) const;
|
||||
void _UpdateMemberWithdrawSlots(SQLTransaction& trans, ObjectGuid guid, uint8 tabId);
|
||||
bool _MemberHasTabRights(ObjectGuid guid, uint8 tabId, uint32 rights) const;
|
||||
bool _MemberHasTabRights(ObjectGuid guid, uint8 tabId, int32 rights) const;
|
||||
|
||||
void _LogEvent(GuildEventLogTypes eventType, ObjectGuid::LowType playerGuid1, ObjectGuid::LowType playerGuid2 = UI64LIT(0), uint8 newRank = 0);
|
||||
void _LogBankEvent(SQLTransaction& trans, GuildBankEventLogTypes eventType, uint8 tabId, ObjectGuid::LowType playerGuid, uint64 itemOrMoney, uint16 itemStackCount = 0, uint8 destTabId = 0);
|
||||
@@ -1002,9 +987,6 @@ private:
|
||||
|
||||
void _SendBankContentUpdate(MoveItemData* pSrc, MoveItemData* pDest) const;
|
||||
void _SendBankContentUpdate(uint8 tabId, SlotIds slots) const;
|
||||
void SendGuildReputationWeeklyCap(WorldSession* session, uint32 reputation) const;
|
||||
void SendGuildRanksUpdate(ObjectGuid setterGuid, ObjectGuid targetGuid, uint32 rank);
|
||||
|
||||
void _BroadcastEvent(GuildEvents guildEvent, ObjectGuid guid, const char* param1 = NULL, const char* param2 = NULL, const char* param3 = NULL) const;
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -105,13 +105,6 @@ Guild* GuildMgr::GetGuildByLeader(ObjectGuid guid) const
|
||||
return NULL;
|
||||
}
|
||||
|
||||
uint64 GuildMgr::GetXPForGuildLevel(uint8 level) const
|
||||
{
|
||||
if (level < GuildXPperLevel.size())
|
||||
return GuildXPperLevel[level];
|
||||
return 0;
|
||||
}
|
||||
|
||||
void GuildMgr::LoadGuilds()
|
||||
{
|
||||
// 1. Load all guilds
|
||||
@@ -119,11 +112,11 @@ void GuildMgr::LoadGuilds()
|
||||
{
|
||||
uint32 oldMSTime = getMSTime();
|
||||
|
||||
// 0 1 2 3 4 5 6
|
||||
// 0 1 2 3 4 5 6
|
||||
QueryResult result = CharacterDatabase.Query("SELECT g.guildid, g.name, g.leaderguid, g.EmblemStyle, g.EmblemColor, g.BorderStyle, g.BorderColor, "
|
||||
// 7 8 9 10 11 12 13 14 15
|
||||
"g.BackgroundColor, g.info, g.motd, g.createdate, g.BankMoney, g.level, g.experience, g.todayExperience, COUNT(gbt.guildid) "
|
||||
"FROM guild g LEFT JOIN guild_bank_tab gbt ON g.guildid = gbt.guildid GROUP BY g.guildid ORDER BY g.guildid ASC");
|
||||
// 7 8 9 10 11 12 13
|
||||
"g.BackgroundColor, g.info, g.motd, g.createdate, g.BankMoney, g.level, COUNT(gbt.guildid) "
|
||||
"FROM guild g LEFT JOIN guild_bank_tab gbt ON g.guildid = gbt.guildid GROUP BY g.guildid ORDER BY g.guildid ASC");
|
||||
|
||||
if (!result)
|
||||
{
|
||||
@@ -199,8 +192,8 @@ void GuildMgr::LoadGuilds()
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8 9 10
|
||||
QueryResult result = CharacterDatabase.Query("SELECT gm.guildid, gm.guid, rank, pnote, offnote, w.tab0, w.tab1, w.tab2, w.tab3, w.tab4, w.tab5, "
|
||||
// 11 12 13 14 15 16 17 18 19
|
||||
"w.tab6, w.tab7, w.money, c.name, c.level, c.class, c.zone, c.account, c.logout_time "
|
||||
// 11 12 13 14 15 16 17 18 19 20
|
||||
"w.tab6, w.tab7, w.money, c.name, c.level, c.class, c.gender, c.zone, c.account, c.logout_time "
|
||||
"FROM guild_member gm "
|
||||
"LEFT JOIN guild_member_withdraw w ON gm.guid = w.guid "
|
||||
"LEFT JOIN characters c ON c.guid = gm.guid ORDER BY gm.guildid ASC");
|
||||
@@ -404,7 +397,7 @@ void GuildMgr::LoadGuilds()
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
// SELECT guid, itemEntry, creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, transmogrification, upgradeId, enchantIllusion, bonusListIDs,
|
||||
// 17 18 19
|
||||
// 17 18 19
|
||||
// guildid, TabId, SlotId FROM guild_bank_item gbi INNER JOIN item_instance ii ON gbi.item_guid = ii.guid
|
||||
|
||||
PreparedQueryResult result = CharacterDatabase.Query(CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUILD_BANK_ITEMS));
|
||||
@@ -465,62 +458,12 @@ void GuildMgr::LoadGuilds()
|
||||
}
|
||||
}
|
||||
|
||||
void GuildMgr::LoadGuildXpForLevel()
|
||||
{
|
||||
uint32 oldMSTime = getMSTime();
|
||||
|
||||
GuildXPperLevel.resize(sWorld->getIntConfig(CONFIG_GUILD_MAX_LEVEL));
|
||||
for (uint8 level = 0; level < sWorld->getIntConfig(CONFIG_GUILD_MAX_LEVEL); ++level)
|
||||
GuildXPperLevel[level] = 0;
|
||||
|
||||
// 0 1
|
||||
QueryResult result = WorldDatabase.Query("SELECT lvl, xp_for_next_level FROM guild_xp_for_level");
|
||||
|
||||
if (!result)
|
||||
{
|
||||
TC_LOG_ERROR("server.loading", ">> Loaded 0 xp for guild level definitions. DB table `guild_xp_for_level` is empty.");
|
||||
return;
|
||||
}
|
||||
|
||||
uint32 count = 0;
|
||||
|
||||
do
|
||||
{
|
||||
Field* fields = result->Fetch();
|
||||
|
||||
uint32 level = fields[0].GetUInt8();
|
||||
uint32 requiredXP = fields[1].GetUInt32();
|
||||
|
||||
if (level >= sWorld->getIntConfig(CONFIG_GUILD_MAX_LEVEL))
|
||||
{
|
||||
TC_LOG_INFO("misc", "Unused (> Guild.MaxLevel in worldserver.conf) level %u in `guild_xp_for_level` table, ignoring.", uint32(level));
|
||||
continue;
|
||||
}
|
||||
|
||||
GuildXPperLevel[level] = requiredXP;
|
||||
++count;
|
||||
|
||||
} while (result->NextRow());
|
||||
|
||||
// fill level gaps
|
||||
for (uint8 level = 1; level < sWorld->getIntConfig(CONFIG_GUILD_MAX_LEVEL); ++level)
|
||||
{
|
||||
if (!GuildXPperLevel[level])
|
||||
{
|
||||
TC_LOG_ERROR("sql.sql", "Level %i does not have XP for guild level data. Using data of level [%i] + 1660000.", level+1, level);
|
||||
GuildXPperLevel[level] = GuildXPperLevel[level - 1] + 1660000;
|
||||
}
|
||||
}
|
||||
|
||||
TC_LOG_INFO("server.loading", ">> Loaded %u xp for guild level definitions in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
|
||||
}
|
||||
|
||||
void GuildMgr::LoadGuildRewards()
|
||||
{
|
||||
uint32 oldMSTime = getMSTime();
|
||||
|
||||
// 0 1 2 3 4
|
||||
QueryResult result = WorldDatabase.Query("SELECT entry, standing, racemask, price, achievement FROM guild_rewards");
|
||||
// 0 1 2 3
|
||||
QueryResult result = WorldDatabase.Query("SELECT ItemID, MinGuildRep, RaceMask, Cost FROM guild_rewards");
|
||||
|
||||
if (!result)
|
||||
{
|
||||
@@ -534,28 +477,42 @@ void GuildMgr::LoadGuildRewards()
|
||||
{
|
||||
GuildReward reward;
|
||||
Field* fields = result->Fetch();
|
||||
reward.Entry = fields[0].GetUInt32();
|
||||
reward.Standing = fields[1].GetUInt8();
|
||||
reward.Racemask = fields[2].GetInt32();
|
||||
reward.Price = fields[3].GetUInt64();
|
||||
reward.AchievementId = fields[4].GetUInt32();
|
||||
reward.ItemID = fields[0].GetUInt32();
|
||||
reward.MinGuildRep = fields[1].GetUInt8();
|
||||
reward.RaceMask = fields[2].GetInt32();
|
||||
reward.Cost = fields[3].GetUInt64();
|
||||
|
||||
if (!sObjectMgr->GetItemTemplate(reward.Entry))
|
||||
if (!sObjectMgr->GetItemTemplate(reward.ItemID))
|
||||
{
|
||||
TC_LOG_ERROR("server.loading", "Guild rewards constains not existing item entry %u", reward.Entry);
|
||||
TC_LOG_ERROR("server.loading", "Guild rewards constains not existing item entry %u", reward.ItemID);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (reward.AchievementId != 0 && (!sAchievementMgr->GetAchievement(reward.AchievementId)))
|
||||
if (reward.MinGuildRep >= MAX_REPUTATION_RANK)
|
||||
{
|
||||
TC_LOG_ERROR("server.loading", "Guild rewards constains not existing achievement entry %u", reward.AchievementId);
|
||||
TC_LOG_ERROR("server.loading", "Guild rewards contains wrong reputation standing %u, max is %u", uint32(reward.MinGuildRep), MAX_REPUTATION_RANK - 1);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (reward.Standing >= MAX_REPUTATION_RANK)
|
||||
PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_GUILD_REWARDS_REQ_ACHIEVEMENTS);
|
||||
stmt->setUInt32(0, reward.ItemID);
|
||||
PreparedQueryResult reqAchievementResult = WorldDatabase.Query(stmt);
|
||||
if (reqAchievementResult)
|
||||
{
|
||||
TC_LOG_ERROR("server.loading", "Guild rewards contains wrong reputation standing %u, max is %u", uint32(reward.Standing), MAX_REPUTATION_RANK - 1);
|
||||
continue;
|
||||
do
|
||||
{
|
||||
Field* fields = reqAchievementResult->Fetch();
|
||||
|
||||
uint32 requiredAchievementId = fields[0].GetUInt32();
|
||||
|
||||
if (!sAchievementMgr->GetAchievement(requiredAchievementId))
|
||||
{
|
||||
TC_LOG_ERROR("server.loading", "Guild rewards constains not existing achievement entry %u", requiredAchievementId);
|
||||
continue;
|
||||
}
|
||||
|
||||
reward.AchievementsRequired.push_back(requiredAchievementId);
|
||||
} while (reqAchievementResult->NextRow());
|
||||
}
|
||||
|
||||
GuildRewards.push_back(reward);
|
||||
@@ -567,7 +524,6 @@ void GuildMgr::LoadGuildRewards()
|
||||
|
||||
void GuildMgr::ResetTimes(bool week)
|
||||
{
|
||||
CharacterDatabase.Execute(CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_RESET_TODAY_EXPERIENCE));
|
||||
CharacterDatabase.Execute(CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_MEMBER_WITHDRAW));
|
||||
|
||||
for (GuildContainer::const_iterator itr = GuildStore.begin(); itr != GuildStore.end(); ++itr)
|
||||
|
||||
@@ -39,7 +39,6 @@ public:
|
||||
Guild* GetGuildByName(std::string const& guildName) const;
|
||||
std::string GetGuildNameById(ObjectGuid::LowType guildId) const;
|
||||
|
||||
void LoadGuildXpForLevel();
|
||||
void LoadGuildRewards();
|
||||
|
||||
void LoadGuilds();
|
||||
@@ -53,7 +52,6 @@ public:
|
||||
ObjectGuid::LowType GenerateGuildId();
|
||||
void SetNextGuildId(ObjectGuid::LowType Id) { NextGuildId = Id; }
|
||||
|
||||
uint64 GetXPForGuildLevel(uint8 level) const;
|
||||
std::vector<GuildReward> const& GetGuildRewards() const { return GuildRewards; }
|
||||
|
||||
void ResetTimes(bool week);
|
||||
@@ -61,7 +59,6 @@ protected:
|
||||
typedef std::unordered_map<ObjectGuid::LowType, Guild*> GuildContainer;
|
||||
ObjectGuid::LowType NextGuildId;
|
||||
GuildContainer GuildStore;
|
||||
std::vector<uint64> GuildXPperLevel;
|
||||
std::vector<GuildReward> GuildRewards;
|
||||
};
|
||||
|
||||
|
||||
@@ -48,179 +48,77 @@ void WorldSession::HandleGuildQueryOpcode(WorldPackets::Guild::QueryGuildInfo& q
|
||||
TC_LOG_DEBUG("guild", "SMSG_GUILD_QUERY_RESPONSE [%s]", GetPlayerInfo().c_str());
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildInviteOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildInviteByName(WorldPackets::Guild::GuildInviteByName& packet)
|
||||
{
|
||||
uint32 nameLength = recvPacket.ReadBits(7);
|
||||
std::string invitedName = recvPacket.ReadString(nameLength);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_INVITE [%s]: Invited: %s", GetPlayerInfo().c_str(), invitedName.c_str());
|
||||
if (normalizePlayerName(invitedName))
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_INVITE [%s]: Invited: %s", GetPlayerInfo().c_str(), packet.Name.c_str());
|
||||
if (normalizePlayerName(packet.Name))
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleInviteMember(this, invitedName);
|
||||
guild->HandleInviteMember(this, packet.Name);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildOfficerRemoveMemberOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildOfficerRemoveMember(WorldPackets::Guild::GuildOfficerRemoveMember& packet)
|
||||
{
|
||||
ObjectGuid playerGuid;
|
||||
|
||||
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]);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_OFFICER_REMOVE_MEMBER [%s]: Target: %s", GetPlayerInfo().c_str(), playerGuid.ToString().c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_REMOVE [%s]: Target: %s", GetPlayerInfo().c_str(), packet.Removee.ToString().c_str());
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleRemoveMember(this, playerGuid);
|
||||
guild->HandleRemoveMember(this, packet.Removee);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildAcceptOpcode(WorldPacket& /*recvPacket*/)
|
||||
void WorldSession::HandleGuildAcceptInvite(WorldPackets::Guild::AcceptGuildInvite& /*invite*/)
|
||||
{
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_ACCEPT [%s]", GetPlayerInfo().c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_ACCEPT_GUILD_INVITE [%s]", GetPlayerInfo().c_str());
|
||||
|
||||
if (!GetPlayer()->GetGuildId())
|
||||
if (Guild* guild = sGuildMgr->GetGuildById(GetPlayer()->GetGuildIdInvited()))
|
||||
guild->HandleAcceptMember(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildDeclineOpcode(WorldPacket& /*recvPacket*/)
|
||||
void WorldSession::HandleGuildDeclineInvitation(WorldPackets::Guild::GuildDeclineInvitation& /*decline*/)
|
||||
{
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_DECLINE [%s]", GetPlayerInfo().c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_DECLINE_INVITATION [%s]", GetPlayerInfo().c_str());
|
||||
|
||||
GetPlayer()->SetGuildIdInvited(UI64LIT(0));
|
||||
GetPlayer()->SetInGuild(UI64LIT(0));
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildRosterOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildGetRoster(WorldPackets::Guild::GuildGetRoster& /*packet*/)
|
||||
{
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_ROSTER [%s]", GetPlayerInfo().c_str());
|
||||
recvPacket.rfinish();
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleRoster(this);
|
||||
else
|
||||
Guild::SendCommandResult(this, GUILD_COMMAND_ROSTER, ERR_GUILD_PLAYER_NOT_IN_GUILD);
|
||||
Guild::SendCommandResult(this, GUILD_COMMAND_GET_ROSTER, ERR_GUILD_PLAYER_NOT_IN_GUILD);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildPromoteOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildPromoteMember(WorldPackets::Guild::GuildPromoteMember& promote)
|
||||
{
|
||||
ObjectGuid targetGuid;
|
||||
|
||||
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]);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_PROMOTE [%s]: Target: %s", GetPlayerInfo().c_str(), targetGuid.ToString().c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_PROMOTE [%s]: Target: %s", GetPlayerInfo().c_str(), promote.Promotee.ToString().c_str());
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleUpdateMemberRank(this, targetGuid, false);
|
||||
guild->HandleUpdateMemberRank(this, promote.Promotee, false);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildDemoteOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildDemoteMember(WorldPackets::Guild::GuildDemoteMember& demote)
|
||||
{
|
||||
ObjectGuid targetGuid;
|
||||
|
||||
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]);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_DEMOTE [%s]: Target: %s", GetPlayerInfo().c_str(), targetGuid.ToString().c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_DEMOTE [%s]: Target: %s", GetPlayerInfo().c_str(), demote.Demotee.ToString().c_str());
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleUpdateMemberRank(this, targetGuid, true);
|
||||
guild->HandleUpdateMemberRank(this, demote.Demotee, true);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildAssignRankOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildAssignRank(WorldPackets::Guild::GuildAssignMemberRank& packet)
|
||||
{
|
||||
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]);
|
||||
ObjectGuid setterGuid = GetPlayer()->GetGUID();
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_ASSIGN_MEMBER_RANK [%s]: Target: %s Rank: %u, Issuer: %s",
|
||||
GetPlayerInfo().c_str(), targetGuid.ToString().c_str(), rankId, setterGuid.ToString().c_str());
|
||||
GetPlayerInfo().c_str(), packet.Member.ToString().c_str(), packet.RankOrder, setterGuid.ToString().c_str());
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleSetMemberRank(this, targetGuid, setterGuid, rankId);
|
||||
guild->HandleSetMemberRank(this, packet.Member, setterGuid, packet.RankOrder);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildLeaveOpcode(WorldPacket& /*recvPacket*/)
|
||||
void WorldSession::HandleGuildLeave(WorldPackets::Guild::GuildLeave& /*leave*/)
|
||||
{
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_LEAVE [%s]", GetPlayerInfo().c_str());
|
||||
|
||||
@@ -228,136 +126,76 @@ void WorldSession::HandleGuildLeaveOpcode(WorldPacket& /*recvPacket*/)
|
||||
guild->HandleLeaveMember(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildDisbandOpcode(WorldPacket& /*recvPacket*/)
|
||||
void WorldSession::HandleGuildDelete(WorldPackets::Guild::GuildDelete& /*packet*/)
|
||||
{
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_DISBAND [%s]", GetPlayerInfo().c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_DELETE [%s]", GetPlayerInfo().c_str());
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleDisband(this);
|
||||
guild->HandleDelete(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildMOTDOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildUpdateMotdText(WorldPackets::Guild::GuildUpdateMotdText& packet)
|
||||
{
|
||||
uint32 motdLength = recvPacket.ReadBits(11);
|
||||
std::string motd = recvPacket.ReadString(motdLength);
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_MOTD [%s]: MOTD: %s", GetPlayerInfo().c_str(), motd.c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_UPDATE_MOTD_TEXT [%s]: MOTD: %s", GetPlayerInfo().c_str(), packet.MotdText.c_str());
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleSetMOTD(this, motd);
|
||||
guild->HandleSetMOTD(this, packet.MotdText);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildSetNoteOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildSetMemberNote(WorldPackets::Guild::GuildSetMemberNote& packet)
|
||||
{
|
||||
ObjectGuid playerGuid;
|
||||
|
||||
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 ispublic = recvPacket.ReadBit(); // 0 == Officer, 1 == Public
|
||||
playerGuid[6] = recvPacket.ReadBit();
|
||||
uint32 noteLength = recvPacket.ReadBits(8);
|
||||
playerGuid[2] = recvPacket.ReadBit();
|
||||
|
||||
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]);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_SET_NOTE [%s]: Target: %s, Note: %s, Public: %u",
|
||||
GetPlayerInfo().c_str(), playerGuid.ToString().c_str(), note.c_str(), ispublic);
|
||||
GetPlayerInfo().c_str(), packet.NoteeGUID.ToString().c_str(), packet.Note.c_str(), packet.IsPublic);
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleSetMemberNote(this, note, playerGuid, ispublic);
|
||||
guild->HandleSetMemberNote(this, packet.Note, packet.NoteeGUID, packet.IsPublic);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildGetRanksOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildGetRanks(WorldPackets::Guild::GuildGetRanks& packet)
|
||||
{
|
||||
ObjectGuid guildGuid;
|
||||
|
||||
guildGuid[2] = recvPacket.ReadBit();
|
||||
guildGuid[3] = recvPacket.ReadBit();
|
||||
guildGuid[0] = recvPacket.ReadBit();
|
||||
guildGuid[6] = recvPacket.ReadBit();
|
||||
guildGuid[4] = recvPacket.ReadBit();
|
||||
guildGuid[7] = recvPacket.ReadBit();
|
||||
guildGuid[5] = recvPacket.ReadBit();
|
||||
guildGuid[1] = recvPacket.ReadBit();
|
||||
|
||||
recvPacket.ReadByteSeq(guildGuid[3]);
|
||||
recvPacket.ReadByteSeq(guildGuid[4]);
|
||||
recvPacket.ReadByteSeq(guildGuid[5]);
|
||||
recvPacket.ReadByteSeq(guildGuid[7]);
|
||||
recvPacket.ReadByteSeq(guildGuid[1]);
|
||||
recvPacket.ReadByteSeq(guildGuid[0]);
|
||||
recvPacket.ReadByteSeq(guildGuid[6]);
|
||||
recvPacket.ReadByteSeq(guildGuid[2]);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_GET_RANKS [%s]: Guild: %s",
|
||||
GetPlayerInfo().c_str(), guildGuid.ToString().c_str());
|
||||
GetPlayerInfo().c_str(), packet.GuildGUID.ToString().c_str());
|
||||
|
||||
if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid))
|
||||
if (Guild* guild = sGuildMgr->GetGuildByGuid(packet.GuildGUID))
|
||||
if (guild->IsMember(_player->GetGUID()))
|
||||
guild->SendGuildRankInfo(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildAddRankOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildAddRank(WorldPackets::Guild::GuildAddRank& packet)
|
||||
{
|
||||
uint32 rankId;
|
||||
recvPacket >> rankId;
|
||||
|
||||
uint32 length = recvPacket.ReadBits(7);
|
||||
std::string rankName = recvPacket.ReadString(length);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_ADD_RANK [%s]: Rank: %s", GetPlayerInfo().c_str(), rankName.c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_ADD_RANK [%s]: Rank: %s", GetPlayerInfo().c_str(), packet.Name.c_str());
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleAddNewRank(this, rankName);
|
||||
guild->HandleAddNewRank(this, packet.Name);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildDeleteRankOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildDeleteRank(WorldPackets::Guild::GuildDeleteRank& packet)
|
||||
{
|
||||
uint32 rankId;
|
||||
recvPacket >> rankId;
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_DELETE_RANK [%s]: Rank: %u", GetPlayerInfo().c_str(), rankId);
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_DELETE_RANK [%s]: Rank: %u", GetPlayerInfo().c_str(), packet.RankOrder);
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleRemoveRank(this, rankId);
|
||||
guild->HandleRemoveRank(this, packet.RankOrder);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildChangeInfoTextOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildUpdateInfoText(WorldPackets::Guild::GuildUpdateInfoText& packet)
|
||||
{
|
||||
uint32 length = recvPacket.ReadBits(12);
|
||||
std::string info = recvPacket.ReadString(length);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_INFO_TEXT [%s]: %s", GetPlayerInfo().c_str(), info.c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_UPDATE_INFO_TEXT [%s]: %s", GetPlayerInfo().c_str(), packet.InfoText.c_str());
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleSetInfo(this, info);
|
||||
guild->HandleSetInfo(this, packet.InfoText);
|
||||
}
|
||||
|
||||
void WorldSession::HandleSaveGuildEmblemOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleSaveGuildEmblem(WorldPackets::Guild::SaveGuildEmblem& packet)
|
||||
{
|
||||
ObjectGuid vendorGuid;
|
||||
recvPacket >> vendorGuid;
|
||||
|
||||
EmblemInfo emblemInfo;
|
||||
emblemInfo.ReadPacket(recvPacket);
|
||||
emblemInfo.ReadPacket(packet);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_SAVE_GUILD_EMBLEM [%s]: Guid: [%s] Style: %d, Color: %d, BorderStyle: %d, BorderColor: %d, BackgroundColor: %d"
|
||||
, GetPlayerInfo().c_str(), vendorGuid.ToString().c_str(), emblemInfo.GetStyle()
|
||||
, GetPlayerInfo().c_str(), packet.Vendor.ToString().c_str(), emblemInfo.GetStyle()
|
||||
, emblemInfo.GetColor(), emblemInfo.GetBorderStyle()
|
||||
, emblemInfo.GetBorderColor(), emblemInfo.GetBackgroundColor());
|
||||
|
||||
if (GetPlayer()->GetNPCIfCanInteractWith(vendorGuid, UNIT_NPC_FLAG_TABARDDESIGNER))
|
||||
if (GetPlayer()->GetNPCIfCanInteractWith(packet.Vendor, UNIT_NPC_FLAG_TABARDDESIGNER))
|
||||
{
|
||||
// Remove fake death
|
||||
if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))
|
||||
@@ -372,7 +210,7 @@ void WorldSession::HandleSaveGuildEmblemOpcode(WorldPacket& recvPacket)
|
||||
Guild::SendSaveEmblemResult(this, ERR_GUILDEMBLEM_INVALIDVENDOR); // "That's not an emblem vendor!"
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildEventLogQueryOpcode(WorldPacket& /* recvPacket */)
|
||||
void WorldSession::HandleGuildEventLogQuery(WorldPackets::Guild::GuildEventLogQuery& /*packet*/)
|
||||
{
|
||||
TC_LOG_DEBUG("guild", "MSG_GUILD_EVENT_LOG_QUERY [%s]", GetPlayerInfo().c_str());
|
||||
|
||||
@@ -380,7 +218,7 @@ void WorldSession::HandleGuildEventLogQueryOpcode(WorldPacket& /* recvPacket */)
|
||||
guild->SendEventLog(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildBankMoneyWithdrawn(WorldPacket& /* recvPacket */)
|
||||
void WorldSession::HandleGuildBankMoneyWithdrawn(WorldPackets::Guild::GuildBankRemainingWithdrawMoneyQuery& /*packet*/)
|
||||
{
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_MONEY_WITHDRAWN [%s]", GetPlayerInfo().c_str());
|
||||
|
||||
@@ -388,25 +226,21 @@ void WorldSession::HandleGuildBankMoneyWithdrawn(WorldPacket& /* recvPacket */)
|
||||
guild->SendMoneyInfo(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildPermissions(WorldPacket& /* recvPacket */)
|
||||
void WorldSession::HandleGuildPermissionsQuery(WorldPackets::Guild::GuildPermissionsQuery& /* packet */)
|
||||
{
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_PERMISSIONS [%s]", GetPlayerInfo().c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_PERMISSIONS_QUERY [%s]", GetPlayerInfo().c_str());
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->SendPermissions(this);
|
||||
}
|
||||
|
||||
// Called when clicking on Guild bank gameobject
|
||||
void WorldSession::HandleGuildBankerActivate(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankActivate(WorldPackets::Guild::GuildBankActivate& packet)
|
||||
{
|
||||
ObjectGuid guid;
|
||||
bool sendAllSlots;
|
||||
recvPacket >> guid >> sendAllSlots;
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_ACTIVATE [%s]: [%s] AllSlots: %u"
|
||||
, GetPlayerInfo().c_str(), packet.Banker.ToString().c_str(), packet.FullUpdate);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANKER_ACTIVATE [%s]: [%s] AllSlots: %u"
|
||||
, GetPlayerInfo().c_str(), guid.ToString().c_str(), sendAllSlots);
|
||||
|
||||
GameObject const* const go = GetPlayer()->GetGameObjectIfCanInteractWith(guid, GAMEOBJECT_TYPE_GUILD_BANK);
|
||||
GameObject const* const go = GetPlayer()->GetGameObjectIfCanInteractWith(packet.Banker, GAMEOBJECT_TYPE_GUILD_BANK);
|
||||
if (!go)
|
||||
return;
|
||||
|
||||
@@ -417,423 +251,189 @@ void WorldSession::HandleGuildBankerActivate(WorldPacket& recvPacket)
|
||||
return;
|
||||
}
|
||||
|
||||
guild->SendBankList(this, 0, true, true);
|
||||
guild->SendBankList(this, 0, packet.FullUpdate);
|
||||
}
|
||||
|
||||
// Called when opening guild bank tab only (first one)
|
||||
void WorldSession::HandleGuildBankQueryTab(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankQueryTab(WorldPackets::Guild::GuildBankQueryTab& packet)
|
||||
{
|
||||
ObjectGuid guid;
|
||||
uint8 tabId;
|
||||
bool full;
|
||||
|
||||
recvPacket >> guid >> tabId >> full;
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_QUERY_TAB [%s]: %s, TabId: %u, ShowTabs: %u"
|
||||
, GetPlayerInfo().c_str(), guid.ToString().c_str(), tabId, full);
|
||||
, GetPlayerInfo().c_str(), packet.Banker.ToString().c_str(), packet.Tab, packet.FullUpdate);
|
||||
|
||||
if (GetPlayer()->GetGameObjectIfCanInteractWith(guid, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (GetPlayer()->GetGameObjectIfCanInteractWith(packet.Banker, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->SendBankList(this, tabId, true, false);
|
||||
guild->SendBankList(this, packet.Tab, packet.FullUpdate);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildBankDepositMoney(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankDepositMoney(WorldPackets::Guild::GuildBankDepositMoney& packet)
|
||||
{
|
||||
ObjectGuid guid;
|
||||
uint64 money;
|
||||
recvPacket >> guid >> money;
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_DEPOSIT_MONEY [%s]: [%s], money: " UI64FMTD,
|
||||
GetPlayerInfo().c_str(), guid.ToString().c_str(), money);
|
||||
GetPlayerInfo().c_str(), packet.Banker.ToString().c_str(), packet.Money);
|
||||
|
||||
if (GetPlayer()->GetGameObjectIfCanInteractWith(guid, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (money && GetPlayer()->HasEnoughMoney(money))
|
||||
if (GetPlayer()->GetGameObjectIfCanInteractWith(packet.Banker, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (packet.Money && GetPlayer()->HasEnoughMoney(packet.Money))
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleMemberDepositMoney(this, money);
|
||||
guild->HandleMemberDepositMoney(this, packet.Money);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildBankWithdrawMoney(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankWithdrawMoney(WorldPackets::Guild::GuildBankWithdrawMoney& packet)
|
||||
{
|
||||
ObjectGuid guid;
|
||||
uint64 money;
|
||||
recvPacket >> guid >> money;
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_WITHDRAW_MONEY [%s]: [%s], money: " UI64FMTD,
|
||||
GetPlayerInfo().c_str(), guid.ToString().c_str(), money);
|
||||
GetPlayerInfo().c_str(), packet.Banker.ToString().c_str(), packet.Money);
|
||||
|
||||
if (money && GetPlayer()->GetGameObjectIfCanInteractWith(guid, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (packet.Money && GetPlayer()->GetGameObjectIfCanInteractWith(packet.Banker, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleMemberWithdrawMoney(this, money);
|
||||
guild->HandleMemberWithdrawMoney(this, packet.Money);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildBankSwapItems(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankSwapItems(WorldPackets::Guild::GuildBankSwapItems& packet)
|
||||
{
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_SWAP_ITEMS [%s]", GetPlayerInfo().c_str());
|
||||
|
||||
ObjectGuid GoGuid;
|
||||
recvPacket >> GoGuid;
|
||||
|
||||
if (!GetPlayer()->GetGameObjectIfCanInteractWith(GoGuid, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
{
|
||||
recvPacket.rfinish(); // Prevent additional spam at rejected packet
|
||||
if (!GetPlayer()->GetGameObjectIfCanInteractWith(packet.Banker, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
return;
|
||||
}
|
||||
|
||||
Guild* guild = GetPlayer()->GetGuild();
|
||||
if (!guild)
|
||||
{
|
||||
recvPacket.rfinish(); // Prevent additional spam at rejected packet
|
||||
return;
|
||||
}
|
||||
|
||||
uint8 bankToBank;
|
||||
recvPacket >> bankToBank;
|
||||
|
||||
uint8 tabId;
|
||||
uint8 slotId;
|
||||
uint32 itemEntry;
|
||||
uint32 splitedAmount = 0;
|
||||
|
||||
if (bankToBank)
|
||||
if (packet.BankOnly)
|
||||
{
|
||||
uint8 destTabId;
|
||||
recvPacket >> destTabId;
|
||||
|
||||
uint8 destSlotId;
|
||||
recvPacket >> destSlotId;
|
||||
|
||||
uint32 destItemEntry;
|
||||
recvPacket >> destItemEntry;
|
||||
|
||||
recvPacket >> tabId;
|
||||
recvPacket >> slotId;
|
||||
recvPacket >> itemEntry;
|
||||
recvPacket.read_skip<uint8>(); // Always 0
|
||||
recvPacket >> splitedAmount;
|
||||
|
||||
guild->SwapItems(GetPlayer(), tabId, slotId, destTabId, destSlotId, splitedAmount);
|
||||
guild->SwapItems(GetPlayer(), packet.BankTab1, packet.BankSlot1, packet.BankTab, packet.BankSlot, packet.StackCount);
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8 playerBag = NULL_BAG;
|
||||
uint8 playerSlotId = NULL_SLOT;
|
||||
uint8 toChar = 1;
|
||||
|
||||
recvPacket >> tabId;
|
||||
recvPacket >> slotId;
|
||||
recvPacket >> itemEntry;
|
||||
|
||||
uint8 autoStore;
|
||||
recvPacket >> autoStore;
|
||||
if (autoStore)
|
||||
{
|
||||
recvPacket.read_skip<uint32>(); // autoStoreCount
|
||||
recvPacket.read_skip<uint8>(); // ToChar (?), always and expected to be 1 (autostore only triggered in Bank -> Char)
|
||||
recvPacket.read_skip<uint32>(); // Always 0
|
||||
}
|
||||
else
|
||||
{
|
||||
recvPacket >> playerBag;
|
||||
recvPacket >> playerSlotId;
|
||||
recvPacket >> toChar;
|
||||
recvPacket >> splitedAmount;
|
||||
}
|
||||
|
||||
// Player <-> Bank
|
||||
// Allow to work with inventory only
|
||||
if (!Player::IsInventoryPos(playerBag, playerSlotId) && !(playerBag == NULL_BAG && playerSlotId == NULL_SLOT))
|
||||
if (!Player::IsInventoryPos(packet.ContainerSlot, packet.ContainerItemSlot) && !packet.AutoStore)
|
||||
GetPlayer()->SendEquipError(EQUIP_ERR_INTERNAL_BAG_ERROR, NULL);
|
||||
else
|
||||
guild->SwapItemsWithInventory(GetPlayer(), toChar != 0, tabId, slotId, playerBag, playerSlotId, splitedAmount);
|
||||
guild->SwapItemsWithInventory(GetPlayer(), packet.ToSlot != 0, packet.BankTab, packet.BankSlot, packet.ContainerSlot, packet.ContainerItemSlot, packet.StackCount);
|
||||
}
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildBankBuyTab(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankBuyTab(WorldPackets::Guild::GuildBankBuyTab& packet)
|
||||
{
|
||||
ObjectGuid guid;
|
||||
recvPacket >> guid;
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_BUY_TAB [%s]: [%s[, TabId: %u", GetPlayerInfo().c_str(), packet.Banker.ToString().c_str(), packet.BankTab);
|
||||
|
||||
uint8 tabId;
|
||||
recvPacket >> tabId;
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_BUY_TAB [%s]: [%s[, TabId: %u", GetPlayerInfo().c_str(), guid.ToString().c_str(), tabId);
|
||||
|
||||
if (!guid || GetPlayer()->GetGameObjectIfCanInteractWith(guid, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (!packet.Banker || GetPlayer()->GetGameObjectIfCanInteractWith(packet.Banker, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleBuyBankTab(this, tabId);
|
||||
guild->HandleBuyBankTab(this, packet.BankTab);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildBankUpdateTab(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankUpdateTab(WorldPackets::Guild::GuildBankUpdateTab& packet)
|
||||
{
|
||||
ObjectGuid guid;
|
||||
uint8 tabId;
|
||||
std::string name, icon;
|
||||
|
||||
recvPacket >> guid >> tabId >> name >> icon;
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_UPDATE_TAB [%s]: [%s], TabId: %u, Name: %s, Icon: %s"
|
||||
, GetPlayerInfo().c_str(), guid.ToString().c_str(), tabId, name.c_str(), icon.c_str());
|
||||
if (!name.empty() && !icon.empty())
|
||||
if (GetPlayer()->GetGameObjectIfCanInteractWith(guid, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
, GetPlayerInfo().c_str(), packet.Banker.ToString().c_str(), packet.BankTab, packet.Name.c_str(), packet.Icon.c_str());
|
||||
|
||||
if (!packet.Name.empty() && !packet.Icon.empty())
|
||||
if (GetPlayer()->GetGameObjectIfCanInteractWith(packet.Banker, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleSetBankTabInfo(this, tabId, name, icon);
|
||||
guild->HandleSetBankTabInfo(this, packet.BankTab, packet.Name, packet.Icon);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildBankLogQuery(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankLogQuery(WorldPackets::Guild::GuildBankLogQuery& packet)
|
||||
{
|
||||
uint32 tabId;
|
||||
recvPacket >> tabId;
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_LOG_QUERY [%s]: TabId: %u", GetPlayerInfo().c_str(), tabId);
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_LOG_QUERY [%s]: TabId: %u", GetPlayerInfo().c_str(), packet.Tab);
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->SendBankLog(this, tabId);
|
||||
guild->SendBankLog(this, packet.Tab);
|
||||
}
|
||||
|
||||
void WorldSession::HandleQueryGuildBankTabText(WorldPacket &recvPacket)
|
||||
void WorldSession::HandleGuildBankTextQuery(WorldPackets::Guild::GuildBankTextQuery& packet)
|
||||
{
|
||||
uint8 tabId;
|
||||
recvPacket >> tabId;
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_QUERY_TEXT [%s]: TabId: %u", GetPlayerInfo().c_str(), tabId);
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_QUERY_TEXT [%s]: TabId: %u", GetPlayerInfo().c_str(), packet.Tab);
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->SendBankTabText(this, tabId);
|
||||
guild->SendBankTabText(this, packet.Tab);
|
||||
}
|
||||
|
||||
void WorldSession::HandleSetGuildBankTabText(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankSetTabText(WorldPackets::Guild::GuildBankSetTabText& packet)
|
||||
{
|
||||
uint32 tabId;
|
||||
recvPacket >> tabId;
|
||||
|
||||
uint32 textLen = recvPacket.ReadBits(14);
|
||||
std::string text = recvPacket.ReadString(textLen);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_SET_GUILD_BANK_TEXT [%s]: TabId: %u, Text: %s", GetPlayerInfo().c_str(), tabId, text.c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_SET_GUILD_BANK_TEXT [%s]: TabId: %u, Text: %s", GetPlayerInfo().c_str(), packet.Tab, packet.TabText.c_str());
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->SetBankTabText(tabId, text);
|
||||
guild->SetBankTabText(packet.Tab, packet.TabText);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildQueryXPOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUERY_GUILD_XP");
|
||||
|
||||
ObjectGuid guildGuid;
|
||||
|
||||
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]);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_QUERY_GUILD_XP [%s]: Guild: %s", GetPlayerInfo().c_str(), guildGuid.ToString().c_str());
|
||||
|
||||
if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid))
|
||||
if (guild->IsMember(_player->GetGUID()))
|
||||
guild->SendGuildXP(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildSetRankPermissionsOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildSetRankPermissions(WorldPackets::Guild::GuildSetRankPermissions& packet)
|
||||
{
|
||||
Guild* guild = GetPlayer()->GetGuild();
|
||||
if (!guild)
|
||||
{
|
||||
recvPacket.rfinish();
|
||||
return;
|
||||
}
|
||||
|
||||
uint32 oldRankId;
|
||||
uint32 newRankId;
|
||||
uint32 oldRights;
|
||||
uint32 newRights;
|
||||
uint32 moneyPerDay;
|
||||
|
||||
recvPacket >> oldRankId;
|
||||
recvPacket >> oldRights;
|
||||
recvPacket >> newRights;
|
||||
|
||||
GuildBankRightsAndSlotsVec rightsAndSlots(GUILD_BANK_MAX_TABS);
|
||||
for (uint8 tabId = 0; tabId < GUILD_BANK_MAX_TABS; ++tabId)
|
||||
{
|
||||
uint32 bankRights;
|
||||
uint32 slots;
|
||||
rightsAndSlots[tabId] = GuildBankRightsAndSlots(tabId, uint8(packet.TabFlags[tabId]), uint32(packet.TabWithdrawItemLimit[tabId]));
|
||||
|
||||
recvPacket >> bankRights;
|
||||
recvPacket >> slots;
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_SET_RANK_PERMISSIONS [%s]: Rank: %s (%u)", GetPlayerInfo().c_str(), packet.RankName.c_str(), packet.RankOrder);
|
||||
|
||||
rightsAndSlots[tabId] = GuildBankRightsAndSlots(tabId, uint8(bankRights), slots);
|
||||
}
|
||||
|
||||
recvPacket >> moneyPerDay;
|
||||
recvPacket >> newRankId;
|
||||
uint32 nameLength = recvPacket.ReadBits(7);
|
||||
std::string rankName = recvPacket.ReadString(nameLength);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_SET_RANK_PERMISSIONS [%s]: Rank: %s (%u)", GetPlayerInfo().c_str(), rankName.c_str(), newRankId);
|
||||
|
||||
guild->HandleSetRankInfo(this, newRankId, rankName, newRights, moneyPerDay, rightsAndSlots);
|
||||
guild->HandleSetRankInfo(this, packet.RankOrder, packet.RankName, packet.Flags, packet.WithdrawGoldLimit, rightsAndSlots);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildRequestPartyState(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildRequestPartyState(WorldPackets::Guild::RequestGuildPartyState& packet)
|
||||
{
|
||||
TC_LOG_DEBUG("network", "WORLD: Received CMSG_GUILD_REQUEST_PARTY_STATE");
|
||||
|
||||
ObjectGuid guildGuid;
|
||||
|
||||
guildGuid[0] = recvPacket.ReadBit();
|
||||
guildGuid[6] = recvPacket.ReadBit();
|
||||
guildGuid[7] = recvPacket.ReadBit();
|
||||
guildGuid[3] = recvPacket.ReadBit();
|
||||
guildGuid[5] = recvPacket.ReadBit();
|
||||
guildGuid[1] = recvPacket.ReadBit();
|
||||
guildGuid[2] = recvPacket.ReadBit();
|
||||
guildGuid[4] = recvPacket.ReadBit();
|
||||
|
||||
recvPacket.ReadByteSeq(guildGuid[6]);
|
||||
recvPacket.ReadByteSeq(guildGuid[3]);
|
||||
recvPacket.ReadByteSeq(guildGuid[2]);
|
||||
recvPacket.ReadByteSeq(guildGuid[1]);
|
||||
recvPacket.ReadByteSeq(guildGuid[5]);
|
||||
recvPacket.ReadByteSeq(guildGuid[0]);
|
||||
recvPacket.ReadByteSeq(guildGuid[7]);
|
||||
recvPacket.ReadByteSeq(guildGuid[4]);
|
||||
|
||||
if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid))
|
||||
if (Guild* guild = sGuildMgr->GetGuildByGuid(packet.GuildGUID))
|
||||
guild->HandleGuildPartyRequest(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildRequestChallengeUpdate(WorldPacket& /*recvPacket*/)
|
||||
void WorldSession::HandleGuildChallengeUpdateRequest(WorldPackets::Guild::GuildChallengeUpdateRequest& /*packet*/)
|
||||
{
|
||||
if (Guild* guild = _player->GetGuild())
|
||||
guild->HandleGuildRequestChallengeUpdate(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildRequestMaxDailyXP(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleDeclineGuildInvites(WorldPackets::Guild::DeclineGuildInvites& packet)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
GetPlayer()->ApplyModFlag(PLAYER_FLAGS, PLAYER_FLAGS_AUTO_DECLINE_GUILD, packet.Allow);
|
||||
}
|
||||
|
||||
void WorldSession::HandleAutoDeclineGuildInvites(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleRequestGuildRewardsList(WorldPackets::Guild::RequestGuildRewardsList& packet)
|
||||
{
|
||||
uint8 enable;
|
||||
recvPacket >> enable;
|
||||
|
||||
GetPlayer()->ApplyModFlag(PLAYER_FLAGS, PLAYER_FLAGS_AUTO_DECLINE_GUILD, enable != 0);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildRewardsQueryOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
recvPacket.read_skip<uint32>(); // Unk
|
||||
|
||||
if (sGuildMgr->GetGuildById(_player->GetGuildId()))
|
||||
{
|
||||
std::vector<GuildReward> const& rewards = sGuildMgr->GetGuildRewards();
|
||||
|
||||
WorldPacket data(SMSG_GUILD_REWARDS_LIST, 3 + rewards.size() * (4 + 4 + 4 + 8 + 4 + 4));
|
||||
data.WriteBits(rewards.size(), 21);
|
||||
data.FlushBits();
|
||||
WorldPackets::Guild::GuildRewardList rewardList;
|
||||
rewardList.Version = uint32(time(NULL));
|
||||
rewardList.RewardItems.reserve(rewards.size());
|
||||
|
||||
for (uint32 i = 0; i < rewards.size(); i++)
|
||||
{
|
||||
data << uint32(rewards[i].Standing);
|
||||
data << int32(rewards[i].Racemask);
|
||||
data << uint32(rewards[i].Entry);
|
||||
data << uint64(rewards[i].Price);
|
||||
data << uint32(0); // Unused
|
||||
data << uint32(rewards[i].AchievementId);
|
||||
WorldPackets::Guild::GuildRewardItem rewardItem;
|
||||
rewardItem.ItemID = rewards[i].ItemID;
|
||||
rewardItem.RaceMask = rewards[i].RaceMask;
|
||||
rewardItem.MinGuildLevel = 0;
|
||||
rewardItem.MinGuildRep = rewards[i].MinGuildRep;
|
||||
rewardItem.AchievementsRequired = rewards[i].AchievementsRequired;
|
||||
rewardItem.Cost = rewards[i].Cost;
|
||||
rewardList.RewardItems.push_back(rewardItem);
|
||||
}
|
||||
data << uint32(time(NULL));
|
||||
SendPacket(&data);
|
||||
|
||||
SendPacket(rewardList.Write());
|
||||
}
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildQueryNewsOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildQueryNews(WorldPackets::Guild::GuildQueryNews& newsQuery)
|
||||
{
|
||||
recvPacket.read_skip<uint32>();
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_QUERY_NEWS [%s]", GetPlayerInfo().c_str());
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->SendNewsUpdate(this);
|
||||
if (guild->GetGUID() == newsQuery.GuildGUID)
|
||||
guild->SendNewsUpdate(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildNewsUpdateStickyOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildNewsUpdateSticky(WorldPackets::Guild::GuildNewsUpdateSticky& packet)
|
||||
{
|
||||
uint32 newsId;
|
||||
bool sticky;
|
||||
ObjectGuid guid;
|
||||
|
||||
recvPacket >> newsId;
|
||||
|
||||
guid[2] = recvPacket.ReadBit();
|
||||
guid[4] = recvPacket.ReadBit();
|
||||
guid[3] = recvPacket.ReadBit();
|
||||
guid[0] = recvPacket.ReadBit();
|
||||
sticky = recvPacket.ReadBit();
|
||||
guid[6] = recvPacket.ReadBit();
|
||||
guid[7] = recvPacket.ReadBit();
|
||||
guid[1] = recvPacket.ReadBit();
|
||||
guid[5] = recvPacket.ReadBit();
|
||||
|
||||
recvPacket.ReadByteSeq(guid[6]);
|
||||
recvPacket.ReadByteSeq(guid[2]);
|
||||
recvPacket.ReadByteSeq(guid[1]);
|
||||
recvPacket.ReadByteSeq(guid[0]);
|
||||
recvPacket.ReadByteSeq(guid[5]);
|
||||
recvPacket.ReadByteSeq(guid[3]);
|
||||
recvPacket.ReadByteSeq(guid[7]);
|
||||
recvPacket.ReadByteSeq(guid[4]);
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleNewsSetSticky(this, newsId, sticky);
|
||||
guild->HandleNewsSetSticky(this, packet.NewsID, packet.Sticky);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildSetGuildMaster(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildSetGuildMaster(WorldPackets::Guild::GuildSetGuildMaster& packet)
|
||||
{
|
||||
uint8 nameLength = recvPacket.ReadBits(7);
|
||||
// This is related to guild master inactivity.
|
||||
/*bool isDethrone = */recvPacket.ReadBit();
|
||||
std::string playerName = recvPacket.ReadString(nameLength);
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleSetNewGuildMaster(this, playerName);
|
||||
guild->HandleSetNewGuildMaster(this, packet.NewMasterName);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildSetAchievementTracking(WorldPacket& recvPacket)
|
||||
|
||||
@@ -578,7 +578,7 @@ void WorldSession::HandleGetMailList(WorldPackets::Mail::MailGetList& packet)
|
||||
response.TotalNumRecords = player->GetMailSize();
|
||||
|
||||
time_t cur_time = time(nullptr);
|
||||
|
||||
|
||||
for (Mail* m : player->GetMails())
|
||||
{
|
||||
// skip deleted or not delivered (deliver delay not expired) mails
|
||||
|
||||
@@ -50,15 +50,12 @@ enum StableResultCode
|
||||
STABLE_ERR_STABLE = 0x0C, // "Internal pet error"
|
||||
};
|
||||
|
||||
void WorldSession::HandleTabardVendorActivateOpcode(WorldPacket& recvData)
|
||||
void WorldSession::HandleTabardVendorActivateOpcode(WorldPackets::NPC::Hello& packet)
|
||||
{
|
||||
ObjectGuid guid;
|
||||
recvData >> guid;
|
||||
|
||||
Creature* unit = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_TABARDDESIGNER);
|
||||
Creature* unit = GetPlayer()->GetNPCIfCanInteractWith(packet.Unit, UNIT_NPC_FLAG_TABARDDESIGNER);
|
||||
if (!unit)
|
||||
{
|
||||
TC_LOG_DEBUG("network", "WORLD: HandleTabardVendorActivateOpcode - %s not found or you can not interact with him.", guid.ToString().c_str());
|
||||
TC_LOG_DEBUG("network", "WORLD: HandleTabardVendorActivateOpcode - %s not found or you can not interact with him.", packet.Unit.ToString().c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -66,14 +63,14 @@ void WorldSession::HandleTabardVendorActivateOpcode(WorldPacket& recvData)
|
||||
if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))
|
||||
GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);
|
||||
|
||||
SendTabardVendorActivate(guid);
|
||||
SendTabardVendorActivate(packet.Unit);
|
||||
}
|
||||
|
||||
void WorldSession::SendTabardVendorActivate(ObjectGuid guid)
|
||||
{
|
||||
WorldPacket data(SMSG_TABARD_VENDOR_ACTIVATE, 18);
|
||||
data << guid;
|
||||
SendPacket(&data);
|
||||
WorldPackets::NPC::PlayerTabardVendorActivate packet;
|
||||
packet.Vendor = guid;
|
||||
SendPacket(packet.Write());
|
||||
}
|
||||
|
||||
void WorldSession::HandleBankerActivateOpcode(WorldPackets::NPC::Hello& packet)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -58,3 +58,755 @@ WorldPacket const* WorldPackets::Guild::QueryGuildInfoResponse::Write()
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildRoster::Write()
|
||||
{
|
||||
_worldPacket << NumAccounts;
|
||||
_worldPacket.AppendPackedTime(CreateDate);
|
||||
_worldPacket << GuildFlags;
|
||||
_worldPacket << uint32(MemberData.size());
|
||||
|
||||
for (GuildRosterMemberData const& member : MemberData)
|
||||
_worldPacket << member;
|
||||
|
||||
_worldPacket.ResetBitPos();
|
||||
_worldPacket.WriteBits(WelcomeText.length(), 10);
|
||||
_worldPacket.WriteBits(InfoText.length(), 10);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteString(WelcomeText);
|
||||
_worldPacket.WriteString(InfoText);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildRosterUpdate::Write()
|
||||
{
|
||||
_worldPacket << uint32(MemberData.size());
|
||||
|
||||
for (GuildRosterMemberData const& member : MemberData)
|
||||
_worldPacket << member;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildUpdateMotdText::Read()
|
||||
{
|
||||
uint32 textLen = _worldPacket.ReadBits(10);
|
||||
MotdText = _worldPacket.ReadString(textLen);
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildCommandResult::Write()
|
||||
{
|
||||
_worldPacket << Result;
|
||||
_worldPacket << Command;
|
||||
|
||||
_worldPacket.WriteBits(Name.length(), 8);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteString(Name);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::DeclineGuildInvites::Read()
|
||||
{
|
||||
Allow = _worldPacket.ReadBit();
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildInviteByName::Read()
|
||||
{
|
||||
uint32 nameLen = _worldPacket.ReadBits(9);
|
||||
Name = _worldPacket.ReadString(nameLen);
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildInvite::Write()
|
||||
{
|
||||
_worldPacket.WriteBits(InviterName.length(), 6);
|
||||
_worldPacket.WriteBits(GuildName.length(), 7);
|
||||
_worldPacket.WriteBits(OldGuildName.length(), 7);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket << InviterVirtualRealmAddress;
|
||||
_worldPacket << GuildVirtualRealmAddress;
|
||||
_worldPacket << GuildGUID;
|
||||
_worldPacket << OldGuildVirtualRealmAddress;
|
||||
_worldPacket << OldGuildGUID;
|
||||
_worldPacket << EmblemStyle;
|
||||
_worldPacket << EmblemColor;
|
||||
_worldPacket << BorderStyle;
|
||||
_worldPacket << BorderColor;
|
||||
_worldPacket << Background;
|
||||
_worldPacket << Level;
|
||||
|
||||
_worldPacket.WriteString(InviterName);
|
||||
_worldPacket.WriteString(GuildName);
|
||||
_worldPacket.WriteString(OldGuildName);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildRosterProfessionData const& rosterProfessionData)
|
||||
{
|
||||
data << rosterProfessionData.DbID;
|
||||
data << rosterProfessionData.Rank;
|
||||
data << rosterProfessionData.Step;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildRosterMemberData const& rosterMemberData)
|
||||
{
|
||||
data << rosterMemberData.Guid;
|
||||
data << rosterMemberData.RankID;
|
||||
data << rosterMemberData.AreaID;
|
||||
data << rosterMemberData.PersonalAchievementPoints;
|
||||
data << rosterMemberData.GuildReputation;
|
||||
data << rosterMemberData.LastSave;
|
||||
|
||||
for (uint8 i = 0; i < 2; i++)
|
||||
data << rosterMemberData.Profession[i];
|
||||
|
||||
data << rosterMemberData.VirtualRealmAddress;
|
||||
data << rosterMemberData.Status;
|
||||
data << rosterMemberData.Level;
|
||||
data << rosterMemberData.ClassID;
|
||||
data << rosterMemberData.Gender;
|
||||
|
||||
data.WriteBits(rosterMemberData.Name.length(), 6);
|
||||
data.WriteBits(rosterMemberData.Note.length(), 8);
|
||||
data.WriteBits(rosterMemberData.OfficerNote.length(), 8);
|
||||
data.WriteBit(rosterMemberData.Authenticated);
|
||||
data.WriteBit(rosterMemberData.SorEligible);
|
||||
data.FlushBits();
|
||||
|
||||
data.WriteString(rosterMemberData.Name);
|
||||
data.WriteString(rosterMemberData.Note);
|
||||
data.WriteString(rosterMemberData.OfficerNote);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildEventPresenceChange::Write()
|
||||
{
|
||||
_worldPacket << Guid;
|
||||
_worldPacket << VirtualRealmAddress;
|
||||
|
||||
_worldPacket.WriteBits(Name.length(), 6);
|
||||
_worldPacket.WriteBit(LoggedOn);
|
||||
_worldPacket.WriteBit(Mobile);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteString(Name);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildEventMotd::Write()
|
||||
{
|
||||
_worldPacket.WriteBits(MotdText.length(), 10);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteString(MotdText);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildEventPlayerJoined::Write()
|
||||
{
|
||||
_worldPacket << Guid;
|
||||
_worldPacket << VirtualRealmAddress;
|
||||
|
||||
_worldPacket.WriteBits(Name.length(), 6);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteString(Name);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildEventRankChanged::Write()
|
||||
{
|
||||
_worldPacket << RankID;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildEventBankMoneyChanged::Write()
|
||||
{
|
||||
_worldPacket << Money;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildEventLogQueryResults::Write()
|
||||
{
|
||||
_worldPacket.reserve(4 + Entry.size() * 38);
|
||||
|
||||
_worldPacket << uint32(Entry.size());
|
||||
|
||||
for (GuildEventEntry const& entry : Entry)
|
||||
{
|
||||
_worldPacket << entry.PlayerGUID;
|
||||
_worldPacket << entry.OtherGUID;
|
||||
_worldPacket << entry.TransactionType;
|
||||
_worldPacket << entry.RankID;
|
||||
_worldPacket << entry.TransactionDate;
|
||||
}
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildEventPlayerLeft::Write()
|
||||
{
|
||||
_worldPacket.WriteBit(Removed);
|
||||
_worldPacket.WriteBits(LeaverName.length(), 6);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
if (Removed)
|
||||
{
|
||||
_worldPacket.WriteBits(RemoverName.length(), 6);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket << RemoverGUID;
|
||||
_worldPacket << RemoverVirtualRealmAddress;
|
||||
_worldPacket.WriteString(RemoverName);
|
||||
}
|
||||
|
||||
_worldPacket << LeaverGUID;
|
||||
_worldPacket << LeaverVirtualRealmAddress;
|
||||
_worldPacket.WriteString(LeaverName);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildPermissionsQueryResults::Write()
|
||||
{
|
||||
_worldPacket << RankID;
|
||||
_worldPacket << WithdrawGoldLimit;
|
||||
_worldPacket << Flags;
|
||||
_worldPacket << NumTabs;
|
||||
_worldPacket << uint32(Tab.size());
|
||||
|
||||
for (GuildRankTabPermissions const& tab : Tab)
|
||||
{
|
||||
_worldPacket << tab.Flags;
|
||||
_worldPacket << tab.WithdrawItemLimit;
|
||||
}
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildSetRankPermissions::Read()
|
||||
{
|
||||
_worldPacket >> RankID;
|
||||
_worldPacket >> RankOrder;
|
||||
_worldPacket >> Flags;
|
||||
_worldPacket >> OldFlags;
|
||||
_worldPacket >> WithdrawGoldLimit;
|
||||
|
||||
for (uint8 i = 0; i < GUILD_BANK_MAX_TABS; i++)
|
||||
{
|
||||
_worldPacket >> TabFlags[i];
|
||||
_worldPacket >> TabWithdrawItemLimit[i];
|
||||
}
|
||||
|
||||
_worldPacket.ResetBitPos();
|
||||
uint32 rankNameLen = _worldPacket.ReadBits(7);
|
||||
|
||||
RankName = _worldPacket.ReadString(rankNameLen);
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildEventNewLeader::Write()
|
||||
{
|
||||
_worldPacket.WriteBit(SelfPromoted);
|
||||
_worldPacket.WriteBits(NewLeaderName.length(), 6);
|
||||
_worldPacket.WriteBits(OldLeaderName.length(), 6);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket << OldLeaderGUID;
|
||||
_worldPacket << OldLeaderVirtualRealmAddress;
|
||||
_worldPacket << NewLeaderGUID;
|
||||
_worldPacket << NewLeaderVirtualRealmAddress;
|
||||
|
||||
_worldPacket.WriteString(NewLeaderName);
|
||||
_worldPacket.WriteString(OldLeaderName);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildEventTabModified::Write()
|
||||
{
|
||||
_worldPacket << Tab;
|
||||
|
||||
_worldPacket.WriteBits(Name.length(), 7);
|
||||
_worldPacket.WriteBits(Icon.length(), 9);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteString(Name);
|
||||
_worldPacket.WriteString(Icon);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildEventTabTextChanged::Write()
|
||||
{
|
||||
_worldPacket << Tab;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildRankData const& rankData)
|
||||
{
|
||||
data << rankData.RankID;
|
||||
data << rankData.RankOrder;
|
||||
data << rankData.Flags;
|
||||
data << rankData.WithdrawGoldLimit;
|
||||
|
||||
for (uint8 i = 0; i < GUILD_BANK_MAX_TABS; i++)
|
||||
{
|
||||
data << rankData.TabFlags[i];
|
||||
data << rankData.TabWithdrawItemLimit[i];
|
||||
}
|
||||
|
||||
data.WriteBits(rankData.RankName.length(), 7);
|
||||
data.FlushBits();
|
||||
|
||||
data.WriteString(rankData.RankName);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildAddRank::Read()
|
||||
{
|
||||
_worldPacket.WriteBits(Name.length(), 7);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket >> RankOrder;
|
||||
_worldPacket.WriteString(Name);
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildAssignMemberRank::Read()
|
||||
{
|
||||
_worldPacket >> Member;
|
||||
_worldPacket >> RankOrder;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildDeleteRank::Read()
|
||||
{
|
||||
_worldPacket >> RankOrder;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildGetRanks::Read()
|
||||
{
|
||||
_worldPacket >> GuildGUID;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildRanks::Write()
|
||||
{
|
||||
_worldPacket << uint32(Ranks.size());
|
||||
|
||||
for (GuildRankData const& rank : Ranks)
|
||||
_worldPacket << rank;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildSendRankChange::Write()
|
||||
{
|
||||
_worldPacket << Officer;
|
||||
_worldPacket << Other;
|
||||
_worldPacket << RankID;
|
||||
|
||||
_worldPacket.WriteBit(Promote);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildShiftRank::Read()
|
||||
{
|
||||
_worldPacket >> RankOrder;
|
||||
ShiftUp = _worldPacket.ReadBit();
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildUpdateInfoText::Read()
|
||||
{
|
||||
uint32 textLen = _worldPacket.ReadBits(11);
|
||||
InfoText = _worldPacket.ReadString(textLen);
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildSetMemberNote::Read()
|
||||
{
|
||||
_worldPacket >> NoteeGUID;
|
||||
|
||||
uint32 noteLen = _worldPacket.ReadBits(8);
|
||||
IsPublic = _worldPacket.ReadBit();
|
||||
|
||||
Note = _worldPacket.ReadString(noteLen);
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildMemberUpdateNote::Write()
|
||||
{
|
||||
_worldPacket.reserve(16 + 2 + Note.size());
|
||||
|
||||
_worldPacket << Member;
|
||||
|
||||
_worldPacket.WriteBits(Note.length(), 8);
|
||||
_worldPacket.WriteBit(IsPublic);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteString(Note);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildDemoteMember::Read()
|
||||
{
|
||||
_worldPacket >> Demotee;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildPromoteMember::Read()
|
||||
{
|
||||
_worldPacket >> Promotee;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildOfficerRemoveMember::Read()
|
||||
{
|
||||
_worldPacket >> Removee;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildChangeNameRequest::Read()
|
||||
{
|
||||
uint32 nameLen = _worldPacket.ReadBits(7);
|
||||
NewName = _worldPacket.ReadString(nameLen);
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildFlaggedForRename::Write()
|
||||
{
|
||||
_worldPacket.WriteBit(FlagSet);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::RequestGuildPartyState::Read()
|
||||
{
|
||||
_worldPacket >> GuildGUID;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildPartyState::Write()
|
||||
{
|
||||
_worldPacket.WriteBit(InGuildParty);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket << NumMembers;
|
||||
_worldPacket << NumRequired;
|
||||
_worldPacket << GuildXPEarnedMult;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildRewardItem const& rewardItem)
|
||||
{
|
||||
data << rewardItem.ItemID;
|
||||
data << uint32(rewardItem.AchievementsRequired.size());
|
||||
data << rewardItem.RaceMask;
|
||||
data << rewardItem.MinGuildLevel;
|
||||
data << rewardItem.MinGuildRep;
|
||||
data << rewardItem.Cost;
|
||||
|
||||
for (uint8 i = 0; i < rewardItem.AchievementsRequired.size(); i++)
|
||||
data << rewardItem.AchievementsRequired[i];
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::RequestGuildRewardsList::Read()
|
||||
{
|
||||
_worldPacket >> CurrentVersion;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildRewardList::Write()
|
||||
{
|
||||
_worldPacket << Version;
|
||||
_worldPacket << uint32(RewardItems.size());
|
||||
|
||||
for (GuildRewardItem const& item : RewardItems)
|
||||
_worldPacket << item;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankActivate::Read()
|
||||
{
|
||||
_worldPacket >> Banker;
|
||||
FullUpdate = _worldPacket.ReadBit();
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankBuyTab::Read()
|
||||
{
|
||||
_worldPacket >> Banker;
|
||||
_worldPacket >> BankTab;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankUpdateTab::Read()
|
||||
{
|
||||
_worldPacket >> Banker;
|
||||
_worldPacket >> BankTab;
|
||||
|
||||
_worldPacket.ResetBitPos();
|
||||
uint32 nameLen = _worldPacket.ReadBits(7);
|
||||
uint32 iconLen = _worldPacket.ReadBits(9);
|
||||
|
||||
Name = _worldPacket.ReadString(nameLen);
|
||||
Icon = _worldPacket.ReadString(iconLen);
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankDepositMoney::Read()
|
||||
{
|
||||
_worldPacket >> Banker;
|
||||
_worldPacket >> Money;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankQueryTab::Read()
|
||||
{
|
||||
_worldPacket >> Banker;
|
||||
_worldPacket >> Tab;
|
||||
|
||||
FullUpdate = _worldPacket.ReadBit();
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildBankRemainingWithdrawMoney::Write()
|
||||
{
|
||||
_worldPacket << RemainingWithdrawMoney;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankWithdrawMoney::Read()
|
||||
{
|
||||
_worldPacket >> Banker;
|
||||
_worldPacket >> Money;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildBankQueryResults::Write()
|
||||
{
|
||||
_worldPacket << Money;
|
||||
_worldPacket << Tab;
|
||||
_worldPacket << WithdrawalsRemaining;
|
||||
_worldPacket << uint32(TabInfo.size());
|
||||
_worldPacket << uint32(ItemInfo.size());
|
||||
|
||||
for (GuildBankTabInfo const& tab : TabInfo)
|
||||
{
|
||||
_worldPacket << tab.TabIndex;
|
||||
_worldPacket.WriteBits(tab.Name.length(), 7);
|
||||
_worldPacket.WriteBits(tab.Icon.length(), 9);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteString(tab.Name);
|
||||
_worldPacket.WriteString(tab.Icon);
|
||||
}
|
||||
|
||||
for (GuildBankItemInfo const& item : ItemInfo)
|
||||
{
|
||||
_worldPacket << item.Slot;
|
||||
_worldPacket << item.Item;
|
||||
_worldPacket << item.Count;
|
||||
_worldPacket << item.EnchantmentID;
|
||||
_worldPacket << item.Charges;
|
||||
_worldPacket << item.OnUseEnchantmentID;
|
||||
_worldPacket << uint32(item.SocketEnchant.size());
|
||||
_worldPacket << item.Flags;
|
||||
|
||||
for (GuildBankItemInfo::GuildBankSocketEnchant const& socketEnchant : item.SocketEnchant)
|
||||
{
|
||||
_worldPacket << socketEnchant.SocketIndex;
|
||||
_worldPacket << socketEnchant.SocketEnchantID;
|
||||
}
|
||||
|
||||
_worldPacket.WriteBit(item.Locked);
|
||||
_worldPacket.FlushBits();
|
||||
}
|
||||
|
||||
_worldPacket.WriteBit(FullUpdate);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankSwapItems::Read()
|
||||
{
|
||||
_worldPacket >> Banker;
|
||||
_worldPacket >> BankTab;
|
||||
_worldPacket >> BankSlot;
|
||||
_worldPacket >> ItemID;
|
||||
_worldPacket >> BankTab1;
|
||||
_worldPacket >> BankSlot1;
|
||||
_worldPacket >> ItemID1;
|
||||
_worldPacket >> BankItemCount;
|
||||
_worldPacket >> ContainerSlot;
|
||||
_worldPacket >> ContainerItemSlot;
|
||||
_worldPacket >> ToSlot;
|
||||
_worldPacket >> StackCount;
|
||||
|
||||
_worldPacket.ResetBitPos();
|
||||
BankOnly = _worldPacket.ReadBit();
|
||||
AutoStore = _worldPacket.ReadBit();
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankLogQuery::Read()
|
||||
{
|
||||
_worldPacket >> Tab;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildBankLogQueryResults::Write()
|
||||
{
|
||||
_worldPacket << Tab;
|
||||
_worldPacket << uint32(Entry.size());
|
||||
|
||||
for (GuildBankLogEntry const& logEntry : Entry)
|
||||
{
|
||||
_worldPacket << logEntry.PlayerGUID;
|
||||
_worldPacket << logEntry.TimeOffset;
|
||||
_worldPacket << logEntry.EntryType;
|
||||
|
||||
_worldPacket.WriteBit(logEntry.Money.HasValue);
|
||||
_worldPacket.WriteBit(logEntry.ItemID.HasValue);
|
||||
_worldPacket.WriteBit(logEntry.Count.HasValue);
|
||||
_worldPacket.WriteBit(logEntry.OtherTab.HasValue);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
if (logEntry.Money.HasValue)
|
||||
_worldPacket << logEntry.Money.Value;
|
||||
|
||||
if (logEntry.ItemID.HasValue)
|
||||
_worldPacket << logEntry.ItemID.Value;
|
||||
|
||||
if (logEntry.Count.HasValue)
|
||||
_worldPacket << logEntry.Count.Value;
|
||||
|
||||
if (logEntry.OtherTab.HasValue)
|
||||
_worldPacket << logEntry.OtherTab.Value;
|
||||
}
|
||||
|
||||
_worldPacket.WriteBit(WeeklyBonusMoney.HasValue);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
if (WeeklyBonusMoney.HasValue)
|
||||
_worldPacket << WeeklyBonusMoney.Value;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankTextQuery::Read()
|
||||
{
|
||||
_worldPacket >> Tab;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildBankTextQueryResult::Write()
|
||||
{
|
||||
_worldPacket << Tab;
|
||||
|
||||
_worldPacket.WriteBits(Text.length(), 14);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteString(Text);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankSetTabText::Read()
|
||||
{
|
||||
_worldPacket >> Tab;
|
||||
|
||||
_worldPacket.ResetBitPos();
|
||||
uint32 tabTextLen = _worldPacket.ReadBits(14);
|
||||
|
||||
TabText = _worldPacket.ReadString(tabTextLen);
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildQueryNews::Read()
|
||||
{
|
||||
_worldPacket >> GuildGUID;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildNewsEvent const& newsEvent)
|
||||
{
|
||||
data << newsEvent.Id;
|
||||
data.AppendPackedTime(newsEvent.CompletedDate);
|
||||
data << newsEvent.Type;
|
||||
data << newsEvent.Flags;
|
||||
|
||||
for (uint8 i = 0; i < 2; i++)
|
||||
data << newsEvent.Data[i];
|
||||
|
||||
data << newsEvent.MemberGuid;
|
||||
data << uint32(newsEvent.MemberList.size());
|
||||
|
||||
for (ObjectGuid memberGuid : newsEvent.MemberList)
|
||||
data << memberGuid;
|
||||
|
||||
data.WriteBit(newsEvent.Item.HasValue);
|
||||
data.FlushBits();
|
||||
|
||||
if (newsEvent.Item.HasValue)
|
||||
data << newsEvent.Item.Value; // WorldPackets::Item::ItemInstance
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildNews::Write()
|
||||
{
|
||||
_worldPacket << NewsEvents;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildNewsUpdateSticky::Read()
|
||||
{
|
||||
_worldPacket >> GuildGUID;
|
||||
_worldPacket >> NewsID;
|
||||
|
||||
NewsID = _worldPacket.ReadBit();
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildSetGuildMaster::Read()
|
||||
{
|
||||
uint32 nameLen = _worldPacket.ReadBits(9);
|
||||
NewMasterName = _worldPacket.ReadString(nameLen);
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildChallengeUpdate::Write()
|
||||
{
|
||||
for (int i = 0; i < GUILD_CHALLENGES_TYPES; ++i)
|
||||
_worldPacket << int32(CurrentCount[i]);
|
||||
|
||||
for (int i = 0; i < GUILD_CHALLENGES_TYPES; ++i)
|
||||
_worldPacket << int32(MaxCount[i]);
|
||||
|
||||
for (int i = 0; i < GUILD_CHALLENGES_TYPES; ++i)
|
||||
_worldPacket << int32(MaxLevelGold[i]);
|
||||
|
||||
for (int i = 0; i < GUILD_CHALLENGES_TYPES; ++i)
|
||||
_worldPacket << int32(Gold[i]);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::SaveGuildEmblem::Read()
|
||||
{
|
||||
_worldPacket >> Vendor;
|
||||
_worldPacket >> BStyle;
|
||||
_worldPacket >> EStyle;
|
||||
_worldPacket >> BColor;
|
||||
_worldPacket >> EColor;
|
||||
_worldPacket >> Bg;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::PlayerSaveGuildEmblem::Write()
|
||||
{
|
||||
_worldPacket << int32(Error);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
#include "Packet.h"
|
||||
#include "ObjectGuid.h"
|
||||
#include "Guild.h"
|
||||
#include "ItemPackets.h"
|
||||
|
||||
namespace WorldPackets
|
||||
{
|
||||
@@ -78,7 +80,938 @@ namespace WorldPackets
|
||||
ObjectGuid GuildGuid;
|
||||
Optional<GuildInfo> Info;
|
||||
};
|
||||
|
||||
class GuildGetRoster final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildGetRoster(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_GET_ROSTER, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
struct GuildRosterProfessionData
|
||||
{
|
||||
int32 DbID = 0;
|
||||
int32 Rank = 0;
|
||||
int32 Step = 0;
|
||||
};
|
||||
|
||||
struct GuildRosterMemberData
|
||||
{
|
||||
ObjectGuid Guid;
|
||||
int64 WeeklyXP = 0;
|
||||
int64 TotalXP = 0;
|
||||
int32 RankID = 0;
|
||||
int32 AreaID = 0;
|
||||
int32 PersonalAchievementPoints = 0;
|
||||
int32 GuildReputation = 0;
|
||||
int32 GuildRepToCap = 0;
|
||||
float LastSave = 0.0f;
|
||||
std::string Name;
|
||||
uint32 VirtualRealmAddress = 0;
|
||||
std::string Note;
|
||||
std::string OfficerNote;
|
||||
uint8 Status = 0;
|
||||
uint8 Level = 0;
|
||||
uint8 ClassID = 0;
|
||||
uint8 Gender = 0;
|
||||
bool Authenticated = false;
|
||||
bool SorEligible = false;
|
||||
GuildRosterProfessionData Profession[2];
|
||||
};
|
||||
|
||||
class GuildRoster final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildRoster() : ServerPacket(SMSG_GUILD_ROSTER, 4 + 4 + 4 + 4) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
std::vector<GuildRosterMemberData> MemberData;
|
||||
std::string WelcomeText;
|
||||
std::string InfoText;
|
||||
uint32 CreateDate = 0;
|
||||
int32 NumAccounts = 0;
|
||||
int32 GuildFlags = 0;
|
||||
};
|
||||
|
||||
class GuildRosterUpdate final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildRosterUpdate() : ServerPacket(SMSG_GUILD_ROSTER_UPDATE, 4) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
std::vector<GuildRosterMemberData> MemberData;
|
||||
};
|
||||
|
||||
class GuildUpdateMotdText final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildUpdateMotdText(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_UPDATE_MOTD_TEXT, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
std::string MotdText;
|
||||
};
|
||||
|
||||
class GuildCommandResult final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildCommandResult() : ServerPacket(SMSG_GUILD_COMMAND_RESULT, 9) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
std::string Name;
|
||||
int32 Result = 0;
|
||||
int32 Command = 0;
|
||||
};
|
||||
|
||||
class AcceptGuildInvite final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
AcceptGuildInvite(WorldPacket&& packet) : ClientPacket(CMSG_ACCEPT_GUILD_INVITE, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
class GuildDeclineInvitation final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildDeclineInvitation(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_DECLINE_INVITATION, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
class DeclineGuildInvites final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
DeclineGuildInvites(WorldPacket&& packet) : ClientPacket(CMSG_DECLINE_GUILD_INVITES, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
bool Allow = false;
|
||||
};
|
||||
|
||||
class GuildInviteByName final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildInviteByName(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_INVITE_BY_NAME, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
std::string Name;
|
||||
};
|
||||
|
||||
class GuildInvite final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildInvite() : ServerPacket(SMSG_GUILD_INVITE, 68) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid GuildGUID;
|
||||
ObjectGuid OldGuildGUID;
|
||||
int32 Level = 0;
|
||||
uint32 EmblemColor = 0;
|
||||
uint32 EmblemStyle = 0;
|
||||
uint32 BorderStyle = 0;
|
||||
uint32 BorderColor = 0;
|
||||
uint32 Background = 0;
|
||||
uint32 GuildVirtualRealmAddress = 0;
|
||||
uint32 OldGuildVirtualRealmAddress = 0;
|
||||
uint32 InviterVirtualRealmAddress = 0;
|
||||
std::string InviterName;
|
||||
std::string GuildName;
|
||||
std::string OldGuildName;
|
||||
};
|
||||
|
||||
class GuildEventPresenceChange final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventPresenceChange() : ServerPacket(SMSG_GUILD_EVENT_PRESENCE_CHANGE, 16 + 4 + 1 + 1) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid Guid;
|
||||
uint32 VirtualRealmAddress = 0;
|
||||
std::string Name;
|
||||
bool Mobile = false;
|
||||
bool LoggedOn = false;
|
||||
};
|
||||
|
||||
class GuildEventMotd final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventMotd() : ServerPacket(SMSG_GUILD_EVENT_MOTD, 1) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
std::string MotdText;
|
||||
};
|
||||
|
||||
class GuildEventPlayerJoined final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventPlayerJoined() : ServerPacket(SMSG_GUILD_EVENT_PLAYER_JOINED, 21) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid Guid;
|
||||
std::string Name;
|
||||
uint32 VirtualRealmAddress = 0;
|
||||
};
|
||||
|
||||
class GuildEventRankChanged final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventRankChanged() : ServerPacket(SMSG_GUILD_EVENT_RANK_CHANGED, 4) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
int32 RankID = 0;
|
||||
};
|
||||
|
||||
class GuildEventRanksUpdated final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventRanksUpdated() : ServerPacket(SMSG_GUILD_EVENT_RANKS_UPDATED, 0) { }
|
||||
|
||||
WorldPacket const* Write() override { return &_worldPacket; }
|
||||
};
|
||||
|
||||
class GuildEventBankMoneyChanged final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventBankMoneyChanged() : ServerPacket(SMSG_GUILD_EVENT_BANK_MONEY_CHANGED, 8) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
uint64 Money = 0;
|
||||
};
|
||||
|
||||
class GuildEventDisbanded final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventDisbanded() : ServerPacket(SMSG_GUILD_EVENT_DISBANDED, 0) { }
|
||||
|
||||
WorldPacket const* Write() override { return &_worldPacket; }
|
||||
};
|
||||
|
||||
struct GuildEventEntry
|
||||
{
|
||||
ObjectGuid PlayerGUID;
|
||||
ObjectGuid OtherGUID;
|
||||
uint8 TransactionType = 0;
|
||||
uint8 RankID = 0;
|
||||
uint32 TransactionDate = 0;
|
||||
};
|
||||
|
||||
class GuildEventLogQuery final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildEventLogQuery(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_EVENT_LOG_QUERY, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
class GuildEventLogQueryResults final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventLogQueryResults() : ServerPacket(SMSG_GUILD_EVENT_LOG_QUERY_RESULT, 4) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
std::vector<GuildEventEntry> Entry;
|
||||
};
|
||||
|
||||
class GuildEventPlayerLeft final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventPlayerLeft() : ServerPacket(SMSG_GUILD_EVENT_PLAYER_LEFT, 43) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid LeaverGUID;
|
||||
std::string LeaverName;
|
||||
uint32 LeaverVirtualRealmAddress = 0;
|
||||
ObjectGuid RemoverGUID;
|
||||
std::string RemoverName;
|
||||
uint32 RemoverVirtualRealmAddress = 0;
|
||||
bool Removed = false;
|
||||
};
|
||||
|
||||
class GuildEventNewLeader final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventNewLeader() : ServerPacket(SMSG_GUILD_EVENT_NEW_LEADER, 43) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid NewLeaderGUID;
|
||||
std::string NewLeaderName;
|
||||
uint32 NewLeaderVirtualRealmAddress = 0;
|
||||
ObjectGuid OldLeaderGUID;
|
||||
std::string OldLeaderName;
|
||||
uint32 OldLeaderVirtualRealmAddress = 0;
|
||||
bool SelfPromoted = false;
|
||||
};
|
||||
|
||||
class GuildEventTabAdded final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventTabAdded() : ServerPacket(SMSG_GUILD_EVENT_TAB_ADDED, 0) { }
|
||||
|
||||
WorldPacket const* Write() override { return &_worldPacket; }
|
||||
};
|
||||
|
||||
class GuildEventTabModified final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventTabModified() : ServerPacket(SMSG_GUILD_EVENT_TAB_MODIFIED, 6) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
std::string Icon;
|
||||
std::string Name;
|
||||
int32 Tab = 0;
|
||||
};
|
||||
|
||||
class GuildEventTabTextChanged final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventTabTextChanged() : ServerPacket(SMSG_GUILD_EVENT_TAB_TEXT_CHANGED, 4) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
int32 Tab = 0;
|
||||
};
|
||||
|
||||
class GuildEventBankContentsChanged final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildEventBankContentsChanged() : ServerPacket(SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED, 0) { }
|
||||
|
||||
WorldPacket const* Write() override { return &_worldPacket; }
|
||||
};
|
||||
|
||||
class GuildPermissionsQuery final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildPermissionsQuery(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_PERMISSIONS_QUERY, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
class GuildPermissionsQueryResults final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
struct GuildRankTabPermissions
|
||||
{
|
||||
int32 Flags = 0;
|
||||
int32 WithdrawItemLimit = 0;
|
||||
};
|
||||
|
||||
GuildPermissionsQueryResults() : ServerPacket(SMSG_GUILD_PERMISSIONS_QUERY_RESULTS, 20) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
int32 NumTabs = 0;
|
||||
int32 WithdrawGoldLimit = 0;
|
||||
int32 Flags = 0;
|
||||
uint32 RankID = 0;
|
||||
std::vector<GuildRankTabPermissions> Tab;
|
||||
};
|
||||
|
||||
class GuildSetRankPermissions final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildSetRankPermissions(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_SET_RANK_PERMISSIONS, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
int32 RankID = 0;
|
||||
int32 RankOrder = 0;
|
||||
int32 WithdrawGoldLimit = 0;
|
||||
uint32 Flags = 0;
|
||||
uint32 OldFlags = 0;
|
||||
int32 TabFlags[GUILD_BANK_MAX_TABS];
|
||||
int32 TabWithdrawItemLimit[GUILD_BANK_MAX_TABS];
|
||||
std::string RankName;
|
||||
};
|
||||
|
||||
class GuildAddRank final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildAddRank(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_ADD_RANK, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
std::string Name;
|
||||
int32 RankOrder = 0;
|
||||
};
|
||||
|
||||
class GuildAssignMemberRank final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildAssignMemberRank(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_ASSIGN_MEMBER_RANK, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Member;
|
||||
int32 RankOrder = 0;
|
||||
};
|
||||
|
||||
class GuildDeleteRank final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildDeleteRank(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_DELETE_RANK, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
int32 RankOrder = 0;
|
||||
};
|
||||
|
||||
class GuildGetRanks final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildGetRanks(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_GET_RANKS, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid GuildGUID;
|
||||
};
|
||||
|
||||
struct GuildRankData
|
||||
{
|
||||
uint32 RankID = 0;
|
||||
uint32 RankOrder = 0;
|
||||
uint32 Flags = 0;
|
||||
uint32 WithdrawGoldLimit = 0;
|
||||
std::string RankName;
|
||||
uint32 TabFlags[GUILD_BANK_MAX_TABS];
|
||||
uint32 TabWithdrawItemLimit[GUILD_BANK_MAX_TABS];
|
||||
};
|
||||
|
||||
class GuildRanks final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildRanks() : ServerPacket(SMSG_GUILD_RANKS, 4) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
std::vector<GuildRankData> Ranks;
|
||||
};
|
||||
|
||||
class GuildSendRankChange final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildSendRankChange() : ServerPacket(SMSG_GUILD_SEND_RANK_CHANGE, 43) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid Other;
|
||||
ObjectGuid Officer;
|
||||
bool Promote = false;
|
||||
uint32 RankID = 0;
|
||||
};
|
||||
|
||||
class GuildShiftRank final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildShiftRank(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_SHIFT_RANK, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
bool ShiftUp = false;
|
||||
int32 RankOrder = 0;
|
||||
};
|
||||
|
||||
class GuildUpdateInfoText final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildUpdateInfoText(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_UPDATE_INFO_TEXT, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
std::string InfoText;
|
||||
};
|
||||
|
||||
class GuildSetMemberNote final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildSetMemberNote(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_SET_MEMBER_NOTE, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid NoteeGUID;
|
||||
bool IsPublic = false; ///< 0 == Officer, 1 == Public
|
||||
std::string Note;
|
||||
};
|
||||
|
||||
class GuildMemberUpdateNote final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildMemberUpdateNote() : ServerPacket(SMSG_GUILD_MEMBER_UPDATE_NOTE, 21) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid Member;
|
||||
bool IsPublic = false; ///< 0 == Officer, 1 == Public
|
||||
std::string Note;
|
||||
};
|
||||
|
||||
class GuildMemberDailyReset final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildMemberDailyReset() : ServerPacket(SMSG_GUILD_MEMBER_DAILY_RESET, 0) { }
|
||||
|
||||
WorldPacket const* Write() override { return &_worldPacket; }
|
||||
};
|
||||
|
||||
class GuildDelete final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildDelete(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_DELETE, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
class GuildDemoteMember final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildDemoteMember(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_DEMOTE_MEMBER, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Demotee;
|
||||
};
|
||||
|
||||
class GuildPromoteMember final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildPromoteMember(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_PROMOTE_MEMBER, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Promotee;
|
||||
};
|
||||
|
||||
class GuildOfficerRemoveMember : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildOfficerRemoveMember(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_OFFICER_REMOVE_MEMBER, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Removee;
|
||||
};
|
||||
|
||||
class GuildLeave final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildLeave(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_LEAVE, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
class GuildChangeNameRequest final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildChangeNameRequest(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_CHANGE_NAME_REQUEST, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
std::string NewName;
|
||||
};
|
||||
|
||||
class GuildFlaggedForRename final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildFlaggedForRename() : ServerPacket(SMSG_GUILD_FLAGGED_FOR_RENAME, 1) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
bool FlagSet = false;
|
||||
};
|
||||
|
||||
class RequestGuildPartyState final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
RequestGuildPartyState(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_REQUEST_PARTY_STATE, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid GuildGUID;
|
||||
};
|
||||
|
||||
class GuildPartyState final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildPartyState() : ServerPacket(SMSG_GUILD_PARTY_STATE_RESPONSE, 15) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
float GuildXPEarnedMult = 0.0f;
|
||||
int32 NumMembers = 0;
|
||||
int32 NumRequired = 0;
|
||||
bool InGuildParty = false;
|
||||
};
|
||||
|
||||
class RequestGuildRewardsList final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
RequestGuildRewardsList(WorldPacket&& packet) : ClientPacket(CMSG_REQUEST_GUILD_REWARDS_LIST, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
uint32 CurrentVersion = 0;
|
||||
};
|
||||
|
||||
struct GuildRewardItem
|
||||
{
|
||||
uint32 ItemID = 0;
|
||||
std::vector<uint32> AchievementsRequired;
|
||||
uint32 RaceMask = 0;
|
||||
int32 MinGuildLevel = 0;
|
||||
int32 MinGuildRep = 0;
|
||||
uint64 Cost = 0;
|
||||
};
|
||||
|
||||
class GuildRewardList final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildRewardList() : ServerPacket(SMSG_GUILD_REWARDS_LIST, 8) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
std::vector<GuildRewardItem> RewardItems;
|
||||
uint32 Version = 0;
|
||||
};
|
||||
|
||||
class GuildBankActivate final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankActivate(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_ACTIVATE, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Banker;
|
||||
bool FullUpdate = false;
|
||||
};
|
||||
|
||||
class GuildBankBuyTab final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankBuyTab(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_BUY_TAB, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Banker;
|
||||
uint8 BankTab = 0;
|
||||
};
|
||||
|
||||
class GuildBankUpdateTab final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankUpdateTab(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_UPDATE_TAB, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Banker;
|
||||
uint8 BankTab = 0;
|
||||
std::string Name;
|
||||
std::string Icon;
|
||||
};
|
||||
|
||||
class GuildBankDepositMoney final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankDepositMoney(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_DEPOSIT_MONEY, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Banker;
|
||||
uint64 Money = 0;
|
||||
};
|
||||
|
||||
class GuildBankQueryTab final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankQueryTab(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_QUERY_TAB, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Banker;
|
||||
uint8 Tab = 0;
|
||||
bool FullUpdate = false;
|
||||
};
|
||||
|
||||
|
||||
class GuildBankRemainingWithdrawMoneyQuery final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankRemainingWithdrawMoneyQuery(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
class GuildBankRemainingWithdrawMoney final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildBankRemainingWithdrawMoney() : ServerPacket(SMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY, 8) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
int64 RemainingWithdrawMoney = 0;
|
||||
};
|
||||
|
||||
class GuildBankWithdrawMoney final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankWithdrawMoney(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_WITHDRAW_MONEY, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Banker;
|
||||
uint64 Money = 0;
|
||||
};
|
||||
|
||||
struct GuildBankItemInfo
|
||||
{
|
||||
struct GuildBankSocketEnchant
|
||||
{
|
||||
int32 SocketIndex = 0;
|
||||
int32 SocketEnchantID = 0;
|
||||
};
|
||||
|
||||
WorldPackets::Item::ItemInstance Item;
|
||||
int32 Slot = 0;
|
||||
int32 Count = 0;
|
||||
int32 EnchantmentID = 0;
|
||||
int32 Charges = 0;
|
||||
int32 OnUseEnchantmentID = 0;
|
||||
int32 Flags = 0;
|
||||
bool Locked = false;
|
||||
std::vector<GuildBankSocketEnchant> SocketEnchant;
|
||||
};
|
||||
|
||||
struct GuildBankTabInfo
|
||||
{
|
||||
int32 TabIndex = 0;
|
||||
std::string Name;
|
||||
std::string Icon;
|
||||
};
|
||||
|
||||
class GuildBankQueryResults final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildBankQueryResults() : ServerPacket(SMSG_GUILD_BANK_QUERY_RESULTS, 25) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
std::vector<GuildBankItemInfo> ItemInfo;
|
||||
std::vector<GuildBankTabInfo> TabInfo;
|
||||
int32 WithdrawalsRemaining = 0;
|
||||
int32 Tab = 0;
|
||||
uint64 Money = 0;
|
||||
bool FullUpdate = false;
|
||||
};
|
||||
|
||||
class GuildBankSwapItems final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankSwapItems(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_SWAP_ITEMS, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Banker;
|
||||
int32 StackCount = 0;
|
||||
int32 BankItemCount = 0;
|
||||
uint32 ItemID = 0;
|
||||
uint32 ItemID1 = 0;
|
||||
uint8 ToSlot = 0;
|
||||
uint8 BankSlot = 0;
|
||||
uint8 BankSlot1 = 0;
|
||||
uint8 BankTab = 0;
|
||||
uint8 BankTab1 = 0;
|
||||
uint8 ContainerSlot = 0;
|
||||
uint8 ContainerItemSlot = 0;
|
||||
bool AutoStore = false;
|
||||
bool BankOnly = false;
|
||||
};
|
||||
|
||||
class GuildBankLogQuery final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankLogQuery(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_LOG_QUERY, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
int32 Tab = 0;
|
||||
};
|
||||
|
||||
struct GuildBankLogEntry
|
||||
{
|
||||
ObjectGuid PlayerGUID;
|
||||
uint32 TimeOffset = 0;
|
||||
int8 EntryType = 0;
|
||||
Optional<uint64> Money;
|
||||
Optional<int32> ItemID;
|
||||
Optional<int32> Count;
|
||||
Optional<int8> OtherTab;
|
||||
};
|
||||
|
||||
class GuildBankLogQueryResults final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildBankLogQueryResults() : ServerPacket(SMSG_GUILD_BANK_LOG_QUERY_RESULT, 25) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
int32 Tab = 0;
|
||||
std::vector<GuildBankLogEntry> Entry;
|
||||
Optional<uint64> WeeklyBonusMoney;
|
||||
};
|
||||
|
||||
class GuildBankTextQuery final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankTextQuery(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_TEXT_QUERY, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
int32 Tab = 0;
|
||||
};
|
||||
|
||||
class GuildBankTextQueryResult : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildBankTextQueryResult() : ServerPacket(SMSG_GUILD_BANK_TEXT_QUERY_RESULT, 5) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
int32 Tab = 0;
|
||||
std::string Text;
|
||||
};
|
||||
|
||||
class GuildBankSetTabText final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankSetTabText(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_SET_TAB_TEXT, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
int32 Tab = 0;
|
||||
std::string TabText;
|
||||
};
|
||||
|
||||
class GuildQueryNews final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildQueryNews(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_QUERY_NEWS, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid GuildGUID;
|
||||
};
|
||||
|
||||
struct GuildNewsEvent
|
||||
{
|
||||
int32 Id = 0;
|
||||
uint32 CompletedDate = 0;
|
||||
int32 Type = 0;
|
||||
int32 Flags = 0;
|
||||
int32 Data[2];
|
||||
ObjectGuid MemberGuid;
|
||||
GuidList MemberList;
|
||||
Optional<Item::ItemInstance> Item;
|
||||
};
|
||||
|
||||
class GuildNews final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildNews() : ServerPacket(SMSG_GUILD_NEWS, 25) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
std::vector<GuildNewsEvent> NewsEvents;
|
||||
};
|
||||
|
||||
class GuildNewsUpdateSticky final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildNewsUpdateSticky(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_NEWS_UPDATE_STICKY, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
int32 NewsID = 0;
|
||||
ObjectGuid GuildGUID;
|
||||
bool Sticky = false;
|
||||
};
|
||||
|
||||
class GuildSetGuildMaster final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildSetGuildMaster(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_SET_GUILD_MASTER, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
std::string NewMasterName;
|
||||
};
|
||||
|
||||
class GuildChallengeUpdateRequest final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildChallengeUpdateRequest(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_CHALLENGE_UPDATE_REQUEST, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
class GuildChallengeUpdate final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GuildChallengeUpdate() : ServerPacket(SMSG_GUILD_CHALLENGE_UPDATE, 120) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
int32 CurrentCount[GUILD_CHALLENGES_TYPES];
|
||||
int32 MaxCount[GUILD_CHALLENGES_TYPES];
|
||||
int32 Gold[GUILD_CHALLENGES_TYPES];
|
||||
int32 MaxLevelGold[GUILD_CHALLENGES_TYPES];
|
||||
};
|
||||
|
||||
class SaveGuildEmblem final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
SaveGuildEmblem(WorldPacket&& packet) : ClientPacket(CMSG_SAVE_GUILD_EMBLEM, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Vendor;
|
||||
int32 BStyle = 0;
|
||||
int32 EStyle = 0;
|
||||
int32 BColor = 0;
|
||||
int32 EColor = 0;
|
||||
int32 Bg = 0;
|
||||
};
|
||||
|
||||
class PlayerSaveGuildEmblem final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
PlayerSaveGuildEmblem() : ServerPacket(SMSG_SAVE_GUILD_EMBLEM, 4) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
int32 Error = 0;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildRosterProfessionData const& rosterProfessionData);
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildRosterMemberData const& rosterMemberData);
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildRankData const& rankData);
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildRewardItem const& rewardItem);
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildNewsEvent const& newsEvent);
|
||||
|
||||
#endif // GuildPackets_h__
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace WorldPackets
|
||||
|
||||
struct MailAttachedItem
|
||||
{
|
||||
MailAttachedItem(::Item const* item, uint8 pos);
|
||||
MailAttachedItem(::Item const* item, uint8 pos);
|
||||
|
||||
uint8 Position = 0;
|
||||
int32 AttachID = 0;
|
||||
@@ -126,7 +126,7 @@ namespace WorldPackets
|
||||
std::string Body;
|
||||
std::vector<MailAttachment> Attachments;
|
||||
};
|
||||
|
||||
|
||||
SendMail(WorldPacket&& packet) : ClientPacket(CMSG_SEND_MAIL, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
@@ -53,7 +53,7 @@ namespace WorldPackets
|
||||
ObjectGuid BinderID;
|
||||
uint32 AreaID = 0;
|
||||
};
|
||||
|
||||
|
||||
class BinderConfirm final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -135,3 +135,9 @@ void WorldPackets::NPC::GossipSelectOption::Read()
|
||||
uint32 length = _worldPacket.ReadBits(8);
|
||||
PromotionCode = _worldPacket.ReadString(length);
|
||||
}
|
||||
WorldPacket const* WorldPackets::NPC::PlayerTabardVendorActivate::Write()
|
||||
{
|
||||
_worldPacket << Vendor;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
@@ -158,6 +158,16 @@ namespace WorldPackets
|
||||
|
||||
ObjectGuid Guid;
|
||||
};
|
||||
|
||||
class PlayerTabardVendorActivate final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
PlayerTabardVendorActivate() : ServerPacket(SMSG_TABARD_VENDOR_ACTIVATE, 16) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid Vendor;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,192 @@
|
||||
/*
|
||||
* Copyright (C) 2008-2015 TrinityCore <http://www.trinitycore.org/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "PetitionPackets.h"
|
||||
|
||||
void WorldPackets::Petition::QueryPetition::Read()
|
||||
{
|
||||
_worldPacket >> PetitionID;
|
||||
_worldPacket >> ItemGUID;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Petition::PetitionInfo const& petitionInfo)
|
||||
{
|
||||
data << petitionInfo.PetitionID;
|
||||
data << petitionInfo.Petitioner;
|
||||
|
||||
data << petitionInfo.MinSignatures;
|
||||
data << petitionInfo.MaxSignatures;
|
||||
data << petitionInfo.DeadLine;
|
||||
data << petitionInfo.IssueDate;
|
||||
data << petitionInfo.AllowedGuildID;
|
||||
data << petitionInfo.AllowedClasses;
|
||||
data << petitionInfo.AllowedRaces;
|
||||
data << petitionInfo.AllowedGender;
|
||||
data << petitionInfo.AllowedMinLevel;
|
||||
data << petitionInfo.AllowedMaxLevel;
|
||||
data << petitionInfo.NumChoices;
|
||||
data << petitionInfo.StaticType;
|
||||
data << petitionInfo.Muid;
|
||||
|
||||
data.WriteBits(petitionInfo.Title.length(), 7);
|
||||
data.WriteBits(petitionInfo.BodyText.length(), 12);
|
||||
|
||||
for (uint8 i = 0; i < 10; i++)
|
||||
data.WriteBits(petitionInfo.Choicetext[i].length(), 6);
|
||||
|
||||
data.FlushBits();
|
||||
|
||||
for (uint8 i = 0; i < 10; i++)
|
||||
data.WriteString(petitionInfo.Choicetext[i]);
|
||||
|
||||
data.WriteString(petitionInfo.Title);
|
||||
data.WriteString(petitionInfo.BodyText);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Petition::QueryPetitionResponse::Write()
|
||||
{
|
||||
_worldPacket << PetitionID;
|
||||
_worldPacket.WriteBit(Allow);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
if (Allow)
|
||||
_worldPacket << Info;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Petition::PetitionShowList::Read()
|
||||
{
|
||||
_worldPacket >> PetitionUnit;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Petition::ServerPetitionShowList::Write()
|
||||
{
|
||||
_worldPacket << Unit;
|
||||
_worldPacket << Price;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Petition::PetitionBuy::Read()
|
||||
{
|
||||
uint32 titleLen = _worldPacket.ReadBits(7);
|
||||
|
||||
_worldPacket >> Unit;
|
||||
Title = _worldPacket.ReadString(titleLen);
|
||||
}
|
||||
|
||||
void WorldPackets::Petition::PetitionShowSignatures::Read()
|
||||
{
|
||||
_worldPacket >> Item;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Petition::ServerPetitionShowSignatures::Write()
|
||||
{
|
||||
_worldPacket << Item;
|
||||
_worldPacket << Owner;
|
||||
_worldPacket << OwnerAccountID;
|
||||
_worldPacket << PetitionID;
|
||||
|
||||
_worldPacket << uint32(Signatures.size());
|
||||
for (PetitionSignature signature : Signatures)
|
||||
{
|
||||
_worldPacket << signature.Signer;
|
||||
_worldPacket << signature.Choice;
|
||||
}
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Petition::SignPetition::Read()
|
||||
{
|
||||
_worldPacket >> PetitionGUID;
|
||||
_worldPacket >> Choice;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Petition::PetitionSignResults::Write()
|
||||
{
|
||||
_worldPacket << Item;
|
||||
_worldPacket << Player;
|
||||
|
||||
_worldPacket.WriteBits(Error, 4);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Petition::PetitionAlreadySigned::Write()
|
||||
{
|
||||
_worldPacket << SignerGUID;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Petition::DeclinePetition::Read()
|
||||
{
|
||||
_worldPacket >> PetitionGUID;
|
||||
}
|
||||
|
||||
void WorldPackets::Petition::TurnInPetition::Read()
|
||||
{
|
||||
_worldPacket >> Item;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Petition::TurnInPetitionResult::Write()
|
||||
{
|
||||
_worldPacket.WriteBits(Result, 4);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Petition::OfferPetition::Read()
|
||||
{
|
||||
_worldPacket >> ItemGUID;
|
||||
_worldPacket >> TargetPlayer;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Petition::OfferPetitionError::Write()
|
||||
{
|
||||
_worldPacket << PlayerGUID;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Petition::PetitionRenameGuild::Read()
|
||||
{
|
||||
_worldPacket >> PetitionGuid;
|
||||
|
||||
_worldPacket.ResetBitPos();
|
||||
uint32 nameLen = _worldPacket.ReadBits(7);
|
||||
|
||||
NewGuildName = _worldPacket.ReadString(nameLen);
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Petition::PetitionRenameGuildResponse::Write()
|
||||
{
|
||||
_worldPacket << PetitionGuid;
|
||||
|
||||
_worldPacket.WriteBits(NewGuildName.length(), 7);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteString(NewGuildName);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
@@ -0,0 +1,246 @@
|
||||
/*
|
||||
* Copyright (C) 2008-2015 TrinityCore <http://www.trinitycore.org/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef PetitionPackets_h__
|
||||
#define PetitionPackets_h__
|
||||
|
||||
#include "Packet.h"
|
||||
#include "ObjectGuid.h"
|
||||
#include "WorldSession.h"
|
||||
|
||||
namespace WorldPackets
|
||||
{
|
||||
namespace Petition
|
||||
{
|
||||
class QueryPetition final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
QueryPetition(WorldPacket&& packet) : ClientPacket(CMSG_QUERY_PETITION, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid ItemGUID;
|
||||
uint32 PetitionID = 0;
|
||||
};
|
||||
|
||||
struct PetitionInfo
|
||||
{
|
||||
int32 PetitionID = 0;
|
||||
ObjectGuid Petitioner;
|
||||
std::string Title;
|
||||
std::string BodyText;
|
||||
int32 MinSignatures = 0;
|
||||
int32 MaxSignatures = 0;
|
||||
int32 DeadLine = 0;
|
||||
int32 IssueDate = 0;
|
||||
int32 AllowedGuildID = 0;
|
||||
int32 AllowedClasses = 0;
|
||||
int32 AllowedRaces = 0;
|
||||
int16 AllowedGender = 0;
|
||||
int32 AllowedMinLevel = 0;
|
||||
int32 AllowedMaxLevel = 0;
|
||||
int32 NumChoices = 0;
|
||||
int32 StaticType = 0;
|
||||
uint32 Muid = 0;
|
||||
std::string Choicetext[10];
|
||||
};
|
||||
|
||||
class QueryPetitionResponse final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
QueryPetitionResponse() : ServerPacket(SMSG_QUERY_PETITION_RESPONSE, 75) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
uint32 PetitionID = 0;
|
||||
bool Allow = false;
|
||||
PetitionInfo Info;
|
||||
};
|
||||
|
||||
class PetitionShowList final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
PetitionShowList(WorldPacket&& packet) : ClientPacket(CMSG_PETITION_SHOW_LIST, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid PetitionUnit;
|
||||
};
|
||||
|
||||
class ServerPetitionShowList final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
ServerPetitionShowList() : ServerPacket(SMSG_PETITION_SHOW_LIST, 20) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid Unit;
|
||||
uint32 Price = 0;
|
||||
};
|
||||
|
||||
class PetitionBuy final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
PetitionBuy(WorldPacket&& packet) : ClientPacket(CMSG_PETITION_BUY, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Unit;
|
||||
std::string Title;
|
||||
};
|
||||
|
||||
class PetitionShowSignatures final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
PetitionShowSignatures(WorldPacket&& packet) : ClientPacket(CMSG_PETITION_SHOW_SIGNATURES, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Item;
|
||||
};
|
||||
|
||||
class ServerPetitionShowSignatures final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
struct PetitionSignature
|
||||
{
|
||||
ObjectGuid Signer;
|
||||
int32 Choice = 0;
|
||||
};
|
||||
|
||||
ServerPetitionShowSignatures() : ServerPacket(SMSG_PETITION_SHOW_SIGNATURES, 40) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid Item;
|
||||
ObjectGuid Owner;
|
||||
ObjectGuid OwnerAccountID;
|
||||
int32 PetitionID = 0;
|
||||
std::vector<PetitionSignature> Signatures;
|
||||
};
|
||||
|
||||
class SignPetition final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
SignPetition(WorldPacket&& packet) : ClientPacket(CMSG_SIGN_PETITION, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid PetitionGUID;
|
||||
uint8 Choice = 0;
|
||||
};
|
||||
|
||||
class PetitionSignResults final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
PetitionSignResults() : ServerPacket(SMSG_PETITION_SIGN_RESULTS, 33) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid Item;
|
||||
ObjectGuid Player;
|
||||
int32 Error = 0; // PetitionError
|
||||
};
|
||||
|
||||
class PetitionAlreadySigned final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
PetitionAlreadySigned() : ServerPacket(SMSG_PETITION_ALREADY_SIGNED, 16) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid SignerGUID;
|
||||
};
|
||||
|
||||
class DeclinePetition final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
DeclinePetition(WorldPacket&& packet) : ClientPacket(CMSG_DECLINE_PETITION, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid PetitionGUID;
|
||||
};
|
||||
|
||||
class TurnInPetition final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
TurnInPetition(WorldPacket&& packet) : ClientPacket(CMSG_TURN_IN_PETITION, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Item;
|
||||
};
|
||||
|
||||
class TurnInPetitionResult final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
TurnInPetitionResult() : ServerPacket(SMSG_TURN_IN_PETITION_RESULTS, 4) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
int32 Result = 0; // PetitionError
|
||||
};
|
||||
|
||||
class OfferPetition final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
OfferPetition(WorldPacket&& packet) : ClientPacket(CMSG_OFFER_PETITION, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid TargetPlayer;
|
||||
ObjectGuid ItemGUID;
|
||||
};
|
||||
|
||||
class OfferPetitionError final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
OfferPetitionError() : ServerPacket(SMSG_OFFER_PETITION_ERROR, 16) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid PlayerGUID;
|
||||
};
|
||||
|
||||
class PetitionRenameGuild final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
PetitionRenameGuild(WorldPacket&& packet) : ClientPacket(CMSG_PETITION_RENAME_GUILD, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid PetitionGuid;
|
||||
std::string NewGuildName;
|
||||
};
|
||||
|
||||
class PetitionRenameGuildResponse final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
PetitionRenameGuildResponse() : ServerPacket(SMSG_PETITION_RENAME_GUILD_RESPONSE, 20) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid PetitionGuid;
|
||||
std::string NewGuildName;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Petition::PetitionInfo const& petitionInfo);
|
||||
|
||||
#endif // PetitionPackets_h__
|
||||
@@ -37,6 +37,7 @@
|
||||
#include "Packets/MiscPackets.h"
|
||||
#include "Packets/MovementPackets.h"
|
||||
#include "Packets/NPCPackets.h"
|
||||
#include "Packets/PetitionPackets.h"
|
||||
#include "Packets/QueryPackets.h"
|
||||
#include "Packets/QuestPackets.h"
|
||||
#include "Packets/SocialPackets.h"
|
||||
@@ -141,7 +142,7 @@ void OpcodeTable::Initialize()
|
||||
#define DEFINE_HANDLER(opcode, status, processing, packetclass, handler) \
|
||||
ValidateAndSetClientOpcode<packetclass, handler>(opcode, #opcode, status, processing);
|
||||
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_ACCEPT_GUILD_INVITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_HANDLER(CMSG_ACCEPT_GUILD_INVITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::AcceptGuildInvite, &WorldSession::HandleGuildAcceptInvite);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_ACCEPT_LEVEL_GRANT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAcceptGrantLevel );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_ACCEPT_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAcceptTradeOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_ACCEPT_WARGAME_INVITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
@@ -185,7 +186,6 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_AUTOSTORE_BANK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoStoreBankItemOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_AUTOSTORE_GROUND_ITEM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_HANDLER(CMSG_AUTOSTORE_LOOT_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Loot::AutoStoreLootItem, &WorldSession::HandleAutostoreLootItemOpcode);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_AUTO_DECLINE_GUILD_INVITES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoDeclineGuildInvites );
|
||||
DEFINE_HANDLER(CMSG_BANKER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::NPC::Hello, &WorldSession::HandleBankerActivateOpcode);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLEFIELD_JOIN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLEFIELD_LEAVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleBattlefieldLeaveOpcode );
|
||||
@@ -325,8 +325,8 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_CREATURE_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Query::QueryCreature, &WorldSession::HandleCreatureQuery);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_DANCE_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_HANDLER(CMSG_DB_QUERY_BULK, STATUS_AUTHED, PROCESS_INPLACE, WorldPackets::Query::DBQueryBulk, &WorldSession::HandleDBQueryBulk);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_DECLINE_GUILD_INVITES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_DECLINE_PETITION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionDeclineOpcode );
|
||||
DEFINE_HANDLER(CMSG_DECLINE_GUILD_INVITES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::DeclineGuildInvites, &WorldSession::HandleDeclineGuildInvites);
|
||||
DEFINE_HANDLER(CMSG_DECLINE_PETITION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Petition::DeclinePetition, &WorldSession::HandleDeclinePetition);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_DELETE_EQUIPMENT_SET, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetDelete );
|
||||
DEFINE_HANDLER(CMSG_DEL_FRIEND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Social::DelFriend, &WorldSession::HandleDelFriendOpcode);
|
||||
DEFINE_HANDLER(CMSG_DEL_IGNORE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Social::DelIgnore, &WorldSession::HandleDelIgnoreOpcode);
|
||||
@@ -408,60 +408,52 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GROUP_SET_LEADER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupSetLeaderOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GROUP_SET_ROLES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleGroupSetRolesOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GROUP_SWAP_SUB_GROUP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupSwapSubGroupOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_ACCEPT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAcceptOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_ADD_BATTLENET_FRIEND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_ADD_RANK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAddRankOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_ASSIGN_MEMBER_RANK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAssignRankOpcode );
|
||||
DEFINE_HANDLER(CMSG_GUILD_ADD_RANK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildAddRank, &WorldSession::HandleGuildAddRank);
|
||||
DEFINE_HANDLER(CMSG_GUILD_ASSIGN_MEMBER_RANK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildAssignMemberRank, &WorldSession::HandleGuildAssignRank);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_AUTO_DECLINE_INVITATION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANKER_ACTIVATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankerActivate );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_BUY_TAB, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankBuyTab );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_DEPOSIT_MONEY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankDepositMoney );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_LOG_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankLogQuery );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_MONEY_WITHDRAWN_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankMoneyWithdrawn );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_NOTE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_QUERY_TAB, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankQueryTab );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_QUERY_TEXT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryGuildBankTabText );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_SET_TAB_TEXT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_SWAP_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankSwapItems );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_UPDATE_TAB, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankUpdateTab );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_WITHDRAW_MONEY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankWithdrawMoney );
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildBankActivate, &WorldSession::HandleGuildBankActivate);
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_BUY_TAB, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildBankBuyTab, &WorldSession::HandleGuildBankBuyTab);
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_DEPOSIT_MONEY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildBankDepositMoney, &WorldSession::HandleGuildBankDepositMoney);
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_LOG_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildBankLogQuery, &WorldSession::HandleGuildBankLogQuery);
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_QUERY_TAB, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildBankQueryTab, &WorldSession::HandleGuildBankQueryTab);
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildBankRemainingWithdrawMoneyQuery, &WorldSession::HandleGuildBankMoneyWithdrawn);
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_SET_TAB_TEXT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildBankSetTabText, &WorldSession::HandleGuildBankSetTabText);
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_SWAP_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildBankSwapItems, &WorldSession::HandleGuildBankSwapItems);
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_TEXT_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildBankTextQuery, &WorldSession::HandleGuildBankTextQuery);
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_UPDATE_TAB, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildBankUpdateTab, &WorldSession::HandleGuildBankUpdateTab);
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_WITHDRAW_MONEY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildBankWithdrawMoney, &WorldSession::HandleGuildBankWithdrawMoney);
|
||||
DEFINE_HANDLER(CMSG_GUILD_CHALLENGE_UPDATE_REQUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildChallengeUpdateRequest, &WorldSession::HandleGuildChallengeUpdateRequest);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_CHANGE_NAME_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_DECLINE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildDeclineOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_DELETE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_DELETE_RANK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildDeleteRankOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_DEMOTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildDemoteOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_DISBAND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildDisbandOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_EVENT_LOG_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildEventLogQueryOpcode );
|
||||
DEFINE_HANDLER(CMSG_GUILD_DECLINE_INVITATION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildDeclineInvitation, &WorldSession::HandleGuildDeclineInvitation);
|
||||
DEFINE_HANDLER(CMSG_GUILD_DELETE_RANK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildDeleteRank, &WorldSession::HandleGuildDeleteRank);
|
||||
DEFINE_HANDLER(CMSG_GUILD_DEMOTE_MEMBER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildDemoteMember, &WorldSession::HandleGuildDemoteMember);
|
||||
DEFINE_HANDLER(CMSG_GUILD_DELETE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildDelete, &WorldSession::HandleGuildDelete);
|
||||
DEFINE_HANDLER(CMSG_GUILD_EVENT_LOG_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildEventLogQuery, &WorldSession::HandleGuildEventLogQuery);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_GET_ACHIEVEMENT_MEMBERS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_GET_RANKS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildGetRanksOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_GET_ROSTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRosterOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_INVITE_BY_NAME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildInviteOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_LEAVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildLeaveOpcode );
|
||||
DEFINE_HANDLER(CMSG_GUILD_GET_RANKS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildGetRanks, &WorldSession::HandleGuildGetRanks);
|
||||
DEFINE_HANDLER(CMSG_GUILD_GET_ROSTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildGetRoster, &WorldSession::HandleGuildGetRoster);
|
||||
DEFINE_HANDLER(CMSG_GUILD_INVITE_BY_NAME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildInviteByName, &WorldSession::HandleGuildInviteByName);
|
||||
DEFINE_HANDLER(CMSG_GUILD_LEAVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildLeave, &WorldSession::HandleGuildLeave);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_MEMBER_SEND_SOR_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_NEWS_UPDATE_STICKY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleGuildNewsUpdateStickyOpcode);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_OFFICER_REMOVE_MEMBER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildOfficerRemoveMemberOpcode);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_PERMISSIONS_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildPermissions );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_PROMOTE_MEMBER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildPromoteOpcode );
|
||||
DEFINE_HANDLER(CMSG_GUILD_NEWS_UPDATE_STICKY, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Guild::GuildNewsUpdateSticky, &WorldSession::HandleGuildNewsUpdateSticky);
|
||||
DEFINE_HANDLER(CMSG_GUILD_OFFICER_REMOVE_MEMBER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildOfficerRemoveMember, &WorldSession::HandleGuildOfficerRemoveMember);
|
||||
DEFINE_HANDLER(CMSG_GUILD_PERMISSIONS_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildPermissionsQuery, &WorldSession::HandleGuildPermissionsQuery);
|
||||
DEFINE_HANDLER(CMSG_GUILD_PROMOTE_MEMBER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildPromoteMember, &WorldSession::HandleGuildPromoteMember);
|
||||
DEFINE_HANDLER(CMSG_GUILD_QUERY, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Guild::QueryGuildInfo, &WorldSession::HandleGuildQueryOpcode);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_QUERY_MEMBERS_FOR_RECIPE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_QUERY_MEMBER_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_QUERY_NEWS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleGuildQueryNewsOpcode );
|
||||
DEFINE_HANDLER(CMSG_GUILD_QUERY_NEWS, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Guild::GuildQueryNews, &WorldSession::HandleGuildQueryNews);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_QUERY_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_REPLACE_GUILD_MASTER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_REQUEST_CHALLENGE_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_REQUEST_CHALLENGE_UPDATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestChallengeUpdate);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_REQUEST_MAX_DAILY_XP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestMaxDailyXP );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_REQUEST_PARTY_STATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestPartyState );
|
||||
DEFINE_HANDLER(CMSG_GUILD_REQUEST_PARTY_STATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::RequestGuildPartyState, &WorldSession::HandleGuildRequestPartyState);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_SET_ACHIEVEMENT_TRACKING, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetAchievementTracking);
|
||||
DEFINE_HANDLER(CMSG_GUILD_SET_FOCUSED_ACHIEVEMENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Achievement::GuildSetFocusedAchievement, &WorldSession::HandleGuildSetFocusedAchievement);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_SET_GUILD_MASTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetGuildMaster );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_SET_MEMBER_NOTE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_SET_NOTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetNoteOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_SET_RANK_PERMISSIONS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetRankPermissionsOpcode);
|
||||
DEFINE_HANDLER(CMSG_GUILD_SET_GUILD_MASTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildSetGuildMaster, &WorldSession::HandleGuildSetGuildMaster);
|
||||
DEFINE_HANDLER(CMSG_GUILD_SET_MEMBER_NOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildSetMemberNote, &WorldSession::HandleGuildSetMemberNote);
|
||||
DEFINE_HANDLER(CMSG_GUILD_SET_RANK_PERMISSIONS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildSetRankPermissions, &WorldSession::HandleGuildSetRankPermissions);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_SHIFT_RANK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_UPDATE_INFO_TEXT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildChangeInfoTextOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_UPDATE_MOTD_TEXT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildMOTDOpcode );
|
||||
DEFINE_HANDLER(CMSG_GUILD_UPDATE_INFO_TEXT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildUpdateInfoText, &WorldSession::HandleGuildUpdateInfoText);
|
||||
DEFINE_HANDLER(CMSG_GUILD_UPDATE_MOTD_TEXT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildUpdateMotdText, &WorldSession::HandleGuildUpdateMotdText);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_HEARTH_AND_RESURRECT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleHearthAndResurrect );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_IGNORE_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleIgnoreTradeOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_INCREASE_CAST_TIME_FOR_SPELL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
@@ -507,9 +499,8 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_LF_GUILD_BROWSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderBrowse );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_LF_GUILD_DECLINE_RECRUIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderDeclineRecruit );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_LF_GUILD_GET_APPLICATIONS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderGetApplications);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_LF_GUILD_GET_GUILD_POST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_LF_GUILD_GET_GUILD_POST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderPostRequest );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_LF_GUILD_GET_RECRUITS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderGetRecruits );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_LF_GUILD_POST_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderPostRequest );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_LF_GUILD_REMOVE_RECRUIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderRemoveRecruit );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_LF_GUILD_SET_GUILD_POST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderSetGuildPost );
|
||||
DEFINE_HANDLER(CMSG_LIST_INVENTORY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::NPC::Hello, &WorldSession::HandleListInventoryOpcode);
|
||||
@@ -635,7 +626,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_NPC_TEXT_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Query::QueryNPCText, &WorldSession::HandleNpcTextQueryOpcode);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_OBJECT_UPDATE_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleObjectUpdateFailedOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_OBJECT_UPDATE_RESCUED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_OFFER_PETITION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleOfferPetitionOpcode );
|
||||
DEFINE_HANDLER(CMSG_OFFER_PETITION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Petition::OfferPetition, &WorldSession::HandleOfferPetition);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_OPENING_CINEMATIC, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleOpeningCinematic );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_OPEN_GARRISON_MISSION_NPC, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_OPEN_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleOpenItemOpcode );
|
||||
@@ -648,12 +639,10 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_PARTY_SILENCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_PARTY_UNINVITE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupUninviteOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_PARTY_UNSILENCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_PETITION_BUY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionBuyOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_PETITION_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionQueryOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_PETITION_RENAME_GUILD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionRenameGuildOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_PETITION_SHOW_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionShowListOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_PETITION_SHOW_SIGNATURES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionShowSignOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_PETITION_SIGN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionSignOpcode );
|
||||
DEFINE_HANDLER(CMSG_PETITION_BUY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Petition::PetitionBuy, &WorldSession::HandlePetitionBuy);
|
||||
DEFINE_HANDLER(CMSG_PETITION_RENAME_GUILD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Petition::PetitionRenameGuild, &WorldSession::HandlePetitionRenameGuild);
|
||||
DEFINE_HANDLER(CMSG_PETITION_SHOW_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Petition::PetitionShowList, &WorldSession::HandlePetitionShowList);
|
||||
DEFINE_HANDLER(CMSG_PETITION_SHOW_SIGNATURES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Petition::PetitionShowSignatures, &WorldSession::HandlePetitionShowSignatures);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_PET_ABANDON, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetAbandon );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_PET_ACTION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetAction );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_PET_BATTLE_FINAL_NOTIF, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
@@ -686,10 +675,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Query::QueryCorpseLocationFromClient, &WorldSession::HandleQueryCorpseLocation);
|
||||
DEFINE_HANDLER(CMSG_QUERY_CORPSE_TRANSPORT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Query::QueryCorpseTransport, &WorldSession::HandleQueryCorpseTransport);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_QUERY_COUNTDOWN_TIMER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_QUERY_GUILD_XP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildQueryXPOpcode );
|
||||
DEFINE_HANDLER(CMSG_QUERY_INSPECT_ACHIEVEMENTS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Inspect::QueryInspectAchievements, &WorldSession::HandleQueryInspectAchievements);
|
||||
DEFINE_HANDLER(CMSG_QUERY_NEXT_MAIL_TIME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Mail::MailQueryNextMailTime, &WorldSession::HandleQueryNextMailTime);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_QUERY_PETITION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_HANDLER(CMSG_QUERY_PETITION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Petition::QueryPetition, &WorldSession::HandleQueryPetition);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_QUERY_SCENARIO_POI, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_HANDLER(CMSG_QUERY_TIME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Query::QueryTime, &WorldSession::HandleQueryTimeOpcode);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_QUESTGIVER_ACCEPT_QUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverAcceptQuestOpcode);
|
||||
@@ -732,7 +718,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_REQUEST_CEMETERY_LIST, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Misc::RequestCemeteryList, &WorldSession::HandleRequestCemeteryList);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_CONQUEST_FORMULA_CONSTANTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_FORCED_REACTIONS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_GUILD_REWARDS_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRewardsQueryOpcode );
|
||||
DEFINE_HANDLER(CMSG_REQUEST_GUILD_REWARDS_LIST, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Guild::RequestGuildRewardsList, &WorldSession::HandleRequestGuildRewardsList);
|
||||
DEFINE_HANDLER(CMSG_REQUEST_HONOR_STATS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Inspect::RequestHonorStats, &WorldSession::HandleRequestHonorStatsOpcode);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_LFG_LIST_BLACKLIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_PARTY_JOIN_UPDATES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
@@ -758,7 +744,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_ROLE_POLL_BEGIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRolePollBeginOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_ROUTER_CLIENT_LOG_STREAMING_ERROR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SAVE_CUF_PROFILES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleSaveCUFProfiles );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SAVE_GUILD_EMBLEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSaveGuildEmblemOpcode );
|
||||
DEFINE_HANDLER(CMSG_SAVE_GUILD_EMBLEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::SaveGuildEmblem, &WorldSession::HandleSaveGuildEmblem);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SAVE_PLAYER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SCENE_PLAYBACK_CANCELED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SCENE_PLAYBACK_COMPLETE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
@@ -789,7 +775,6 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_FACTION_CHEAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_FACTION_INACTIVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionInactiveOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_FACTION_NOT_AT_WAR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_GUILD_BANK_TEXT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetGuildBankTabText );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_LFG_BONUS_FACTION_ID, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_LFG_COMMENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
@@ -819,7 +804,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SHOWING_CLOAK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleShowingCloakOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SHOWING_HELM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleShowingHelmOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SHOW_TRADE_SKILL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SIGN_PETITION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_HANDLER(CMSG_SIGN_PETITION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Petition::SignPetition, &WorldSession::HandleSignPetition);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SILENCE_PARTY_TALKER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SOCKET_GEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSocketOpcode );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SORT_BAGS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
@@ -847,7 +832,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_SWAP_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::SwapItem, &WorldSession::HandleSwapItem);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SWAP_SUB_GROUPS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SYNC_DANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_TABARD_VENDOR_ACTIVATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTabardVendorActivateOpcode);
|
||||
DEFINE_HANDLER(CMSG_TABARD_VENDOR_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::NPC::Hello, &WorldSession::HandleTabardVendorActivateOpcode);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_TAXICLEARALLNODES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_TAXIENABLEALLNODES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_TAXISHOWNODES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
@@ -868,7 +853,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_TRANSMOGRIFY_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTransmogrifyItems );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_TRIGGER_CINEMATIC_CHEAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_TROPHY_MONUMENT_LOAD_SELECTED_TROPHY_ID, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_TURN_IN_PETITION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTurnInPetitionOpcode );
|
||||
DEFINE_HANDLER(CMSG_TURN_IN_PETITION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Petition::TurnInPetition, &WorldSession::HandleTurnInPetition);
|
||||
DEFINE_HANDLER(CMSG_TUTORIAL_FLAG, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::TutorialSetFlag, &WorldSession::HandleTutorialFlag);
|
||||
DEFINE_HANDLER(CMSG_UI_TIME_REQUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Misc::UITimeRequest, &WorldSession::HandleUITimeRequest);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_UNACCEPT_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleUnacceptTradeOpcode );
|
||||
@@ -1300,69 +1285,58 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_DELETED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_EARNED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_MEMBERS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_LOG_QUERY_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_MONEY_WITHDRAWN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_QUERY_TEXT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_LOG_QUERY_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_QUERY_RESULTS, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_BANK_TEXT_QUERY_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CANCEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CHALLENGE_COMPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CHALLENGE_UPDATED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CHALLENGE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CHANGE_NAME_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT_2, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_DELETED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_DECLINE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_BANK_MONEY_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_DISBANDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_LOG_QUERY_RESULTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_MOTD, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_NEW_LEADER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_PLAYER_JOINED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_PLAYER_LEFT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_PRESENCE_CHANGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_RANKS_UPDATED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_RANK_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_ADDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_BANK_MONEY_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_DISBANDED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_LOG_QUERY_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_MOTD, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_NEW_LEADER, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_PLAYER_JOINED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_PLAYER_LEFT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_PRESENCE_CHANGE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_RANK_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_RANKS_UPDATED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_ADDED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_DELETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_MODIFIED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_TEXT_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_FLAGGED_FOR_RENAME, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_INVITE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_MODIFIED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_TAB_TEXT_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_FLAGGED_FOR_RENAME, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_INVITE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_INVITE_CANCEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_INVITE_DECLINED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_INVITE_EXPIRED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_KNOWN_RECIPES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MAX_DAILY_XP, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBERS_WITH_RECIPE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBER_DAILY_RESET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBER_DAILY_RESET, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBER_RECIPES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBER_UPDATE_NOTE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBER_UPDATE_NOTE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MOVED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MOVE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MOVE_STARTING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NAME_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NEWS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NEWS, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NEWS_DELETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NEWS_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_PARTY_STATE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_PERMISSIONS_QUERY_RESULTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_PARTY_STATE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_PERMISSIONS_QUERY_RESULTS, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_QUERY_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RANKS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RANKS, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_SEND_RANK_CHANGE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_REPUTATION_REACTION_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_REPUTATION_WEEKLY_CAP, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_RESET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_REWARDS_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ROSTER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ROSTER_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_REWARDS_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ROSTER, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ROSTER_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_SEND_RANK_CHANGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_SET_NOTE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_TRADESKILL_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_XP, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_XP_GAIN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_XP_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HEALTH_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HIGHEST_THREAT_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOTFIX_NOTIFY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
@@ -1616,10 +1590,9 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PERIODICAURALOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETGODMODE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_ALREADY_SIGNED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_DECLINED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_RENAME_GUILD_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_SHOW_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_SHOW_SIGNATURES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_RENAME_GUILD_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_SHOW_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_SHOW_SIGNATURES, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PETITION_SIGN_RESULTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_ACTION_FEEDBACK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_ACTION_SOUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
@@ -1683,8 +1656,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_LOG_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_OPTIONS_ENABLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_SEASON, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_BATTLE_PET_NAME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PETITION_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PETITION_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_TIME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUESTGIVER_INVALID_QUEST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUESTGIVER_OFFER_REWARD, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
@@ -1761,7 +1733,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_POLL_BEGIN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_POLL_INFORM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RUNE_REGEN_DEBUG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SAVE_GUILD_EMBLEM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SAVE_GUILD_EMBLEM, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_BOOT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_COMPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SCENARIO_OUT_OF_BOUNDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
@@ -1874,7 +1846,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUPPRESS_NPC_GREETINGS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUSPEND_COMMS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUSPEND_TOKEN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TABARD_VENDOR_ACTIVATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TABARD_VENDOR_ACTIVATE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TALENTS_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TALENTS_INFO, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TALENTS_INVOLUNTARILY_RESET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
@@ -1900,7 +1872,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRANSFER_PENDING, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRIGGER_CINEMATIC, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRIGGER_MOVIE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TURN_IN_PETITION_RESULTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TURN_IN_PETITION_RESULTS, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TUTORIAL_FLAGS, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UI_TIME, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNDELETE_CHARACTER_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
|
||||
@@ -90,7 +90,6 @@ enum OpcodeClient : uint32
|
||||
CMSG_AUTOSTORE_BANK_ITEM = 0x0732,
|
||||
CMSG_AUTOSTORE_GROUND_ITEM = 0xBADD,
|
||||
CMSG_AUTOSTORE_LOOT_ITEM = 0x0609,
|
||||
CMSG_AUTO_DECLINE_GUILD_INVITES = 0xBADD,
|
||||
CMSG_BANKER_ACTIVATE = 0x1B24,
|
||||
CMSG_BATTLEFIELD_JOIN = 0xBADD,
|
||||
CMSG_BATTLEFIELD_LEAVE = 0x06F1,
|
||||
@@ -311,34 +310,33 @@ enum OpcodeClient : uint32
|
||||
CMSG_GROUP_SET_LEADER = 0xBADD,
|
||||
CMSG_GROUP_SET_ROLES = 0xBADD,
|
||||
CMSG_GROUP_SWAP_SUB_GROUP = 0xBADD,
|
||||
CMSG_GUILD_ACCEPT = 0xBADD,
|
||||
CMSG_GUILD_ADD_BATTLENET_FRIEND = 0x1437,
|
||||
CMSG_GUILD_ADD_RANK = 0x1630,
|
||||
CMSG_GUILD_ASSIGN_MEMBER_RANK = 0x0436,
|
||||
CMSG_GUILD_AUTO_DECLINE_INVITATION = 0x062F,
|
||||
CMSG_GUILD_BANKER_ACTIVATE = 0x19E3,
|
||||
CMSG_GUILD_BANK_ACTIVATE = 0x19E3,
|
||||
CMSG_GUILD_BANK_BUY_TAB = 0x1BC3,
|
||||
CMSG_GUILD_BANK_DEPOSIT_MONEY = 0x1B11,
|
||||
CMSG_GUILD_BANK_LOG_QUERY = 0x0428,
|
||||
CMSG_GUILD_BANK_MONEY_WITHDRAWN_QUERY = 0x020D,
|
||||
CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY = 0x063D,
|
||||
CMSG_GUILD_BANK_NOTE = 0xBADD,
|
||||
CMSG_GUILD_BANK_QUERY_TAB = 0x1139,
|
||||
CMSG_GUILD_BANK_QUERY_TEXT = 0x062D,
|
||||
CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY = 0x063D,
|
||||
CMSG_GUILD_BANK_TEXT_QUERY = 0x062D,
|
||||
CMSG_GUILD_BANK_SET_TAB_TEXT = 0x0E30,
|
||||
CMSG_GUILD_BANK_SWAP_ITEMS = 0x1131,
|
||||
CMSG_GUILD_BANK_UPDATE_TAB = 0x13C1,
|
||||
CMSG_GUILD_BANK_WITHDRAW_MONEY = 0xBADD,
|
||||
CMSG_GUILD_BANK_WITHDRAW_MONEY = 0x020D,
|
||||
CMSG_GUILD_CHALLENGE_UPDATE_REQUEST = 0x166E,
|
||||
CMSG_GUILD_CHANGE_NAME_REQUEST = 0x043E,
|
||||
CMSG_GUILD_DECLINE = 0x0667,
|
||||
CMSG_GUILD_DECLINE_INVITATION = 0x0667,
|
||||
CMSG_GUILD_DELETE = 0x1427,
|
||||
CMSG_GUILD_DELETE_RANK = 0x0C28,
|
||||
CMSG_GUILD_DEMOTE = 0x142F,
|
||||
CMSG_GUILD_DISBAND = 0xBADD,
|
||||
CMSG_GUILD_DEMOTE_MEMBER = 0x142F,
|
||||
CMSG_GUILD_EVENT_LOG_QUERY = 0x0E37,
|
||||
CMSG_GUILD_GET_ACHIEVEMENT_MEMBERS = 0x0C40,
|
||||
CMSG_GUILD_GET_RANKS = 0x0C37,
|
||||
CMSG_GUILD_GET_ROSTER = 0x0638,
|
||||
CMSG_GUILD_INFO = 0xBADD,
|
||||
CMSG_GUILD_INVITE_BY_NAME = 0x19A4,
|
||||
CMSG_GUILD_LEAVE = 0x0476,
|
||||
CMSG_GUILD_MEMBER_SEND_SOR_REQUEST = 0x0666,
|
||||
@@ -352,15 +350,11 @@ enum OpcodeClient : uint32
|
||||
CMSG_GUILD_QUERY_NEWS = 0x0676,
|
||||
CMSG_GUILD_QUERY_RECIPES = 0x1438,
|
||||
CMSG_GUILD_REPLACE_GUILD_MASTER = 0x163E,
|
||||
CMSG_GUILD_REQUEST_CHALLENGE_INFO = 0x166E,
|
||||
CMSG_GUILD_REQUEST_CHALLENGE_UPDATE = 0xBADD,
|
||||
CMSG_GUILD_REQUEST_MAX_DAILY_XP = 0xBADD,
|
||||
CMSG_GUILD_REQUEST_PARTY_STATE = 0x0A8E,
|
||||
CMSG_GUILD_SET_ACHIEVEMENT_TRACKING = 0x1640,
|
||||
CMSG_GUILD_SET_FOCUSED_ACHIEVEMENT = 0x0C7E,
|
||||
CMSG_GUILD_SET_GUILD_MASTER = 0x1184,
|
||||
CMSG_GUILD_SET_MEMBER_NOTE = 0x1C27,
|
||||
CMSG_GUILD_SET_NOTE = 0xBADD,
|
||||
CMSG_GUILD_SET_RANK_PERMISSIONS = 0x0E38,
|
||||
CMSG_GUILD_SHIFT_RANK = 0x0627,
|
||||
CMSG_GUILD_UPDATE_INFO_TEXT = 0x0C75,
|
||||
@@ -412,7 +406,6 @@ enum OpcodeClient : uint32
|
||||
CMSG_LF_GUILD_GET_APPLICATIONS = 0x043F,
|
||||
CMSG_LF_GUILD_GET_GUILD_POST = 0x0E68,
|
||||
CMSG_LF_GUILD_GET_RECRUITS = 0x0430,
|
||||
CMSG_LF_GUILD_POST_REQUEST = 0xBADD,
|
||||
CMSG_LF_GUILD_REMOVE_RECRUIT = 0x0680,
|
||||
CMSG_LF_GUILD_SET_GUILD_POST = 0x0B3D,
|
||||
CMSG_LIST_INVENTORY = 0x0B39,
|
||||
@@ -552,11 +545,9 @@ enum OpcodeClient : uint32
|
||||
CMSG_PARTY_UNINVITE = 0x1982,
|
||||
CMSG_PARTY_UNSILENCE = 0xBADD,
|
||||
CMSG_PETITION_BUY = 0x0010,
|
||||
CMSG_PETITION_QUERY = 0xBADD,
|
||||
CMSG_PETITION_RENAME_GUILD = 0x0920,
|
||||
CMSG_PETITION_SHOW_LIST = 0x000F,
|
||||
CMSG_PETITION_SHOW_SIGNATURES = 0x0BC4,
|
||||
CMSG_PETITION_SIGN = 0xBADD,
|
||||
CMSG_PET_ABANDON = 0x0005,
|
||||
CMSG_PET_ACTION = 0x133A,
|
||||
CMSG_PET_BATTLE_FINAL_NOTIF = 0x0565,
|
||||
@@ -589,7 +580,6 @@ enum OpcodeClient : uint32
|
||||
CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x128A,
|
||||
CMSG_QUERY_CORPSE_TRANSPORT = 0x0908,
|
||||
CMSG_QUERY_COUNTDOWN_TIMER = 0x09DE,
|
||||
CMSG_QUERY_GUILD_XP = 0xBADD,
|
||||
CMSG_QUERY_INSPECT_ACHIEVEMENTS = 0x0A07,
|
||||
CMSG_QUERY_NEXT_MAIL_TIME = 0x0B31,
|
||||
CMSG_QUERY_PETITION = 0x048B,
|
||||
@@ -692,7 +682,6 @@ enum OpcodeClient : uint32
|
||||
CMSG_SET_FACTION_CHEAT = 0xBADD,
|
||||
CMSG_SET_FACTION_INACTIVE = 0x09E2,
|
||||
CMSG_SET_FACTION_NOT_AT_WAR = 0x0A06,
|
||||
CMSG_SET_GUILD_BANK_TEXT = 0xBADD,
|
||||
CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT = 0x02C4,
|
||||
CMSG_SET_LFG_BONUS_FACTION_ID = 0x009D,
|
||||
CMSG_SET_LFG_COMMENT = 0xBADD,
|
||||
@@ -1201,31 +1190,29 @@ enum OpcodeServer : uint32
|
||||
SMSG_GUILD_ACHIEVEMENT_DELETED = 0x1058,
|
||||
SMSG_GUILD_ACHIEVEMENT_EARNED = 0x1048,
|
||||
SMSG_GUILD_ACHIEVEMENT_MEMBERS = 0x1826,
|
||||
SMSG_GUILD_BANK_LIST = 0x1245,
|
||||
SMSG_GUILD_BANK_LOG_QUERY_RESULT = 0x1237,
|
||||
SMSG_GUILD_BANK_MONEY_WITHDRAWN = 0x1047,
|
||||
SMSG_GUILD_BANK_QUERY_TEXT_RESULT = 0x1875,
|
||||
SMSG_GUILD_BANK_QUERY_RESULTS = 0x1245,
|
||||
SMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY = 0x1047,
|
||||
SMSG_GUILD_BANK_TEXT_QUERY_RESULT = 0x1875,
|
||||
SMSG_GUILD_CANCEL = 0xBADD,
|
||||
SMSG_GUILD_CHALLENGE_COMPLETED = 0x1836,
|
||||
SMSG_GUILD_CHALLENGE_UPDATED = 0x1A06,
|
||||
SMSG_GUILD_CHALLENGE_UPDATE = 0x1A06,
|
||||
SMSG_GUILD_CHANGE_NAME_RESULT = 0x1006,
|
||||
SMSG_GUILD_COMMAND_RESULT = 0x1205,
|
||||
SMSG_GUILD_COMMAND_RESULT_2 = 0xBADD,
|
||||
SMSG_GUILD_CRITERIA_DELETED = 0x1805,
|
||||
SMSG_GUILD_CRITERIA_UPDATE = 0x1208,
|
||||
SMSG_GUILD_DECLINE = 0xBADD,
|
||||
SMSG_GUILD_EVENT = 0xBADD,
|
||||
SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED = 0x1045,
|
||||
SMSG_GUILD_EVENT_BANK_MONEY_CHANGED = 0x1077,
|
||||
SMSG_GUILD_EVENT_DISBANDED = 0x1A08,
|
||||
SMSG_GUILD_EVENT_LOG_QUERY_RESULTS = 0x1075,
|
||||
SMSG_GUILD_EVENT_LOG_QUERY_RESULT = 0x1075,
|
||||
SMSG_GUILD_EVENT_MOTD = 0x1825,
|
||||
SMSG_GUILD_EVENT_NEW_LEADER = 0x1005,
|
||||
SMSG_GUILD_EVENT_PLAYER_JOINED = 0x1257,
|
||||
SMSG_GUILD_EVENT_PLAYER_LEFT = 0x1206,
|
||||
SMSG_GUILD_EVENT_PRESENCE_CHANGE = 0x1228,
|
||||
SMSG_GUILD_EVENT_RANKS_UPDATED = 0x1018,
|
||||
SMSG_GUILD_EVENT_RANK_CHANGED = 0x1276,
|
||||
SMSG_GUILD_EVENT_RANKS_UPDATED = 0x1018,
|
||||
SMSG_GUILD_EVENT_TAB_ADDED = 0x1868,
|
||||
SMSG_GUILD_EVENT_TAB_DELETED = 0x1808,
|
||||
SMSG_GUILD_EVENT_TAB_MODIFIED = 0x1035,
|
||||
@@ -1236,34 +1223,25 @@ enum OpcodeServer : uint32
|
||||
SMSG_GUILD_INVITE_DECLINED = 0x1226,
|
||||
SMSG_GUILD_INVITE_EXPIRED = 0x1246,
|
||||
SMSG_GUILD_KNOWN_RECIPES = 0x1078,
|
||||
SMSG_GUILD_MAX_DAILY_XP = 0xBADD,
|
||||
SMSG_GUILD_MEMBERS_WITH_RECIPE = 0x1277,
|
||||
SMSG_GUILD_MEMBER_DAILY_RESET = 0x1015,
|
||||
SMSG_GUILD_MEMBER_RECIPES = 0x1036,
|
||||
SMSG_GUILD_MEMBER_UPDATE_NOTE = 0x1846,
|
||||
SMSG_GUILD_MOVED = 0x1838,
|
||||
SMSG_GUILD_MOVE_COMPLETE = 0xBADD,
|
||||
SMSG_GUILD_MOVE_STARTING = 0x1877,
|
||||
SMSG_GUILD_NAME_CHANGED = 0x1A07,
|
||||
SMSG_GUILD_NEWS = 0x1027,
|
||||
SMSG_GUILD_NEWS_DELETED = 0x1007,
|
||||
SMSG_GUILD_NEWS_UPDATE = 0xBADD,
|
||||
SMSG_GUILD_PARTY_STATE_RESPONSE = 0x1225,
|
||||
SMSG_GUILD_PERMISSIONS_QUERY_RESULTS = 0x1827,
|
||||
SMSG_GUILD_QUERY_RESPONSE = 0x1046,
|
||||
SMSG_GUILD_RANKS = 0x1218,
|
||||
SMSG_GUILD_RECIPES = 0xBADD,
|
||||
SMSG_GUILD_REPUTATION_REACTION_CHANGED = 0x1068,
|
||||
SMSG_GUILD_REPUTATION_WEEKLY_CAP = 0xBADD,
|
||||
SMSG_GUILD_RESET = 0x1258,
|
||||
SMSG_GUILD_REWARDS_LIST = 0x1818,
|
||||
SMSG_GUILD_ROSTER = 0x1026,
|
||||
SMSG_GUILD_ROSTER_UPDATE = 0x1265,
|
||||
SMSG_GUILD_SEND_RANK_CHANGE = 0x1207,
|
||||
SMSG_GUILD_SET_NOTE = 0xBADD,
|
||||
SMSG_GUILD_TRADESKILL_UPDATE = 0xBADD,
|
||||
SMSG_GUILD_XP = 0xBADD,
|
||||
SMSG_GUILD_XP_GAIN = 0xBADD,
|
||||
SMSG_GUILD_XP_UPDATE = 0xBADD,
|
||||
SMSG_HEALTH_UPDATE = 0x0BE1,
|
||||
SMSG_HIGHEST_THREAT_UPDATE = 0x059A,
|
||||
SMSG_HOTFIX_NOTIFY = 0x1304,
|
||||
@@ -1517,7 +1495,6 @@ enum OpcodeServer : uint32
|
||||
SMSG_PERIODICAURALOG = 0x0B1B,
|
||||
SMSG_PETGODMODE = 0xBADD,
|
||||
SMSG_PETITION_ALREADY_SIGNED = 0x0D8E,
|
||||
SMSG_PETITION_DECLINED = 0x1B32,
|
||||
SMSG_PETITION_RENAME_GUILD_RESPONSE = 0x1055,
|
||||
SMSG_PETITION_SHOW_LIST = 0x0915,
|
||||
SMSG_PETITION_SHOW_SIGNATURES = 0x0830,
|
||||
|
||||
@@ -1385,23 +1385,23 @@ uint32 WorldSession::DosProtection::GetMaxPacketCounterAllowed(uint16 opcode) co
|
||||
//case CMSG_ARENA_TEAM_REMOVE: // not profiled
|
||||
//case CMSG_ARENA_TEAM_LEADER: // not profiled
|
||||
case CMSG_LOOT_METHOD: // not profiled
|
||||
case CMSG_GUILD_INVITE_BY_NAME: // not profiled
|
||||
//case CMSG_GUILD_ACCEPT: // not profiled
|
||||
case CMSG_GUILD_DECLINE: // not profiled
|
||||
case CMSG_GUILD_INVITE_BY_NAME: // not profiled
|
||||
case CMSG_ACCEPT_GUILD_INVITE: // not profiled
|
||||
case CMSG_GUILD_DECLINE_INVITATION: // not profiled
|
||||
case CMSG_GUILD_LEAVE: // not profiled
|
||||
case CMSG_GUILD_DISBAND: // not profiled
|
||||
case CMSG_GUILD_DELETE: // not profiled
|
||||
case CMSG_GUILD_SET_GUILD_MASTER: // not profiled
|
||||
//case CMSG_GUILD_MOTD: // not profiled
|
||||
case CMSG_GUILD_UPDATE_MOTD_TEXT: // not profiled
|
||||
case CMSG_GUILD_SET_RANK_PERMISSIONS: // not profiled
|
||||
case CMSG_GUILD_ADD_RANK: // not profiled
|
||||
case CMSG_GUILD_DELETE_RANK: // not profiled
|
||||
case CMSG_GUILD_UPDATE_INFO_TEXT: // not profiled
|
||||
case CMSG_GUILD_UPDATE_INFO_TEXT: // not profiled
|
||||
case CMSG_GUILD_BANK_DEPOSIT_MONEY: // not profiled
|
||||
//case CMSG_GUILD_BANK_WITHDRAW_MONEY: // not profiled
|
||||
case CMSG_GUILD_BANK_WITHDRAW_MONEY: // not profiled
|
||||
case CMSG_GUILD_BANK_BUY_TAB: // not profiled
|
||||
//case CMSG_GUILD_BANK_UPDATE_TAB: // not profiled
|
||||
case CMSG_GUILD_BANK_UPDATE_TAB: // not profiled
|
||||
//case CMSG_SET_GUILD_BANK_TEXT: // not profiled
|
||||
//case CMSG_SAVE_GUILD_EMBLEM: // not profiled
|
||||
case CMSG_SAVE_GUILD_EMBLEM: // not profiled
|
||||
//case MSG_PETITION_RENAME: // not profiled
|
||||
//case MSG_TALENT_WIPE_CONFIRM: // not profiled
|
||||
case CMSG_SET_DUNGEON_DIFFICULTY: // not profiled
|
||||
|
||||
@@ -166,6 +166,44 @@ namespace WorldPackets
|
||||
namespace Guild
|
||||
{
|
||||
class QueryGuildInfo;
|
||||
class GuildInviteByName;
|
||||
class AcceptGuildInvite;
|
||||
class DeclineGuildInvites;
|
||||
class GuildDeclineInvitation;
|
||||
class GuildGetRoster;
|
||||
class GuildPromoteMember;
|
||||
class GuildDemoteMember;
|
||||
class GuildOfficerRemoveMember;
|
||||
class GuildAssignMemberRank;
|
||||
class GuildLeave;
|
||||
class GuildDelete;
|
||||
class GuildUpdateMotdText;
|
||||
class GuildGetRanks;
|
||||
class GuildAddRank;
|
||||
class GuildDeleteRank;
|
||||
class GuildUpdateInfoText;
|
||||
class GuildSetMemberNote;
|
||||
class GuildEventLogQuery;
|
||||
class GuildBankRemainingWithdrawMoneyQuery;
|
||||
class GuildPermissionsQuery;
|
||||
class GuildSetRankPermissions;
|
||||
class GuildBankActivate;
|
||||
class GuildBankQueryTab;
|
||||
class GuildBankDepositMoney;
|
||||
class GuildBankWithdrawMoney;
|
||||
class GuildBankSwapItems;
|
||||
class GuildBankBuyTab;
|
||||
class GuildBankUpdateTab;
|
||||
class GuildBankLogQuery;
|
||||
class GuildBankTextQuery;
|
||||
class GuildBankSetTabText;
|
||||
class RequestGuildPartyState;
|
||||
class RequestGuildRewardsList;
|
||||
class GuildQueryNews;
|
||||
class GuildNewsUpdateSticky;
|
||||
class GuildSetGuildMaster;
|
||||
class GuildChallengeUpdateRequest;
|
||||
class SaveGuildEmblem;
|
||||
}
|
||||
|
||||
namespace Inspect
|
||||
@@ -243,6 +281,19 @@ namespace WorldPackets
|
||||
class GossipSelectOption;
|
||||
}
|
||||
|
||||
namespace Petition
|
||||
{
|
||||
class DeclinePetition;
|
||||
class OfferPetition;
|
||||
class PetitionBuy;
|
||||
class PetitionRenameGuild;
|
||||
class PetitionShowList;
|
||||
class PetitionShowSignatures;
|
||||
class QueryPetition;
|
||||
class SignPetition;
|
||||
class TurnInPetition;
|
||||
}
|
||||
|
||||
namespace Query
|
||||
{
|
||||
class QueryCreature;
|
||||
@@ -862,44 +913,43 @@ class WorldSession
|
||||
void HandlePartyAssignmentOpcode(WorldPacket& recvData);
|
||||
void HandleRolePollBeginOpcode(WorldPacket& recvData);
|
||||
|
||||
void HandlePetitionBuyOpcode(WorldPacket& recvData);
|
||||
void HandlePetitionShowSignOpcode(WorldPacket& recvData);
|
||||
void HandlePetitionQueryOpcode(WorldPacket& recvData);
|
||||
void HandlePetitionRenameGuildOpcode(WorldPacket& recvData);
|
||||
void HandlePetitionSignOpcode(WorldPacket& recvData);
|
||||
void HandlePetitionDeclineOpcode(WorldPacket& recvData);
|
||||
void HandleOfferPetitionOpcode(WorldPacket& recvData);
|
||||
void HandleTurnInPetitionOpcode(WorldPacket& recvData);
|
||||
void HandleDeclinePetition(WorldPackets::Petition::DeclinePetition& packet);
|
||||
void HandleOfferPetition(WorldPackets::Petition::OfferPetition& packet);
|
||||
void HandlePetitionBuy(WorldPackets::Petition::PetitionBuy& packet);
|
||||
void HandlePetitionShowSignatures(WorldPackets::Petition::PetitionShowSignatures& packet);
|
||||
void HandleQueryPetition(WorldPackets::Petition::QueryPetition& packet);
|
||||
void HandlePetitionRenameGuild(WorldPackets::Petition::PetitionRenameGuild& packet);
|
||||
void HandleSignPetition(WorldPackets::Petition::SignPetition& packet);
|
||||
void HandleTurnInPetition(WorldPackets::Petition::TurnInPetition& packet);
|
||||
|
||||
void HandleGuildQueryOpcode(WorldPackets::Guild::QueryGuildInfo& query);
|
||||
void HandleGuildInviteOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildOfficerRemoveMemberOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildAcceptOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildDeclineOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildEventLogQueryOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildRosterOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildRewardsQueryOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildPromoteOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildDemoteOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildAssignRankOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildLeaveOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildDisbandOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildInviteByName(WorldPackets::Guild::GuildInviteByName& packet);
|
||||
void HandleGuildOfficerRemoveMember(WorldPackets::Guild::GuildOfficerRemoveMember& packet);
|
||||
void HandleGuildAcceptInvite(WorldPackets::Guild::AcceptGuildInvite& invite);
|
||||
void HandleGuildDeclineInvitation(WorldPackets::Guild::GuildDeclineInvitation& decline);
|
||||
void HandleGuildEventLogQuery(WorldPackets::Guild::GuildEventLogQuery& packet);
|
||||
void HandleGuildGetRoster(WorldPackets::Guild::GuildGetRoster& packet);
|
||||
void HandleRequestGuildRewardsList(WorldPackets::Guild::RequestGuildRewardsList& packet);
|
||||
void HandleGuildPromoteMember(WorldPackets::Guild::GuildPromoteMember& promote);
|
||||
void HandleGuildDemoteMember(WorldPackets::Guild::GuildDemoteMember& demote);
|
||||
void HandleGuildAssignRank(WorldPackets::Guild::GuildAssignMemberRank& packet);
|
||||
void HandleGuildLeave(WorldPackets::Guild::GuildLeave& leave);
|
||||
void HandleGuildDelete(WorldPackets::Guild::GuildDelete& packet);
|
||||
void HandleGuildSetAchievementTracking(WorldPacket& recvPacket);
|
||||
void HandleGuildSetGuildMaster(WorldPacket& recvPacket);
|
||||
void HandleGuildMOTDOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildNewsUpdateStickyOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildSetNoteOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildGetRanksOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildQueryNewsOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildSetRankPermissionsOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildAddRankOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildDeleteRankOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildChangeInfoTextOpcode(WorldPacket& recvPacket);
|
||||
void HandleSaveGuildEmblemOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildRequestPartyState(WorldPacket& recvPacket);
|
||||
void HandleGuildRequestChallengeUpdate(WorldPacket& recvPacket);
|
||||
void HandleGuildRequestMaxDailyXP(WorldPacket& recvPacket);
|
||||
void HandleAutoDeclineGuildInvites(WorldPacket& recvPacket);
|
||||
void HandleGuildSetGuildMaster(WorldPackets::Guild::GuildSetGuildMaster& packet);
|
||||
void HandleGuildUpdateMotdText(WorldPackets::Guild::GuildUpdateMotdText& packet);
|
||||
void HandleGuildNewsUpdateSticky(WorldPackets::Guild::GuildNewsUpdateSticky& packet);
|
||||
void HandleGuildSetMemberNote(WorldPackets::Guild::GuildSetMemberNote& packet);
|
||||
void HandleGuildGetRanks(WorldPackets::Guild::GuildGetRanks& packet);
|
||||
void HandleGuildQueryNews(WorldPackets::Guild::GuildQueryNews& newsQuery);
|
||||
void HandleGuildSetRankPermissions(WorldPackets::Guild::GuildSetRankPermissions& packet);
|
||||
void HandleGuildAddRank(WorldPackets::Guild::GuildAddRank& packet);
|
||||
void HandleGuildDeleteRank(WorldPackets::Guild::GuildDeleteRank& packet);
|
||||
void HandleGuildUpdateInfoText(WorldPackets::Guild::GuildUpdateInfoText& packet);
|
||||
void HandleSaveGuildEmblem(WorldPackets::Guild::SaveGuildEmblem& packet);
|
||||
void HandleGuildRequestPartyState(WorldPackets::Guild::RequestGuildPartyState& packet);
|
||||
void HandleGuildChallengeUpdateRequest(WorldPackets::Guild::GuildChallengeUpdateRequest& packet);
|
||||
void HandleDeclineGuildInvites(WorldPackets::Guild::DeclineGuildInvites& packet);
|
||||
|
||||
void HandleGuildFinderAddRecruit(WorldPacket& recvPacket);
|
||||
void HandleGuildFinderBrowse(WorldPacket& recvPacket);
|
||||
@@ -917,12 +967,12 @@ class WorldSession
|
||||
void HandleMoveSplineDoneOpcode(WorldPacket& recvPacket);
|
||||
void SendActivateTaxiReply(ActivateTaxiReply reply);
|
||||
|
||||
void HandleTabardVendorActivateOpcode(WorldPacket& recvPacket);
|
||||
void HandleTabardVendorActivateOpcode(WorldPackets::NPC::Hello& packet);
|
||||
void HandleBankerActivateOpcode(WorldPackets::NPC::Hello& packet);
|
||||
void HandleBuyBankSlotOpcode(WorldPacket& recvPacket);
|
||||
void HandleTrainerListOpcode(WorldPackets::NPC::Hello& packet);
|
||||
void HandleTrainerBuySpellOpcode(WorldPacket& recvPacket);
|
||||
void HandlePetitionShowListOpcode(WorldPacket& recvPacket);
|
||||
void HandlePetitionShowList(WorldPackets::Petition::PetitionShowList& packet);
|
||||
void HandleGossipHelloOpcode(WorldPackets::NPC::Hello& packet);
|
||||
void HandleGossipSelectOptionOpcode(WorldPackets::NPC::GossipSelectOption& packet);
|
||||
void HandleSpiritHealerActivateOpcode(WorldPacket& recvPacket);
|
||||
@@ -1193,20 +1243,19 @@ class WorldSession
|
||||
void HandleSetTaxiBenchmarkOpcode(WorldPacket& recvData);
|
||||
|
||||
// Guild Bank
|
||||
void HandleGuildPermissions(WorldPacket& recvData);
|
||||
void HandleGuildBankMoneyWithdrawn(WorldPacket& recvData);
|
||||
void HandleGuildBankerActivate(WorldPacket& recvData);
|
||||
void HandleGuildBankQueryTab(WorldPacket& recvData);
|
||||
void HandleGuildBankLogQuery(WorldPacket& recvData);
|
||||
void HandleGuildBankDepositMoney(WorldPacket& recvData);
|
||||
void HandleGuildBankWithdrawMoney(WorldPacket& recvData);
|
||||
void HandleGuildBankSwapItems(WorldPacket& recvData);
|
||||
void HandleGuildPermissionsQuery(WorldPackets::Guild::GuildPermissionsQuery& packet);
|
||||
void HandleGuildBankMoneyWithdrawn(WorldPackets::Guild::GuildBankRemainingWithdrawMoneyQuery& packet);
|
||||
void HandleGuildBankActivate(WorldPackets::Guild::GuildBankActivate& packet);
|
||||
void HandleGuildBankQueryTab(WorldPackets::Guild::GuildBankQueryTab& packet);
|
||||
void HandleGuildBankLogQuery(WorldPackets::Guild::GuildBankLogQuery& packet);
|
||||
void HandleGuildBankDepositMoney(WorldPackets::Guild::GuildBankDepositMoney& packet);
|
||||
void HandleGuildBankWithdrawMoney(WorldPackets::Guild::GuildBankWithdrawMoney& packet);
|
||||
void HandleGuildBankSwapItems(WorldPackets::Guild::GuildBankSwapItems& packet);
|
||||
|
||||
void HandleGuildBankUpdateTab(WorldPacket& recvData);
|
||||
void HandleGuildBankBuyTab(WorldPacket& recvData);
|
||||
void HandleQueryGuildBankTabText(WorldPacket& recvData);
|
||||
void HandleSetGuildBankTabText(WorldPacket& recvData);
|
||||
void HandleGuildQueryXPOpcode(WorldPacket& recvData);
|
||||
void HandleGuildBankUpdateTab(WorldPackets::Guild::GuildBankUpdateTab& packet);
|
||||
void HandleGuildBankBuyTab(WorldPackets::Guild::GuildBankBuyTab& packet);
|
||||
void HandleGuildBankTextQuery(WorldPackets::Guild::GuildBankTextQuery& packet);
|
||||
void HandleGuildBankSetTabText(WorldPackets::Guild::GuildBankSetTabText& packet);
|
||||
|
||||
// Refer-a-Friend
|
||||
void HandleGrantLevel(WorldPacket& recvData);
|
||||
|
||||
@@ -925,11 +925,11 @@ void World::LoadConfigSettings(bool reload)
|
||||
m_int_configs[CONFIG_INSTANCE_UNLOAD_DELAY] = sConfigMgr->GetIntDefault("Instance.UnloadDelay", 30 * MINUTE * IN_MILLISECONDS);
|
||||
|
||||
m_int_configs[CONFIG_MAX_PRIMARY_TRADE_SKILL] = sConfigMgr->GetIntDefault("MaxPrimaryTradeSkill", 2);
|
||||
m_int_configs[CONFIG_MIN_PETITION_SIGNS] = sConfigMgr->GetIntDefault("MinPetitionSigns", 9);
|
||||
if (m_int_configs[CONFIG_MIN_PETITION_SIGNS] > 9)
|
||||
m_int_configs[CONFIG_MIN_PETITION_SIGNS] = sConfigMgr->GetIntDefault("MinPetitionSigns", 4);
|
||||
if (m_int_configs[CONFIG_MIN_PETITION_SIGNS] > 4)
|
||||
{
|
||||
TC_LOG_ERROR("server.loading", "MinPetitionSigns (%i) must be in range 0..9. Set to 9.", m_int_configs[CONFIG_MIN_PETITION_SIGNS]);
|
||||
m_int_configs[CONFIG_MIN_PETITION_SIGNS] = 9;
|
||||
TC_LOG_ERROR("server.loading", "MinPetitionSigns (%i) must be in range 0..4. Set to 4.", m_int_configs[CONFIG_MIN_PETITION_SIGNS]);
|
||||
m_int_configs[CONFIG_MIN_PETITION_SIGNS] = 4;
|
||||
}
|
||||
|
||||
m_int_configs[CONFIG_GM_LOGIN_STATE] = sConfigMgr->GetIntDefault("GM.LoginState", 2);
|
||||
@@ -1329,13 +1329,8 @@ void World::LoadConfigSettings(bool reload)
|
||||
m_int_configs[CONFIG_DB_PING_INTERVAL] = sConfigMgr->GetIntDefault("MaxPingTime", 30);
|
||||
|
||||
// Guild save interval
|
||||
m_bool_configs[CONFIG_GUILD_LEVELING_ENABLED] = sConfigMgr->GetBoolDefault("Guild.LevelingEnabled", true);
|
||||
m_int_configs[CONFIG_GUILD_SAVE_INTERVAL] = sConfigMgr->GetIntDefault("Guild.SaveInterval", 15);
|
||||
m_int_configs[CONFIG_GUILD_MAX_LEVEL] = sConfigMgr->GetIntDefault("Guild.MaxLevel", 25);
|
||||
m_int_configs[CONFIG_GUILD_UNDELETABLE_LEVEL] = sConfigMgr->GetIntDefault("Guild.UndeletableLevel", 4);
|
||||
rate_values[RATE_XP_GUILD_MODIFIER] = sConfigMgr->GetFloatDefault("Guild.XPModifier", 0.25f);
|
||||
m_int_configs[CONFIG_GUILD_DAILY_XP_CAP] = sConfigMgr->GetIntDefault("Guild.DailyXPCap", 7807500);
|
||||
m_int_configs[CONFIG_GUILD_WEEKLY_REP_CAP] = sConfigMgr->GetIntDefault("Guild.WeeklyReputationCap", 4375);
|
||||
|
||||
// misc
|
||||
m_bool_configs[CONFIG_PDUMP_NO_PATHS] = sConfigMgr->GetBoolDefault("PlayerDump.DisallowPaths", true);
|
||||
@@ -1736,9 +1731,6 @@ void World::SetInitialWorldSettings()
|
||||
TC_LOG_INFO("server.loading", "Loading Auctions...");
|
||||
sAuctionMgr->LoadAuctions();
|
||||
|
||||
TC_LOG_INFO("server.loading", "Loading Guild XP for level...");
|
||||
sGuildMgr->LoadGuildXpForLevel();
|
||||
|
||||
TC_LOG_INFO("server.loading", "Loading Guild rewards...");
|
||||
sGuildMgr->LoadGuildRewards();
|
||||
|
||||
|
||||
@@ -164,7 +164,6 @@ enum WorldBoolConfigs
|
||||
CONFIG_WARDEN_ENABLED,
|
||||
CONFIG_ENABLE_MMAPS,
|
||||
CONFIG_WINTERGRASP_ENABLE,
|
||||
CONFIG_GUILD_LEVELING_ENABLED,
|
||||
CONFIG_UI_QUESTLEVELS_IN_DIALOGS, // Should we add quest levels to the title in the NPC dialogs?
|
||||
CONFIG_EVENT_ANNOUNCE,
|
||||
CONFIG_STATS_LIMITS_ENABLE,
|
||||
@@ -350,10 +349,7 @@ enum WorldIntConfigs
|
||||
CONFIG_WINTERGRASP_NOBATTLETIME,
|
||||
CONFIG_WINTERGRASP_RESTART_AFTER_CRASH,
|
||||
CONFIG_GUILD_SAVE_INTERVAL,
|
||||
CONFIG_GUILD_MAX_LEVEL,
|
||||
CONFIG_GUILD_UNDELETABLE_LEVEL,
|
||||
CONFIG_GUILD_DAILY_XP_CAP,
|
||||
CONFIG_GUILD_WEEKLY_REP_CAP,
|
||||
CONFIG_PACKET_SPOOF_POLICY,
|
||||
CONFIG_PACKET_SPOOF_BANMODE,
|
||||
CONFIG_PACKET_SPOOF_BANDURATION,
|
||||
|
||||
@@ -230,7 +230,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(CHAR_DEL_GUILD_MEMBER_WITHDRAW, "TRUNCATE guild_member_withdraw", CONNECTION_ASYNC);
|
||||
|
||||
// 0: uint32, 1: uint32, 2: uint32
|
||||
PrepareStatement(CHAR_SEL_CHAR_DATA_FOR_GUILD, "SELECT name, level, class, zone, account FROM characters WHERE guid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_CHAR_DATA_FOR_GUILD, "SELECT name, level, class, gender, zone, account FROM characters WHERE guid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_DEL_GUILD_ACHIEVEMENT, "DELETE FROM guild_achievement WHERE guildId = ? AND achievement = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_GUILD_ACHIEVEMENT, "INSERT INTO guild_achievement (guildId, achievement, date, guids) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_GUILD_ACHIEVEMENT_CRITERIA, "DELETE FROM guild_achievement_progress WHERE guildId = ? AND criteria = ?", CONNECTION_ASYNC);
|
||||
@@ -239,8 +239,6 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(CHAR_DEL_ALL_GUILD_ACHIEVEMENT_CRITERIA, "DELETE FROM guild_achievement_progress WHERE guildId = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_SEL_GUILD_ACHIEVEMENT, "SELECT achievement, date, guids FROM guild_achievement WHERE guildId = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_GUILD_ACHIEVEMENT_CRITERIA, "SELECT criteria, counter, date, completedGuid FROM guild_achievement_progress WHERE guildId = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_UPD_GUILD_EXPERIENCE, "UPDATE guild SET level = ?, experience = ?, todayExperience = ? WHERE guildId = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_GUILD_RESET_TODAY_EXPERIENCE, "UPDATE guild SET todayExperience = 0", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_GUILD_NEWS, "INSERT INTO guild_newslog (guildid, LogGuid, EventType, PlayerGuid, Flags, Value, Timestamp) VALUES (?, ?, ?, ?, ?, ?, ?)"
|
||||
" ON DUPLICATE KEY UPDATE LogGuid = VALUES (LogGuid), EventType = VALUES (EventType), PlayerGuid = VALUES (PlayerGuid), Flags = VALUES (Flags), Value = VALUES (Value), Timestamp = VALUES (Timestamp)", CONNECTION_ASYNC);
|
||||
|
||||
@@ -301,17 +299,14 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(CHAR_INS_GAME_EVENT_CONDITION_SAVE, "INSERT INTO game_event_condition_save (eventEntry, condition_id, done) VALUES (?, ?, ?)", CONNECTION_ASYNC);
|
||||
|
||||
// Petitions
|
||||
PrepareStatement(CHAR_SEL_PETITION, "SELECT ownerguid, name, type FROM petition WHERE petitionguid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_PETITION, "SELECT ownerguid, name FROM petition WHERE petitionguid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_PETITION_SIGNATURE, "SELECT playerguid FROM petition_sign WHERE petitionguid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_DEL_ALL_PETITION_SIGNATURES, "DELETE FROM petition_sign WHERE playerguid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_PETITION_SIGNATURE, "DELETE FROM petition_sign WHERE playerguid = ? AND type = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_SEL_PETITION_BY_OWNER, "SELECT petitionguid FROM petition WHERE ownerguid = ? AND type = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_PETITION_TYPE, "SELECT type FROM petition WHERE petitionguid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_PETITION_SIGNATURES, "SELECT ownerguid, (SELECT COUNT(playerguid) FROM petition_sign WHERE petition_sign.petitionguid = ?) AS signs, type FROM petition WHERE petitionguid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_PETITION_BY_OWNER, "SELECT petitionguid FROM petition WHERE ownerguid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_PETITION_SIGNATURES, "SELECT ownerguid, (SELECT COUNT(playerguid) FROM petition_sign WHERE petition_sign.petitionguid = ?) AS signs FROM petition WHERE petitionguid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_PETITION_SIG_BY_ACCOUNT, "SELECT playerguid FROM petition_sign WHERE player_account = ? AND petitionguid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_PETITION_OWNER_BY_GUID, "SELECT ownerguid FROM petition WHERE petitionguid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_PETITION_SIG_BY_GUID, "SELECT ownerguid, petitionguid FROM petition_sign WHERE playerguid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_PETITION_SIG_BY_GUID_TYPE, "SELECT ownerguid, petitionguid FROM petition_sign WHERE playerguid = ? AND type = ?", CONNECTION_SYNCH);
|
||||
|
||||
// Arena teams
|
||||
PrepareStatement(CHAR_SEL_CHARACTER_ARENAINFO, "SELECT arenaTeamId, weekGames, seasonGames, seasonWins, personalRating FROM arena_team_member WHERE guid = ?", CONNECTION_ASYNC);
|
||||
@@ -492,7 +487,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(CHAR_DEL_GROUP_INSTANCE_BY_MAP_DIFF, "DELETE FROM group_instance USING group_instance LEFT JOIN instance ON group_instance.instance = id WHERE map = ? and difficulty = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_INSTANCE_BY_MAP_DIFF, "DELETE FROM instance WHERE map = ? and difficulty = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_MAIL_ITEM_BY_ID, "DELETE FROM mail_items WHERE mail_id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_PETITION, "INSERT INTO petition (ownerguid, petitionguid, name, type) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_PETITION, "INSERT INTO petition (ownerguid, petitionguid, name) VALUES (?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_PETITION_BY_GUID, "DELETE FROM petition WHERE petitionguid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_PETITION_SIGNATURE_BY_GUID, "DELETE FROM petition_sign WHERE petitionguid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_CHAR_DECLINED_NAME, "DELETE FROM character_declinedname WHERE guid = ?", CONNECTION_ASYNC);
|
||||
@@ -562,8 +557,6 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
"spellPower, resilience) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_PETITION_BY_OWNER, "DELETE FROM petition WHERE ownerguid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_PETITION_SIGNATURE_BY_OWNER, "DELETE FROM petition_sign WHERE ownerguid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_PETITION_BY_OWNER_AND_TYPE, "DELETE FROM petition WHERE ownerguid = ? AND type = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_PETITION_SIGNATURE_BY_OWNER_AND_TYPE, "DELETE FROM petition_sign WHERE ownerguid = ? AND type = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_CHAR_GLYPHS, "INSERT INTO character_glyphs (guid, talentGroup, glyph1, glyph2, glyph3, glyph4, glyph5, glyph6, glyph7, glyph8, glyph9) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_CHAR_TALENT_BY_SPELL_SPEC, "DELETE FROM character_talent WHERE guid = ? and spell = ? and talentGroup = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_CHAR_TALENT, "INSERT INTO character_talent (guid, spell, talentGroup) VALUES (?, ?, ?)", CONNECTION_ASYNC);
|
||||
|
||||
@@ -214,8 +214,6 @@ enum CharacterDatabaseStatements
|
||||
CHAR_DEL_ALL_GUILD_ACHIEVEMENT_CRITERIA,
|
||||
CHAR_SEL_GUILD_ACHIEVEMENT,
|
||||
CHAR_SEL_GUILD_ACHIEVEMENT_CRITERIA,
|
||||
CHAR_UPD_GUILD_EXPERIENCE,
|
||||
CHAR_UPD_GUILD_RESET_TODAY_EXPERIENCE,
|
||||
CHAR_INS_GUILD_NEWS,
|
||||
|
||||
CHAR_SEL_CHANNEL,
|
||||
@@ -274,14 +272,11 @@ enum CharacterDatabaseStatements
|
||||
CHAR_SEL_PETITION,
|
||||
CHAR_SEL_PETITION_SIGNATURE,
|
||||
CHAR_DEL_ALL_PETITION_SIGNATURES,
|
||||
CHAR_DEL_PETITION_SIGNATURE,
|
||||
CHAR_SEL_PETITION_BY_OWNER,
|
||||
CHAR_SEL_PETITION_TYPE,
|
||||
CHAR_SEL_PETITION_SIGNATURES,
|
||||
CHAR_SEL_PETITION_SIG_BY_ACCOUNT,
|
||||
CHAR_SEL_PETITION_OWNER_BY_GUID,
|
||||
CHAR_SEL_PETITION_SIG_BY_GUID,
|
||||
CHAR_SEL_PETITION_SIG_BY_GUID_TYPE,
|
||||
|
||||
CHAR_INS_PLAYER_BGDATA,
|
||||
CHAR_DEL_PLAYER_BGDATA,
|
||||
@@ -490,8 +485,6 @@ enum CharacterDatabaseStatements
|
||||
CHAR_INS_CHAR_STATS,
|
||||
CHAR_DEL_PETITION_BY_OWNER,
|
||||
CHAR_DEL_PETITION_SIGNATURE_BY_OWNER,
|
||||
CHAR_DEL_PETITION_BY_OWNER_AND_TYPE,
|
||||
CHAR_DEL_PETITION_SIGNATURE_BY_OWNER_AND_TYPE,
|
||||
CHAR_INS_CHAR_GLYPHS,
|
||||
CHAR_DEL_CHAR_TALENT_BY_SPELL_SPEC,
|
||||
CHAR_INS_CHAR_TALENT,
|
||||
|
||||
@@ -91,4 +91,5 @@ void WorldDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(WORLD_DEL_DISABLES, "DELETE FROM disables WHERE entry = ? AND sourceType = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(WORLD_UPD_CREATURE_ZONE_AREA_DATA, "UPDATE creature SET zoneId = ?, areaId = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(WORLD_UPD_GAMEOBJECT_ZONE_AREA_DATA, "UPDATE gameobject SET zoneId = ?, areaId = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(WORLD_SEL_GUILD_REWARDS_REQ_ACHIEVEMENTS, "SELECT AchievementRequired FROM guild_rewards_req_achievements WHERE ItemID = ?", CONNECTION_SYNCH);
|
||||
}
|
||||
|
||||
@@ -112,6 +112,7 @@ enum WorldDatabaseStatements
|
||||
WORLD_DEL_DISABLES,
|
||||
WORLD_UPD_CREATURE_ZONE_AREA_DATA,
|
||||
WORLD_UPD_GAMEOBJECT_ZONE_AREA_DATA,
|
||||
WORLD_SEL_GUILD_REWARDS_REQ_ACHIEVEMENTS,
|
||||
|
||||
MAX_WORLDDATABASE_STATEMENTS
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user