aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-11-19 21:13:05 -0300
committerjoschiwald <joschiwald.trinity@gmail.com>2018-01-21 21:15:26 +0100
commitaf4538c5fc218d2349a8e10f97681cb77199b2c6 (patch)
tree4843fdadf3d60633fa4da9d0a87880682b28002a
parentfe04f2388f785cd7faf05c239543af3a41c28b96 (diff)
Core/Guild: fix indentation and codestyle
(cherry picked from commit d2bf7237a38a29ff7a75aa1d137ec0b08610fa3c)
-rw-r--r--src/server/game/Guilds/Guild.cpp36
-rw-r--r--src/server/game/Guilds/Guild.h1219
2 files changed, 626 insertions, 629 deletions
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index 9858621fe1a..9a2b00d512c 100644
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -40,21 +40,17 @@
#include "World.h"
#include "WorldSession.h"
-#define MAX_GUILD_BANK_TAB_TEXT_LEN 500
-#define EMBLEM_PRICE 10 * GOLD
+size_t const MAX_GUILD_BANK_TAB_TEXT_LEN = 500;
-inline uint32 _GetGuildBankTabPrice(uint8 tabId)
+uint32 const EMBLEM_PRICE = 10 * GOLD;
+
+inline uint64 GetGuildBankTabPrice(uint8 tabId)
{
- switch (tabId)
- {
- case 0: return 100;
- case 1: return 250;
- case 2: return 500;
- case 3: return 1000;
- case 4: return 2500;
- case 5: return 5000;
- default: return 0;
- }
+ // these prices are in gold units, not copper
+ static uint64 const tabPrices[GUILD_BANK_MAX_TABS] = { 100, 250, 500, 1000, 2500, 5000, 0, 0 };
+ ASSERT(tabId < GUILD_BANK_MAX_TABS);
+
+ return tabPrices[tabId];
}
void Guild::SendCommandResult(WorldSession* session, GuildCommandType type, GuildCommandError errCode, std::string const& param)
@@ -82,7 +78,7 @@ void Guild::SendSaveEmblemResult(WorldSession* session, GuildEmblemError errCode
Guild::LogHolder::~LogHolder()
{
// Cleanup
- for (GuildLog::iterator itr = m_log.begin(); itr != m_log.end(); ++itr)
+ for (auto itr = m_log.begin(); itr != m_log.end(); ++itr)
delete (*itr);
}
@@ -1603,18 +1599,18 @@ void Guild::HandleBuyBankTab(WorldSession* session, uint8 tabId)
if (tabId != _GetPurchasedTabsSize())
return;
+ if (tabId >= GUILD_BANK_MAX_TABS)
+ return;
+
// Do not get money for bank tabs that the GM bought, we had to buy them already.
// This is just a speedup check, GetGuildBankTabPrice will return 0.
if (tabId < GUILD_BANK_MAX_TABS - 2) // 7th tab is actually the 6th
{
- uint32 tabCost = _GetGuildBankTabPrice(tabId) * GOLD;
- if (!tabCost)
- return;
-
- if (!player->HasEnoughMoney(uint64(tabCost))) // Should not happen, this is checked by client
+ int64 tabCost = GetGuildBankTabPrice(tabId) * GOLD;
+ if (!player->HasEnoughMoney(tabCost)) // Should not happen, this is checked by client
return;
- player->ModifyMoney(-int64(tabCost));
+ player->ModifyMoney(-tabCost);
}
_CreateNewBankTab();
diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h
index 5e240d06618..9365f586a8d 100644
--- a/src/server/game/Guilds/Guild.h
+++ b/src/server/game/Guilds/Guild.h
@@ -268,54 +268,54 @@ const uint32 GuildChallengesMaxCount[GUILD_CHALLENGES_TYPES] = { 0, 7,
// Emblem info
class TC_GAME_API EmblemInfo
{
-public:
- EmblemInfo() : m_style(0), m_color(0), m_borderStyle(0), m_borderColor(0), m_backgroundColor(0) { }
-
- bool LoadFromDB(Field* fields);
- void SaveToDB(ObjectGuid::LowType guildId) const;
- void ReadPacket(WorldPackets::Guild::SaveGuildEmblem& packet);
- bool ValidateEmblemColors() const;
-
- uint32 GetStyle() const { return m_style; }
- uint32 GetColor() const { return m_color; }
- uint32 GetBorderStyle() const { return m_borderStyle; }
- uint32 GetBorderColor() const { return m_borderColor; }
- uint32 GetBackgroundColor() const { return m_backgroundColor; }
-
-private:
- uint32 m_style;
- uint32 m_color;
- uint32 m_borderStyle;
- uint32 m_borderColor;
- uint32 m_backgroundColor;
+ public:
+ EmblemInfo() : m_style(0), m_color(0), m_borderStyle(0), m_borderColor(0), m_backgroundColor(0) { }
+
+ bool LoadFromDB(Field* fields);
+ void SaveToDB(ObjectGuid::LowType guildId) const;
+ void ReadPacket(WorldPackets::Guild::SaveGuildEmblem& packet);
+ bool ValidateEmblemColors() const;
+
+ uint32 GetStyle() const { return m_style; }
+ uint32 GetColor() const { return m_color; }
+ uint32 GetBorderStyle() const { return m_borderStyle; }
+ uint32 GetBorderColor() const { return m_borderColor; }
+ uint32 GetBackgroundColor() const { return m_backgroundColor; }
+
+ private:
+ uint32 m_style;
+ uint32 m_color;
+ uint32 m_borderStyle;
+ uint32 m_borderColor;
+ uint32 m_backgroundColor;
};
// Structure for storing guild bank rights and remaining slots together.
class GuildBankRightsAndSlots
{
-public:
- GuildBankRightsAndSlots() : tabId(TAB_UNDEFINED), rights(0), slots(0) { }
- GuildBankRightsAndSlots(uint8 _tabId) : tabId(_tabId), rights(0), slots(0) { }
- GuildBankRightsAndSlots(uint8 _tabId, int8 _rights, int32 _slots) : tabId(_tabId), rights(_rights), slots(_slots) { }
+ public:
+ GuildBankRightsAndSlots() : tabId(TAB_UNDEFINED), rights(0), slots(0) { }
+ GuildBankRightsAndSlots(uint8 _tabId) : tabId(_tabId), rights(0), slots(0) { }
+ GuildBankRightsAndSlots(uint8 _tabId, int8 _rights, int32 _slots) : tabId(_tabId), rights(_rights), slots(_slots) { }
- void SetGuildMasterValues()
- {
- rights = GUILD_BANK_RIGHT_FULL;
- slots = int32(GUILD_WITHDRAW_SLOT_UNLIMITED);
- }
+ void SetGuildMasterValues()
+ {
+ rights = GUILD_BANK_RIGHT_FULL;
+ slots = int32(GUILD_WITHDRAW_SLOT_UNLIMITED);
+ }
- void SetTabId(uint8 _tabId) { tabId = _tabId; }
- void SetSlots(int32 _slots) { slots = _slots; }
- void SetRights(int8 _rights) { rights = _rights; }
+ void SetTabId(uint8 _tabId) { tabId = _tabId; }
+ 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; }
+ int8 GetTabId() const { return tabId; }
+ int32 GetSlots() const { return slots; }
+ int8 GetRights() const { return rights; }
-private:
- uint8 tabId;
- int8 rights;
- int32 slots;
+ private:
+ uint8 tabId;
+ int8 rights;
+ int32 slots;
};
typedef std::vector <GuildBankRightsAndSlots> GuildBankRightsAndSlotsVec;
@@ -324,635 +324,636 @@ typedef std::set <uint8> SlotIds;
class TC_GAME_API Guild
{
-private:
- // Class representing guild member
- class Member
- {
- public:
- Member(ObjectGuid::LowType guildId, ObjectGuid guid, uint8 rankId);
-
- void SetStats(Player* player);
- 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);
- void SetOfficerNote(std::string const& officerNote);
- void SetZoneId(uint32 id) { m_zoneId = id; }
- void SetAchievementPoints(uint32 val) { m_achievementPoints = val; }
- void SetLevel(uint8 var) { m_level = var; }
-
- void AddFlag(uint8 var) { m_flags |= var; }
- void RemFlag(uint8 var) { m_flags &= ~var; }
- void ResetFlags() { m_flags = GUILDMEMBER_STATUS_NONE; }
-
- bool LoadFromDB(Field* fields);
- void SaveToDB(SQLTransaction& trans) const;
-
- ObjectGuid const& GetGUID() const { return m_guid; }
- std::string const& GetName() const { return m_name; }
- uint32 GetAccountId() const { return m_accountId; }
- uint8 GetRankId() const { return m_rankId; }
- uint64 GetLogoutTime() const { return m_logoutTime; }
- 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; }
- uint32 GetAchievementPoints() const { return m_achievementPoints; }
- uint64 GetTotalActivity() const { return m_totalActivity; }
- uint64 GetWeekActivity() const { return m_weekActivity; }
- uint32 GetTotalReputation() const { return m_totalReputation; }
- uint32 GetWeekReputation() const { return m_weekReputation; }
-
- std::set<uint32> GetTrackedCriteriaIds() const { return m_trackedCriteriaIds; }
- void SetTrackedCriteriaIds(std::set<uint32> criteriaIds) { m_trackedCriteriaIds.swap(criteriaIds); }
- bool IsTrackingCriteriaId(uint32 criteriaId) const { return m_trackedCriteriaIds.find(criteriaId) != m_trackedCriteriaIds.end(); }
-
- bool IsOnline() const { return (m_flags & GUILDMEMBER_STATUS_ONLINE); }
-
- void ChangeRank(uint8 newRank);
-
- inline void UpdateLogoutTime() { m_logoutTime = ::time(nullptr); }
- inline bool IsRank(uint8 rankId) const { return m_rankId == rankId; }
- inline bool IsRankNotLower(uint8 rankId) const { return m_rankId <= rankId; }
- inline bool IsSamePlayer(ObjectGuid guid) const { return m_guid == guid; }
-
- void UpdateBankTabWithdrawValue(SQLTransaction& trans, uint8 tabId, uint32 amount);
- void UpdateBankMoneyWithdrawValue(SQLTransaction& trans, uint64 amount);
- uint32 GetBankTabWithdrawValue(uint8 tabId) const { return m_bankWithdraw[tabId]; };
- uint64 GetBankMoneyWithdrawValue() const { return m_bankWithdrawMoney; };
- void ResetValues(bool weekly = false);
-
- Player* FindPlayer() const;
- Player* FindConnectedPlayer() const;
-
private:
- ObjectGuid::LowType m_guildId;
- // Fields from characters table
- ObjectGuid m_guid;
- std::string m_name;
- uint32 m_zoneId;
- uint8 m_level;
- uint8 m_class;
- uint8 _gender;
- uint8 m_flags;
- uint64 m_logoutTime;
- uint32 m_accountId;
- // Fields from guild_member table
- uint8 m_rankId;
- std::string m_publicNote;
- std::string m_officerNote;
-
- std::set<uint32> m_trackedCriteriaIds;
-
- uint32 m_bankWithdraw[GUILD_BANK_MAX_TABS];
- uint64 m_bankWithdrawMoney;
- uint32 m_achievementPoints;
- uint64 m_totalActivity;
- uint64 m_weekActivity;
- uint32 m_totalReputation;
- uint32 m_weekReputation;
- };
-
- // Base class for event entries
- class LogEntry
- {
- public:
- LogEntry(ObjectGuid::LowType guildId, uint32 guid) : m_guildId(guildId), m_guid(guid), m_timestamp(::time(nullptr)) { }
- LogEntry(ObjectGuid::LowType guildId, uint32 guid, time_t timestamp) : m_guildId(guildId), m_guid(guid), m_timestamp(timestamp) { }
- virtual ~LogEntry() { }
-
- uint32 GetGUID() const { return m_guid; }
- uint64 GetTimestamp() const { return m_timestamp; }
-
- virtual void SaveToDB(SQLTransaction& trans) const = 0;
-
- protected:
- ObjectGuid::LowType m_guildId;
- uint32 m_guid;
- uint64 m_timestamp;
- };
-
- // Event log entry
- class EventLogEntry : public LogEntry
- {
- public:
- EventLogEntry(ObjectGuid::LowType guildId, uint32 guid, GuildEventLogTypes eventType, ObjectGuid::LowType playerGuid1, ObjectGuid::LowType playerGuid2, uint8 newRank) :
- LogEntry(guildId, guid), m_eventType(eventType), m_playerGuid1(playerGuid1), m_playerGuid2(playerGuid2), m_newRank(newRank) { }
-
- EventLogEntry(ObjectGuid::LowType guildId, uint32 guid, time_t timestamp, GuildEventLogTypes eventType, ObjectGuid::LowType playerGuid1, ObjectGuid::LowType playerGuid2, uint8 newRank) :
- LogEntry(guildId, guid, timestamp), m_eventType(eventType), m_playerGuid1(playerGuid1), m_playerGuid2(playerGuid2), m_newRank(newRank) { }
-
- ~EventLogEntry() { }
-
- void SaveToDB(SQLTransaction& trans) const override;
- void WritePacket(WorldPackets::Guild::GuildEventLogQueryResults& packet) const;
-
- private:
- GuildEventLogTypes m_eventType;
- ObjectGuid::LowType m_playerGuid1;
- ObjectGuid::LowType m_playerGuid2;
- uint8 m_newRank;
- };
-
- // Bank event log entry
- class BankEventLogEntry : public LogEntry
- {
- public:
- static bool IsMoneyEvent(GuildBankEventLogTypes eventType)
+ // Class representing guild member
+ class Member
{
- return
- eventType == GUILD_BANK_LOG_DEPOSIT_MONEY ||
- eventType == GUILD_BANK_LOG_WITHDRAW_MONEY ||
- eventType == GUILD_BANK_LOG_REPAIR_MONEY ||
- eventType == GUILD_BANK_LOG_CASH_FLOW_DEPOSIT;
- }
-
- bool IsMoneyEvent() const
+ public:
+ Member(ObjectGuid::LowType guildId, ObjectGuid guid, uint8 rankId);
+
+ void SetStats(Player* player);
+ 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);
+ void SetOfficerNote(std::string const& officerNote);
+ void SetZoneId(uint32 id) { m_zoneId = id; }
+ void SetAchievementPoints(uint32 val) { m_achievementPoints = val; }
+ void SetLevel(uint8 var) { m_level = var; }
+
+ void AddFlag(uint8 var) { m_flags |= var; }
+ void RemFlag(uint8 var) { m_flags &= ~var; }
+ void ResetFlags() { m_flags = GUILDMEMBER_STATUS_NONE; }
+
+ bool LoadFromDB(Field* fields);
+ void SaveToDB(SQLTransaction& trans) const;
+
+ ObjectGuid const& GetGUID() const { return m_guid; }
+ std::string const& GetName() const { return m_name; }
+ uint32 GetAccountId() const { return m_accountId; }
+ uint8 GetRankId() const { return m_rankId; }
+ uint64 GetLogoutTime() const { return m_logoutTime; }
+ 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; }
+ uint32 GetAchievementPoints() const { return m_achievementPoints; }
+ uint64 GetTotalActivity() const { return m_totalActivity; }
+ uint64 GetWeekActivity() const { return m_weekActivity; }
+ uint32 GetTotalReputation() const { return m_totalReputation; }
+ uint32 GetWeekReputation() const { return m_weekReputation; }
+
+ std::set<uint32> GetTrackedCriteriaIds() const { return m_trackedCriteriaIds; }
+ void SetTrackedCriteriaIds(std::set<uint32> criteriaIds) { m_trackedCriteriaIds.swap(criteriaIds); }
+ bool IsTrackingCriteriaId(uint32 criteriaId) const { return m_trackedCriteriaIds.find(criteriaId) != m_trackedCriteriaIds.end(); }
+
+ bool IsOnline() const { return (m_flags & GUILDMEMBER_STATUS_ONLINE); }
+
+ void ChangeRank(uint8 newRank);
+
+ inline void UpdateLogoutTime() { m_logoutTime = ::time(nullptr); }
+ inline bool IsRank(uint8 rankId) const { return m_rankId == rankId; }
+ inline bool IsRankNotLower(uint8 rankId) const { return m_rankId <= rankId; }
+ inline bool IsSamePlayer(ObjectGuid guid) const { return m_guid == guid; }
+
+ void UpdateBankTabWithdrawValue(SQLTransaction& trans, uint8 tabId, uint32 amount);
+ void UpdateBankMoneyWithdrawValue(SQLTransaction& trans, uint64 amount);
+ uint32 GetBankTabWithdrawValue(uint8 tabId) const { return m_bankWithdraw[tabId]; };
+ uint64 GetBankMoneyWithdrawValue() const { return m_bankWithdrawMoney; };
+ void ResetValues(bool weekly = false);
+
+ Player* FindPlayer() const;
+ Player* FindConnectedPlayer() const;
+
+ private:
+ ObjectGuid::LowType m_guildId;
+ // Fields from characters table
+ ObjectGuid m_guid;
+ std::string m_name;
+ uint32 m_zoneId;
+ uint8 m_level;
+ uint8 m_class;
+ uint8 _gender;
+ uint8 m_flags;
+ uint64 m_logoutTime;
+ uint32 m_accountId;
+ // Fields from guild_member table
+ uint8 m_rankId;
+ std::string m_publicNote;
+ std::string m_officerNote;
+
+ std::set<uint32> m_trackedCriteriaIds;
+
+ uint32 m_bankWithdraw[GUILD_BANK_MAX_TABS];
+ uint64 m_bankWithdrawMoney;
+ uint32 m_achievementPoints;
+ uint64 m_totalActivity;
+ uint64 m_weekActivity;
+ uint32 m_totalReputation;
+ uint32 m_weekReputation;
+ };
+
+ // Base class for event entries
+ class LogEntry
{
- return IsMoneyEvent(m_eventType);
- }
+ public:
+ LogEntry(ObjectGuid::LowType guildId, uint32 guid) : m_guildId(guildId), m_guid(guid), m_timestamp(::time(nullptr)) { }
+ LogEntry(ObjectGuid::LowType guildId, uint32 guid, time_t timestamp) : m_guildId(guildId), m_guid(guid), m_timestamp(timestamp) { }
+ virtual ~LogEntry() { }
- BankEventLogEntry(ObjectGuid::LowType guildId, uint32 guid, GuildBankEventLogTypes eventType, uint8 tabId, ObjectGuid::LowType playerGuid, uint64 itemOrMoney, uint16 itemStackCount, uint8 destTabId) :
- LogEntry(guildId, guid), m_eventType(eventType), m_bankTabId(tabId), m_playerGuid(playerGuid),
- m_itemOrMoney(itemOrMoney), m_itemStackCount(itemStackCount), m_destTabId(destTabId) { }
+ uint32 GetGUID() const { return m_guid; }
+ uint64 GetTimestamp() const { return m_timestamp; }
- BankEventLogEntry(ObjectGuid::LowType guildId, uint32 guid, time_t timestamp, uint8 tabId, GuildBankEventLogTypes eventType, ObjectGuid::LowType playerGuid, uint64 itemOrMoney, uint16 itemStackCount, uint8 destTabId) :
- LogEntry(guildId, guid, timestamp), m_eventType(eventType), m_bankTabId(tabId), m_playerGuid(playerGuid),
- m_itemOrMoney(itemOrMoney), m_itemStackCount(itemStackCount), m_destTabId(destTabId) { }
+ virtual void SaveToDB(SQLTransaction& trans) const = 0;
- ~BankEventLogEntry() { }
+ protected:
+ ObjectGuid::LowType m_guildId;
+ uint32 m_guid;
+ uint64 m_timestamp;
+ };
- void SaveToDB(SQLTransaction& trans) const override;
- void WritePacket(WorldPackets::Guild::GuildBankLogQueryResults& packet) const;
+ // Event log entry
+ class EventLogEntry : public LogEntry
+ {
+ public:
+ EventLogEntry(ObjectGuid::LowType guildId, uint32 guid, GuildEventLogTypes eventType, ObjectGuid::LowType playerGuid1, ObjectGuid::LowType playerGuid2, uint8 newRank) :
+ LogEntry(guildId, guid), m_eventType(eventType), m_playerGuid1(playerGuid1), m_playerGuid2(playerGuid2), m_newRank(newRank) { }
- private:
- GuildBankEventLogTypes m_eventType;
- uint8 m_bankTabId;
- ObjectGuid::LowType m_playerGuid;
- uint64 m_itemOrMoney;
- uint16 m_itemStackCount;
- uint8 m_destTabId;
- };
-
- // News log entry
- class NewsLogEntry : public LogEntry
- {
- public:
- NewsLogEntry(ObjectGuid::LowType guildId, uint32 guid, GuildNews type, ObjectGuid playerGuid, uint32 flags, uint32 value) :
- LogEntry(guildId, guid), m_type(type), m_playerGuid(playerGuid), m_flags(flags), m_value(value) { }
+ EventLogEntry(ObjectGuid::LowType guildId, uint32 guid, time_t timestamp, GuildEventLogTypes eventType, ObjectGuid::LowType playerGuid1, ObjectGuid::LowType playerGuid2, uint8 newRank) :
+ LogEntry(guildId, guid, timestamp), m_eventType(eventType), m_playerGuid1(playerGuid1), m_playerGuid2(playerGuid2), m_newRank(newRank) { }
- NewsLogEntry(ObjectGuid::LowType guildId, uint32 guid, time_t timestamp, GuildNews type, ObjectGuid playerGuid, uint32 flags, uint32 value) :
- LogEntry(guildId, guid, timestamp), m_type(type), m_playerGuid(playerGuid), m_flags(flags), m_value(value) { }
+ ~EventLogEntry() { }
- ~NewsLogEntry() { }
+ void SaveToDB(SQLTransaction& trans) const override;
+ void WritePacket(WorldPackets::Guild::GuildEventLogQueryResults& packet) const;
- GuildNews GetType() const { return m_type; }
- ObjectGuid GetPlayerGuid() const { return m_playerGuid; }
- uint32 GetValue() const { return m_value; }
- uint32 GetFlags() const { return m_flags; }
- void SetSticky(bool sticky)
- {
- if (sticky)
- m_flags |= 1;
- else
- m_flags &= ~1;
- }
-
- void SaveToDB(SQLTransaction& trans) const override;
- void WritePacket(WorldPackets::Guild::GuildNews& newsPacket) const;
+ private:
+ GuildEventLogTypes m_eventType;
+ ObjectGuid::LowType m_playerGuid1;
+ ObjectGuid::LowType m_playerGuid2;
+ uint8 m_newRank;
+ };
- private:
- GuildNews m_type;
- ObjectGuid m_playerGuid;
- uint32 m_flags;
- uint32 m_value;
- };
+ // Bank event log entry
+ class BankEventLogEntry : public LogEntry
+ {
+ public:
+ static bool IsMoneyEvent(GuildBankEventLogTypes eventType)
+ {
+ return
+ eventType == GUILD_BANK_LOG_DEPOSIT_MONEY ||
+ eventType == GUILD_BANK_LOG_WITHDRAW_MONEY ||
+ eventType == GUILD_BANK_LOG_REPAIR_MONEY ||
+ eventType == GUILD_BANK_LOG_CASH_FLOW_DEPOSIT;
+ }
+
+ bool IsMoneyEvent() const
+ {
+ return IsMoneyEvent(m_eventType);
+ }
+
+ BankEventLogEntry(ObjectGuid::LowType guildId, uint32 guid, GuildBankEventLogTypes eventType, uint8 tabId, ObjectGuid::LowType playerGuid, uint64 itemOrMoney, uint16 itemStackCount, uint8 destTabId) :
+ LogEntry(guildId, guid), m_eventType(eventType), m_bankTabId(tabId), m_playerGuid(playerGuid),
+ m_itemOrMoney(itemOrMoney), m_itemStackCount(itemStackCount), m_destTabId(destTabId) { }
+
+ BankEventLogEntry(ObjectGuid::LowType guildId, uint32 guid, time_t timestamp, uint8 tabId, GuildBankEventLogTypes eventType, ObjectGuid::LowType playerGuid, uint64 itemOrMoney, uint16 itemStackCount, uint8 destTabId) :
+ LogEntry(guildId, guid, timestamp), m_eventType(eventType), m_bankTabId(tabId), m_playerGuid(playerGuid),
+ m_itemOrMoney(itemOrMoney), m_itemStackCount(itemStackCount), m_destTabId(destTabId) { }
+
+ ~BankEventLogEntry() { }
+
+ void SaveToDB(SQLTransaction& trans) const override;
+ void WritePacket(WorldPackets::Guild::GuildBankLogQueryResults& packet) const;
+
+ private:
+ GuildBankEventLogTypes m_eventType;
+ uint8 m_bankTabId;
+ ObjectGuid::LowType m_playerGuid;
+ uint64 m_itemOrMoney;
+ uint16 m_itemStackCount;
+ uint8 m_destTabId;
+ };
+
+ // News log entry
+ class NewsLogEntry : public LogEntry
+ {
+ public:
+ NewsLogEntry(ObjectGuid::LowType guildId, uint32 guid, GuildNews type, ObjectGuid playerGuid, uint32 flags, uint32 value) :
+ LogEntry(guildId, guid), m_type(type), m_playerGuid(playerGuid), m_flags(flags), m_value(value) { }
+
+ NewsLogEntry(ObjectGuid::LowType guildId, uint32 guid, time_t timestamp, GuildNews type, ObjectGuid playerGuid, uint32 flags, uint32 value) :
+ LogEntry(guildId, guid, timestamp), m_type(type), m_playerGuid(playerGuid), m_flags(flags), m_value(value) { }
+
+ ~NewsLogEntry() { }
+
+ GuildNews GetType() const { return m_type; }
+ ObjectGuid GetPlayerGuid() const { return m_playerGuid; }
+ uint32 GetValue() const { return m_value; }
+ uint32 GetFlags() const { return m_flags; }
+ void SetSticky(bool sticky)
+ {
+ if (sticky)
+ m_flags |= 1;
+ else
+ m_flags &= ~1;
+ }
+
+ void SaveToDB(SQLTransaction& trans) const override;
+ void WritePacket(WorldPackets::Guild::GuildNews& newsPacket) const;
+
+ private:
+ GuildNews m_type;
+ ObjectGuid m_playerGuid;
+ uint32 m_flags;
+ uint32 m_value;
+ };
+
+ // Class encapsulating work with events collection
+ typedef std::list<LogEntry*> GuildLog;
+
+ class LogHolder
+ {
+ public:
+ LogHolder(uint32 maxRecords) : m_maxRecords(maxRecords), m_nextGUID(uint32(GUILD_EVENT_LOG_GUID_UNDEFINED)) { }
+ ~LogHolder();
+
+ uint8 GetSize() const { return uint8(m_log.size()); }
+ // Checks if new log entry can be added to holder when loading from DB
+ inline bool CanInsert() const { return m_log.size() < m_maxRecords; }
+ // Adds event from DB to collection
+ void LoadEvent(LogEntry* entry);
+ // Adds new event to collection and saves it to DB
+ void AddEvent(SQLTransaction& trans, LogEntry* entry);
+ uint32 GetNextGUID();
+ GuildLog* GetGuildLog() { return &m_log; }
+
+ private:
+ GuildLog m_log;
+ uint32 m_maxRecords;
+ uint32 m_nextGUID;
+ };
+
+ // Class encapsulating guild rank data
+ class RankInfo
+ {
+ public:
+ 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(money) { }
- // Class encapsulating work with events collection
- typedef std::list<LogEntry*> GuildLog;
+ void LoadFromDB(Field* fields);
+ void SaveToDB(SQLTransaction& trans) const;
- class LogHolder
- {
- public:
- LogHolder(uint32 maxRecords) : m_maxRecords(maxRecords), m_nextGUID(uint32(GUILD_EVENT_LOG_GUID_UNDEFINED)) { }
- ~LogHolder();
-
- uint8 GetSize() const { return uint8(m_log.size()); }
- // Checks if new log entry can be added to holder when loading from DB
- inline bool CanInsert() const { return m_log.size() < m_maxRecords; }
- // Adds event from DB to collection
- void LoadEvent(LogEntry* entry);
- // Adds new event to collection and saves it to DB
- void AddEvent(SQLTransaction& trans, LogEntry* entry);
- uint32 GetNextGUID();
- GuildLog* GetGuildLog() { return &m_log; }
+ uint8 GetId() const { return m_rankId; }
- private:
- GuildLog m_log;
- uint32 m_maxRecords;
- uint32 m_nextGUID;
- };
+ std::string const& GetName() const { return m_name; }
+ void SetName(std::string const& name);
- // Class encapsulating guild rank data
- class RankInfo
- {
- public:
- 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(money) { }
+ uint32 GetRights() const { return m_rights; }
+ void SetRights(uint32 rights);
- void LoadFromDB(Field* fields);
- void SaveToDB(SQLTransaction& trans) const;
+ uint32 GetBankMoneyPerDay() const
+ {
+ return m_rankId != GR_GUILDMASTER ? m_bankMoneyPerDay : GUILD_WITHDRAW_MONEY_UNLIMITED;
+ }
- uint8 GetId() const { return m_rankId; }
+ void SetBankMoneyPerDay(uint32 money);
- std::string const& GetName() const { return m_name; }
- void SetName(std::string const& name);
+ inline int8 GetBankTabRights(uint8 tabId) const
+ {
+ return tabId < GUILD_BANK_MAX_TABS ? m_bankTabRightsAndSlots[tabId].GetRights() : 0;
+ }
- uint32 GetRights() const { return m_rights; }
- void SetRights(uint32 rights);
+ inline int32 GetBankTabSlotsPerDay(uint8 tabId) const
+ {
+ return tabId < GUILD_BANK_MAX_TABS ? m_bankTabRightsAndSlots[tabId].GetSlots() : 0;
+ }
- uint32 GetBankMoneyPerDay() const
- {
- return m_rankId != GR_GUILDMASTER ? m_bankMoneyPerDay : GUILD_WITHDRAW_MONEY_UNLIMITED;
- }
+ void SetBankTabSlotsAndRights(GuildBankRightsAndSlots rightsAndSlots, bool saveToDB);
+ void CreateMissingTabsIfNeeded(uint8 ranks, SQLTransaction& trans, bool logOnCreate = false);
- void SetBankMoneyPerDay(uint32 money);
+ private:
+ ObjectGuid::LowType m_guildId;
+ uint8 m_rankId;
+ std::string m_name;
+ uint32 m_rights;
+ uint32 m_bankMoneyPerDay;
+ GuildBankRightsAndSlots m_bankTabRightsAndSlots[GUILD_BANK_MAX_TABS];
+ };
- inline int8 GetBankTabRights(uint8 tabId) const
+ class BankTab
{
- return tabId < GUILD_BANK_MAX_TABS ? m_bankTabRightsAndSlots[tabId].GetRights() : 0;
- }
+ public:
+ BankTab(ObjectGuid::LowType guildId, uint8 tabId);
- inline int32 GetBankTabSlotsPerDay(uint8 tabId) const
- {
- return tabId < GUILD_BANK_MAX_TABS ? m_bankTabRightsAndSlots[tabId].GetSlots() : 0;
- }
+ void LoadFromDB(Field* fields);
+ bool LoadItemFromDB(Field* fields);
+ void Delete(SQLTransaction& trans, bool removeItemsFromDB = false);
- void SetBankTabSlotsAndRights(GuildBankRightsAndSlots rightsAndSlots, bool saveToDB);
- void CreateMissingTabsIfNeeded(uint8 ranks, SQLTransaction& trans, bool logOnCreate = false);
+ void SetInfo(std::string const& name, std::string const& icon);
+ void SetText(std::string const& text);
+ void SendText(Guild const* guild, WorldSession* session) const;
- private:
- ObjectGuid::LowType m_guildId;
- uint8 m_rankId;
- std::string m_name;
- uint32 m_rights;
- uint32 m_bankMoneyPerDay;
- GuildBankRightsAndSlots m_bankTabRightsAndSlots[GUILD_BANK_MAX_TABS];
- };
+ std::string const& GetName() const { return m_name; }
+ std::string const& GetIcon() const { return m_icon; }
+ std::string const& GetText() const { return m_text; }
- class BankTab
- {
- public:
- BankTab(ObjectGuid::LowType guildId, uint8 tabId);
+ inline Item* GetItem(uint8 slotId) const { return slotId < GUILD_BANK_MAX_SLOTS ? m_items[slotId] : nullptr; }
+ bool SetItem(SQLTransaction& trans, uint8 slotId, Item* item);
- void LoadFromDB(Field* fields);
- bool LoadItemFromDB(Field* fields);
- void Delete(SQLTransaction& trans, bool removeItemsFromDB = false);
+ private:
+ ObjectGuid::LowType m_guildId;
+ uint8 m_tabId;
- void SetInfo(std::string const& name, std::string const& icon);
- void SetText(std::string const& text);
- void SendText(Guild const* guild, WorldSession* session) const;
+ Item* m_items[GUILD_BANK_MAX_SLOTS];
+ std::string m_name;
+ std::string m_icon;
+ std::string m_text;
+ };
- std::string const& GetName() const { return m_name; }
- std::string const& GetIcon() const { return m_icon; }
- std::string const& GetText() const { return m_text; }
+ // Movement data
+ class MoveItemData
+ {
+ public:
+ MoveItemData(Guild* guild, Player* player, uint8 container, uint8 slotId);
+ virtual ~MoveItemData();
+
+ virtual bool IsBank() const = 0;
+ // Initializes item pointer. Returns true, if item exists, false otherwise.
+ virtual bool InitItem() = 0;
+ // Checks splited amount against item. Splited amount cannot be more that number of items in stack.
+ virtual bool CheckItem(uint32& splitedAmount);
+ // Defines if player has rights to save item in container
+ virtual bool HasStoreRights(MoveItemData* /*pOther*/) const { return true; }
+ // Defines if player has rights to withdraw item from container
+ virtual bool HasWithdrawRights(MoveItemData* /*pOther*/) const { return true; }
+ // Checks if container can store specified item
+ bool CanStore(Item* pItem, bool swap, bool sendError);
+ // Clones stored item
+ bool CloneItem(uint32 count);
+ // Remove item from container (if splited update items fields)
+ virtual void RemoveItem(SQLTransaction& trans, MoveItemData* pOther, uint32 splitedAmount = 0) = 0;
+ // Saves item to container
+ virtual Item* StoreItem(SQLTransaction& trans, Item* pItem) = 0;
+ // Log bank event
+ virtual void LogBankEvent(SQLTransaction& trans, MoveItemData* pFrom, uint32 count) const = 0;
+ // Log GM action
+ virtual void LogAction(MoveItemData* pFrom) const;
+ // Copy slots id from position vector
+ void CopySlots(SlotIds& ids) const;
+
+ Item* GetItem(bool isCloned = false) const { return isCloned ? m_pClonedItem : m_pItem; }
+ uint8 GetContainer() const { return m_container; }
+ uint8 GetSlotId() const { return m_slotId; }
+
+ protected:
+ virtual InventoryResult CanStore(Item* pItem, bool swap) = 0;
+
+ Guild* m_pGuild;
+ Player* m_pPlayer;
+ uint8 m_container;
+ uint8 m_slotId;
+ Item* m_pItem;
+ Item* m_pClonedItem;
+ std::vector<ItemPosCount> m_vec;
+ };
+
+ class PlayerMoveItemData : public MoveItemData
+ {
+ public:
+ PlayerMoveItemData(Guild* guild, Player* player, uint8 container, uint8 slotId) :
+ MoveItemData(guild, player, container, slotId) { }
- inline Item* GetItem(uint8 slotId) const { return slotId < GUILD_BANK_MAX_SLOTS ? m_items[slotId] : NULL; }
- bool SetItem(SQLTransaction& trans, uint8 slotId, Item* item);
+ bool IsBank() const override { return false; }
+ bool InitItem() override;
+ void RemoveItem(SQLTransaction& trans, MoveItemData* pOther, uint32 splitedAmount = 0) override;
+ Item* StoreItem(SQLTransaction& trans, Item* pItem) override;
+ void LogBankEvent(SQLTransaction& trans, MoveItemData* pFrom, uint32 count) const override;
- private:
- ObjectGuid::LowType m_guildId;
- uint8 m_tabId;
+ protected:
+ InventoryResult CanStore(Item* pItem, bool swap) override;
+ };
- Item* m_items[GUILD_BANK_MAX_SLOTS];
- std::string m_name;
- std::string m_icon;
- std::string m_text;
- };
+ class BankMoveItemData : public MoveItemData
+ {
+ public:
+ BankMoveItemData(Guild* guild, Player* player, uint8 container, uint8 slotId) :
+ MoveItemData(guild, player, container, slotId) { }
+
+ bool IsBank() const override { return true; }
+ bool InitItem() override;
+ bool HasStoreRights(MoveItemData* pOther) const override;
+ bool HasWithdrawRights(MoveItemData* pOther) const override;
+ void RemoveItem(SQLTransaction& trans, MoveItemData* pOther, uint32 splitedAmount) override;
+ Item* StoreItem(SQLTransaction& trans, Item* pItem) override;
+ void LogBankEvent(SQLTransaction& trans, MoveItemData* pFrom, uint32 count) const override;
+ void LogAction(MoveItemData* pFrom) const override;
+
+ protected:
+ InventoryResult CanStore(Item* pItem, bool swap) override;
+
+ private:
+ Item* _StoreItem(SQLTransaction& trans, BankTab* pTab, Item* pItem, ItemPosCount& pos, bool clone) const;
+ bool _ReserveSpace(uint8 slotId, Item* pItem, Item* pItemDest, uint32& count);
+ void CanStoreItemInTab(Item* pItem, uint8 skipSlotId, bool merge, uint32& count);
+ };
+
+ typedef std::unordered_map<ObjectGuid, Member*> Members;
+ typedef std::vector<RankInfo> Ranks;
+ typedef std::vector<BankTab*> BankTabs;
- // Movement data
- class MoveItemData
- {
public:
- MoveItemData(Guild* guild, Player* player, uint8 container, uint8 slotId);
- virtual ~MoveItemData();
-
- virtual bool IsBank() const = 0;
- // Initializes item pointer. Returns true, if item exists, false otherwise.
- virtual bool InitItem() = 0;
- // Checks splited amount against item. Splited amount cannot be more that number of items in stack.
- virtual bool CheckItem(uint32& splitedAmount);
- // Defines if player has rights to save item in container
- virtual bool HasStoreRights(MoveItemData* /*pOther*/) const { return true; }
- // Defines if player has rights to withdraw item from container
- virtual bool HasWithdrawRights(MoveItemData* /*pOther*/) const { return true; }
- // Checks if container can store specified item
- bool CanStore(Item* pItem, bool swap, bool sendError);
- // Clones stored item
- bool CloneItem(uint32 count);
- // Remove item from container (if splited update items fields)
- virtual void RemoveItem(SQLTransaction& trans, MoveItemData* pOther, uint32 splitedAmount = 0) = 0;
- // Saves item to container
- virtual Item* StoreItem(SQLTransaction& trans, Item* pItem) = 0;
- // Log bank event
- virtual void LogBankEvent(SQLTransaction& trans, MoveItemData* pFrom, uint32 count) const = 0;
- // Log GM action
- virtual void LogAction(MoveItemData* pFrom) const;
- // Copy slots id from position vector
- void CopySlots(SlotIds& ids) const;
-
- Item* GetItem(bool isCloned = false) const { return isCloned ? m_pClonedItem : m_pItem; }
- uint8 GetContainer() const { return m_container; }
- uint8 GetSlotId() const { return m_slotId; }
+ static void SendCommandResult(WorldSession* session, GuildCommandType type, GuildCommandError errCode, std::string const& param = "");
+ static void SendSaveEmblemResult(WorldSession* session, GuildEmblemError errCode);
- protected:
- virtual InventoryResult CanStore(Item* pItem, bool swap) = 0;
-
- Guild* m_pGuild;
- Player* m_pPlayer;
- uint8 m_container;
- uint8 m_slotId;
- Item* m_pItem;
- Item* m_pClonedItem;
- std::vector<ItemPosCount> m_vec;
- };
-
- class PlayerMoveItemData : public MoveItemData
- {
- public:
- PlayerMoveItemData(Guild* guild, Player* player, uint8 container, uint8 slotId) :
- MoveItemData(guild, player, container, slotId) { }
-
- bool IsBank() const override { return false; }
- bool InitItem() override;
- void RemoveItem(SQLTransaction& trans, MoveItemData* pOther, uint32 splitedAmount = 0) override;
- Item* StoreItem(SQLTransaction& trans, Item* pItem) override;
- void LogBankEvent(SQLTransaction& trans, MoveItemData* pFrom, uint32 count) const override;
- protected:
- InventoryResult CanStore(Item* pItem, bool swap) override;
- };
+ Guild();
+ ~Guild();
- class BankMoveItemData : public MoveItemData
- {
- public:
- BankMoveItemData(Guild* guild, Player* player, uint8 container, uint8 slotId) :
- MoveItemData(guild, player, container, slotId) { }
-
- bool IsBank() const override { return true; }
- bool InitItem() override;
- bool HasStoreRights(MoveItemData* pOther) const override;
- bool HasWithdrawRights(MoveItemData* pOther) const override;
- void RemoveItem(SQLTransaction& trans, MoveItemData* pOther, uint32 splitedAmount) override;
- Item* StoreItem(SQLTransaction& trans, Item* pItem) override;
- void LogBankEvent(SQLTransaction& trans, MoveItemData* pFrom, uint32 count) const override;
- void LogAction(MoveItemData* pFrom) const override;
+ bool Create(Player* pLeader, std::string const& name);
+ void Disband();
- protected:
- InventoryResult CanStore(Item* pItem, bool swap) override;
+ void SaveToDB();
- private:
- Item* _StoreItem(SQLTransaction& trans, BankTab* pTab, Item* pItem, ItemPosCount& pos, bool clone) const;
- bool _ReserveSpace(uint8 slotId, Item* pItem, Item* pItemDest, uint32& count);
- void CanStoreItemInTab(Item* pItem, uint8 skipSlotId, bool merge, uint32& count);
- };
-
- typedef std::unordered_map<ObjectGuid, Member*> Members;
- typedef std::vector<RankInfo> Ranks;
- typedef std::vector<BankTab*> BankTabs;
-
-public:
- static void SendCommandResult(WorldSession* session, GuildCommandType type, GuildCommandError errCode, std::string const& param = "");
- static void SendSaveEmblemResult(WorldSession* session, GuildEmblemError errCode);
-
- Guild();
- ~Guild();
-
- bool Create(Player* pLeader, std::string const& name);
- void Disband();
-
- void SaveToDB();
-
- // Getters
- ObjectGuid::LowType GetId() const { return m_id; }
- ObjectGuid GetGUID() const { return ObjectGuid::Create<HighGuid::Guild>(m_id); }
- ObjectGuid GetLeaderGUID() const { return m_leaderGuid; }
- std::string const& GetName() const { return m_name; }
- std::string const& GetMOTD() const { return m_motd; }
- std::string const& GetInfo() const { return m_info; }
- time_t GetCreatedDate() const { return m_createdDate; }
- uint64 GetBankMoney() const { return m_bankMoney; }
-
- bool SetName(std::string const& name);
-
- // Handle client commands
- void HandleRoster(WorldSession* session);
- void SendQueryResponse(WorldSession* session);
- void HandleSetAchievementTracking(WorldSession* session, std::set<uint32> const& achievementIds);
- void HandleGetAchievementMembers(WorldSession* session, uint32 achievementId) const;
- void HandleSetMOTD(WorldSession* session, std::string const& motd);
- void HandleSetInfo(WorldSession* session, std::string const& info);
- void HandleSetEmblem(WorldSession* session, const EmblemInfo& emblemInfo);
- void HandleSetNewGuildMaster(WorldSession* session, std::string const& name);
- void HandleSetBankTabInfo(WorldSession* session, uint8 tabId, std::string const& name, std::string const& icon);
- void HandleSetMemberNote(WorldSession* session, std::string const& note, ObjectGuid guid, bool isPublic);
- void HandleSetRankInfo(WorldSession* session, uint8 rankId, std::string const& name, uint32 rights, uint32 moneyPerDay, GuildBankRightsAndSlotsVec const& rightsAndSlots);
- void HandleBuyBankTab(WorldSession* session, uint8 tabId);
- void HandleInviteMember(WorldSession* session, std::string const& name);
- void HandleAcceptMember(WorldSession* session);
- void HandleLeaveMember(WorldSession* session);
- void HandleRemoveMember(WorldSession* session, ObjectGuid guid);
- void HandleUpdateMemberRank(WorldSession* session, ObjectGuid guid, bool demote);
- void HandleSetMemberRank(WorldSession* session, ObjectGuid guid, ObjectGuid setterGuid, uint32 rank);
- void HandleAddNewRank(WorldSession* session, std::string const& name);
- void HandleRemoveRank(WorldSession* session, uint8 rankId);
- void HandleMemberDepositMoney(WorldSession* session, uint64 amount, bool cashFlow = false);
- bool HandleMemberWithdrawMoney(WorldSession* session, uint64 amount, bool repair = false);
- void HandleMemberLogout(WorldSession* session);
- void HandleDelete(WorldSession* session);
- void HandleGuildPartyRequest(WorldSession* session) const;
- void HandleNewsSetSticky(WorldSession* session, uint32 newsId, bool sticky) const;
- void HandleGuildRequestChallengeUpdate(WorldSession* session) const;
-
- void UpdateMemberData(Player* player, uint8 dataid, uint32 value);
- void OnPlayerStatusChange(Player* player, uint32 flag, bool state);
-
- // Send info to client
- void SendGuildRankInfo(WorldSession* session) const;
- void SendEventLog(WorldSession* session) const;
- void SendBankLog(WorldSession* session, uint8 tabId) 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) const;
-
- // Send events
- void SendEventBankMoneyChanged() const;
- void SendEventMOTD(WorldSession* session, bool broadcast = false) const;
- void SendEventNewLeader(Member* newLeader, Member* oldLeader, bool isSelfPromoted = false) const;
- void SendEventPlayerLeft(Member* leaver, Member* remover = nullptr, bool isRemoved = false) const;
- void SendEventPresenceChanged(WorldSession* session, bool loggedOn, bool broadcast = false) const;
-
- // Load from DB
- bool LoadFromDB(Field* fields);
- void LoadGuildNewsLogFromDB(Field* fields) const;
- void LoadRankFromDB(Field* fields);
- bool LoadMemberFromDB(Field* fields);
- bool LoadEventLogFromDB(Field* fields) const;
- void LoadBankRightFromDB(Field* fields);
- void LoadBankTabFromDB(Field* fields);
- bool LoadBankEventLogFromDB(Field* fields);
- bool LoadBankItemFromDB(Field* fields);
- bool Validate();
-
- // Broadcasts
- void BroadcastToGuild(WorldSession* session, bool officerOnly, std::string const& msg, uint32 language = LANG_UNIVERSAL) const;
- void BroadcastAddonToGuild(WorldSession* session, bool officerOnly, std::string const& msg, std::string const& prefix) const;
- void BroadcastPacketToRank(WorldPacket const* packet, uint8 rankId) const;
- void BroadcastPacket(WorldPacket const* packet) const;
- void BroadcastPacketIfTrackingAchievement(WorldPacket const* packet, uint32 criteriaId) const;
-
- void MassInviteToEvent(WorldSession* session, uint32 minLevel, uint32 maxLevel, uint32 minRank);
-
- template<class Do>
- void BroadcastWorker(Do& _do, Player* except = nullptr)
- {
- for (Members::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
- if (Player* player = itr->second->FindConnectedPlayer())
- if (player != except)
- _do(player);
- }
+ // Getters
+ ObjectGuid::LowType GetId() const { return m_id; }
+ ObjectGuid GetGUID() const { return ObjectGuid::Create<HighGuid::Guild>(m_id); }
+ ObjectGuid GetLeaderGUID() const { return m_leaderGuid; }
+ std::string const& GetName() const { return m_name; }
+ std::string const& GetMOTD() const { return m_motd; }
+ std::string const& GetInfo() const { return m_info; }
+ time_t GetCreatedDate() const { return m_createdDate; }
+ uint64 GetBankMoney() const { return m_bankMoney; }
+
+ bool SetName(std::string const& name);
+
+ // Handle client commands
+ void HandleRoster(WorldSession* session);
+ void SendQueryResponse(WorldSession* session);
+ void HandleSetAchievementTracking(WorldSession* session, std::set<uint32> const& achievementIds);
+ void HandleGetAchievementMembers(WorldSession* session, uint32 achievementId) const;
+ void HandleSetMOTD(WorldSession* session, std::string const& motd);
+ void HandleSetInfo(WorldSession* session, std::string const& info);
+ void HandleSetEmblem(WorldSession* session, const EmblemInfo& emblemInfo);
+ void HandleSetNewGuildMaster(WorldSession* session, std::string const& name);
+ void HandleSetBankTabInfo(WorldSession* session, uint8 tabId, std::string const& name, std::string const& icon);
+ void HandleSetMemberNote(WorldSession* session, std::string const& note, ObjectGuid guid, bool isPublic);
+ void HandleSetRankInfo(WorldSession* session, uint8 rankId, std::string const& name, uint32 rights, uint32 moneyPerDay, GuildBankRightsAndSlotsVec const& rightsAndSlots);
+ void HandleBuyBankTab(WorldSession* session, uint8 tabId);
+ void HandleInviteMember(WorldSession* session, std::string const& name);
+ void HandleAcceptMember(WorldSession* session);
+ void HandleLeaveMember(WorldSession* session);
+ void HandleRemoveMember(WorldSession* session, ObjectGuid guid);
+ void HandleUpdateMemberRank(WorldSession* session, ObjectGuid guid, bool demote);
+ void HandleSetMemberRank(WorldSession* session, ObjectGuid guid, ObjectGuid setterGuid, uint32 rank);
+ void HandleAddNewRank(WorldSession* session, std::string const& name);
+ void HandleRemoveRank(WorldSession* session, uint8 rankId);
+ void HandleMemberDepositMoney(WorldSession* session, uint64 amount, bool cashFlow = false);
+ bool HandleMemberWithdrawMoney(WorldSession* session, uint64 amount, bool repair = false);
+ void HandleMemberLogout(WorldSession* session);
+ void HandleDelete(WorldSession* session);
+ void HandleGuildPartyRequest(WorldSession* session) const;
+ void HandleNewsSetSticky(WorldSession* session, uint32 newsId, bool sticky) const;
+ void HandleGuildRequestChallengeUpdate(WorldSession* session) const;
+
+ void UpdateMemberData(Player* player, uint8 dataid, uint32 value);
+ void OnPlayerStatusChange(Player* player, uint32 flag, bool state);
+
+ // Send info to client
+ void SendGuildRankInfo(WorldSession* session) const;
+ void SendEventLog(WorldSession* session) const;
+ void SendBankLog(WorldSession* session, uint8 tabId) 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) const;
+
+ // Send events
+ void SendEventBankMoneyChanged() const;
+ void SendEventMOTD(WorldSession* session, bool broadcast = false) const;
+ void SendEventNewLeader(Member* newLeader, Member* oldLeader, bool isSelfPromoted = false) const;
+ void SendEventPlayerLeft(Member* leaver, Member* remover = nullptr, bool isRemoved = false) const;
+ void SendEventPresenceChanged(WorldSession* session, bool loggedOn, bool broadcast = false) const;
+
+ // Load from DB
+ bool LoadFromDB(Field* fields);
+ void LoadGuildNewsLogFromDB(Field* fields) const;
+ void LoadRankFromDB(Field* fields);
+ bool LoadMemberFromDB(Field* fields);
+ bool LoadEventLogFromDB(Field* fields) const;
+ void LoadBankRightFromDB(Field* fields);
+ void LoadBankTabFromDB(Field* fields);
+ bool LoadBankEventLogFromDB(Field* fields);
+ bool LoadBankItemFromDB(Field* fields);
+ bool Validate();
+
+ // Broadcasts
+ void BroadcastToGuild(WorldSession* session, bool officerOnly, std::string const& msg, uint32 language = LANG_UNIVERSAL) const;
+ void BroadcastAddonToGuild(WorldSession* session, bool officerOnly, std::string const& msg, std::string const& prefix) const;
+ void BroadcastPacketToRank(WorldPacket const* packet, uint8 rankId) const;
+ void BroadcastPacket(WorldPacket const* packet) const;
+ void BroadcastPacketIfTrackingAchievement(WorldPacket const* packet, uint32 criteriaId) const;
+
+ void MassInviteToEvent(WorldSession* session, uint32 minLevel, uint32 maxLevel, uint32 minRank);
+
+ template<class Do>
+ void BroadcastWorker(Do& _do, Player* except = nullptr)
+ {
+ for (Members::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
+ if (Player* player = itr->second->FindConnectedPlayer())
+ if (player != except)
+ _do(player);
+ }
- // Members
- // Adds member to guild. If rankId == GUILD_RANK_NONE, lowest rank is assigned.
- bool AddMember(ObjectGuid guid, uint8 rankId = GUILD_RANK_NONE);
- void DeleteMember(ObjectGuid guid, bool isDisbanding = false, bool isKicked = false, bool canDeleteGuild = false);
- bool ChangeMemberRank(ObjectGuid guid, uint8 newRank);
- bool IsMember(ObjectGuid guid) const;
- uint32 GetMembersCount() const { return uint32(m_members.size()); }
+ // Members
+ // Adds member to guild. If rankId == GUILD_RANK_NONE, lowest rank is assigned.
+ bool AddMember(ObjectGuid guid, uint8 rankId = GUILD_RANK_NONE);
+ void DeleteMember(ObjectGuid guid, bool isDisbanding = false, bool isKicked = false, bool canDeleteGuild = false);
+ bool ChangeMemberRank(ObjectGuid guid, uint8 newRank);
+ bool IsMember(ObjectGuid guid) const;
+ uint32 GetMembersCount() const { return uint32(m_members.size()); }
- // Bank
- void SwapItems(Player* player, uint8 tabId, uint8 slotId, uint8 destTabId, uint8 destSlotId, uint32 splitedAmount);
- void SwapItemsWithInventory(Player* player, bool toChar, uint8 tabId, uint8 slotId, uint8 playerBag, uint8 playerSlotId, uint32 splitedAmount);
+ // Bank
+ void SwapItems(Player* player, uint8 tabId, uint8 slotId, uint8 destTabId, uint8 destSlotId, uint32 splitedAmount);
+ void SwapItemsWithInventory(Player* player, bool toChar, uint8 tabId, uint8 slotId, uint8 playerBag, uint8 playerSlotId, uint32 splitedAmount);
- // Bank tabs
- void SetBankTabText(uint8 tabId, std::string const& text);
+ // Bank tabs
+ void SetBankTabText(uint8 tabId, std::string const& text);
- GuildAchievementMgr& GetAchievementMgr() { return m_achievementMgr; }
- GuildAchievementMgr const& GetAchievementMgr() const { return m_achievementMgr; }
+ GuildAchievementMgr& GetAchievementMgr() { return m_achievementMgr; }
+ GuildAchievementMgr const& GetAchievementMgr() const { return m_achievementMgr; }
- // Pre-6.x guild leveling
- uint8 GetLevel() const { return GUILD_OLD_MAX_LEVEL; }
+ // Pre-6.x guild leveling
+ uint8 GetLevel() const { return GUILD_OLD_MAX_LEVEL; }
- void AddGuildNews(uint8 type, ObjectGuid guid, uint32 flags, uint32 value) const;
+ void AddGuildNews(uint8 type, ObjectGuid guid, uint32 flags, uint32 value) const;
- EmblemInfo const& GetEmblemInfo() const { return m_emblemInfo; }
- void ResetTimes(bool weekly);
+ EmblemInfo const& GetEmblemInfo() const { return m_emblemInfo; }
+ void ResetTimes(bool weekly);
- bool HasAchieved(uint32 achievementId) const;
- void UpdateCriteria(CriteriaTypes type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, Unit* unit, Player* player);
+ bool HasAchieved(uint32 achievementId) const;
+ void UpdateCriteria(CriteriaTypes type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, Unit* unit, Player* player);
-protected:
- ObjectGuid::LowType m_id;
- std::string m_name;
- ObjectGuid m_leaderGuid;
- std::string m_motd;
- std::string m_info;
- time_t m_createdDate;
+ protected:
+ ObjectGuid::LowType m_id;
+ std::string m_name;
+ ObjectGuid m_leaderGuid;
+ std::string m_motd;
+ std::string m_info;
+ time_t m_createdDate;
- EmblemInfo m_emblemInfo;
- uint32 m_accountsNumber;
- uint64 m_bankMoney;
+ EmblemInfo m_emblemInfo;
+ uint32 m_accountsNumber;
+ uint64 m_bankMoney;
- Ranks m_ranks;
- Members m_members;
- BankTabs m_bankTabs;
+ Ranks m_ranks;
+ Members m_members;
+ BankTabs m_bankTabs;
- // These are actually ordered lists. The first element is the oldest entry.
- LogHolder* m_eventLog;
- LogHolder* m_bankEventLog[GUILD_BANK_MAX_TABS + 1];
- LogHolder* m_newsLog;
- GuildAchievementMgr m_achievementMgr;
+ // These are actually ordered lists. The first element is the oldest entry.
+ LogHolder* m_eventLog;
+ LogHolder* m_bankEventLog[GUILD_BANK_MAX_TABS + 1];
+ LogHolder* m_newsLog;
+ GuildAchievementMgr m_achievementMgr;
-private:
- inline uint8 _GetRanksSize() const { return uint8(m_ranks.size()); }
- inline const RankInfo* GetRankInfo(uint8 rankId) const { return rankId < _GetRanksSize() ? &m_ranks[rankId] : NULL; }
- inline RankInfo* GetRankInfo(uint8 rankId) { return rankId < _GetRanksSize() ? &m_ranks[rankId] : NULL; }
- bool _HasRankRight(Player const* player, uint32 right) const;
+ private:
+ inline uint8 _GetRanksSize() const { return uint8(m_ranks.size()); }
+ inline const RankInfo* GetRankInfo(uint8 rankId) const { return rankId < _GetRanksSize() ? &m_ranks[rankId] : nullptr; }
+ inline RankInfo* GetRankInfo(uint8 rankId) { return rankId < _GetRanksSize() ? &m_ranks[rankId] : nullptr; }
+ bool _HasRankRight(Player const* player, uint32 right) const;
- inline uint8 _GetLowestRankId() const { return uint8(m_ranks.size() - 1); }
+ inline uint8 _GetLowestRankId() const { return uint8(m_ranks.size() - 1); }
- inline uint8 _GetPurchasedTabsSize() const { return uint8(m_bankTabs.size()); }
- inline BankTab* GetBankTab(uint8 tabId) { return tabId < m_bankTabs.size() ? m_bankTabs[tabId] : NULL; }
- inline const BankTab* GetBankTab(uint8 tabId) const { return tabId < m_bankTabs.size() ? m_bankTabs[tabId] : NULL; }
+ inline uint8 _GetPurchasedTabsSize() const { return uint8(m_bankTabs.size()); }
+ inline BankTab* GetBankTab(uint8 tabId) { return tabId < m_bankTabs.size() ? m_bankTabs[tabId] : nullptr; }
+ inline const BankTab* GetBankTab(uint8 tabId) const { return tabId < m_bankTabs.size() ? m_bankTabs[tabId] : nullptr; }
- inline const Member* GetMember(ObjectGuid const& guid) const
- {
- Members::const_iterator itr = m_members.find(guid);
- return itr != m_members.end() ? itr->second : NULL;
- }
+ inline const Member* GetMember(ObjectGuid const& guid) const
+ {
+ Members::const_iterator itr = m_members.find(guid);
+ return itr != m_members.end() ? itr->second : nullptr;
+ }
- inline Member* GetMember(ObjectGuid const& guid)
- {
- Members::iterator itr = m_members.find(guid);
- return itr != m_members.end() ? itr->second : NULL;
- }
+ inline Member* GetMember(ObjectGuid const& guid)
+ {
+ Members::iterator itr = m_members.find(guid);
+ return itr != m_members.end() ? itr->second : nullptr;
+ }
- inline Member* GetMember(std::string const& name)
- {
- for (Members::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
- if (itr->second->GetName() == name)
- return itr->second;
+ inline Member* GetMember(std::string const& name)
+ {
+ for (Members::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
+ if (itr->second->GetName() == name)
+ return itr->second;
- return nullptr;
- }
+ return nullptr;
+ }
- static void _DeleteMemberFromDB(ObjectGuid::LowType lowguid);
-
- // Creates log holders (either when loading or when creating guild)
- void _CreateLogHolders();
- // Tries to create new bank tab
- void _CreateNewBankTab();
- // Creates default guild ranks with names in given locale
- void _CreateDefaultGuildRanks(LocaleConstant loc);
- // Creates new rank
- bool _CreateRank(std::string const& name, uint32 rights);
- // Update account number when member added/removed from guild
- void _UpdateAccountsNumber();
- bool _IsLeader(Player* player) const;
- void _DeleteBankItems(SQLTransaction& trans, bool removeItemsFromDB = false);
- bool _ModifyBankMoney(SQLTransaction& trans, uint64 amount, bool add);
- void _SetLeaderGUID(Member* pLeader);
-
- void _SetRankBankMoneyPerDay(uint8 rankId, uint32 moneyPerDay);
- void _SetRankBankTabRightsAndSlots(uint8 rankId, GuildBankRightsAndSlots rightsAndSlots, bool saveToDB = true);
- int8 _GetRankBankTabRights(uint8 rankId, uint8 tabId) const;
- uint32 _GetRankRights(uint8 rankId) const;
- uint32 _GetRankBankMoneyPerDay(uint8 rankId) const;
- int32 _GetRankBankTabSlotsPerDay(uint8 rankId, uint8 tabId) const;
- std::string _GetRankName(uint8 rankId) const;
-
- int32 _GetMemberRemainingSlots(Member const* member, uint8 tabId) const;
- int64 _GetMemberRemainingMoney(Member const* member) const;
- void _UpdateMemberWithdrawSlots(SQLTransaction& trans, ObjectGuid guid, uint8 tabId);
- 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);
-
- Item* _GetItem(uint8 tabId, uint8 slotId) const;
- void _RemoveItem(SQLTransaction& trans, uint8 tabId, uint8 slotId);
- void _MoveItems(MoveItemData* pSrc, MoveItemData* pDest, uint32 splitedAmount) const;
- static bool _DoItemsMove(MoveItemData* pSrc, MoveItemData* pDest, bool sendError, uint32 splitedAmount = 0);
-
- void _SendBankContentUpdate(MoveItemData* pSrc, MoveItemData* pDest) const;
- void _SendBankContentUpdate(uint8 tabId, SlotIds slots) const;
- void SendGuildRanksUpdate(ObjectGuid setterGuid, ObjectGuid targetGuid, uint32 rank);
+ static void _DeleteMemberFromDB(ObjectGuid::LowType lowguid);
+
+ // Creates log holders (either when loading or when creating guild)
+ void _CreateLogHolders();
+ // Tries to create new bank tab
+ void _CreateNewBankTab();
+ // Creates default guild ranks with names in given locale
+ void _CreateDefaultGuildRanks(LocaleConstant loc);
+ // Creates new rank
+ bool _CreateRank(std::string const& name, uint32 rights);
+ // Update account number when member added/removed from guild
+ void _UpdateAccountsNumber();
+ bool _IsLeader(Player* player) const;
+ void _DeleteBankItems(SQLTransaction& trans, bool removeItemsFromDB = false);
+ bool _ModifyBankMoney(SQLTransaction& trans, uint64 amount, bool add);
+ void _SetLeaderGUID(Member* pLeader);
+
+ void _SetRankBankMoneyPerDay(uint8 rankId, uint32 moneyPerDay);
+ void _SetRankBankTabRightsAndSlots(uint8 rankId, GuildBankRightsAndSlots rightsAndSlots, bool saveToDB = true);
+ int8 _GetRankBankTabRights(uint8 rankId, uint8 tabId) const;
+ uint32 _GetRankRights(uint8 rankId) const;
+ uint32 _GetRankBankMoneyPerDay(uint8 rankId) const;
+ int32 _GetRankBankTabSlotsPerDay(uint8 rankId, uint8 tabId) const;
+ std::string _GetRankName(uint8 rankId) const;
+
+ int32 _GetMemberRemainingSlots(Member const* member, uint8 tabId) const;
+ int64 _GetMemberRemainingMoney(Member const* member) const;
+ void _UpdateMemberWithdrawSlots(SQLTransaction& trans, ObjectGuid guid, uint8 tabId);
+ 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);
+
+ Item* _GetItem(uint8 tabId, uint8 slotId) const;
+ void _RemoveItem(SQLTransaction& trans, uint8 tabId, uint8 slotId);
+ void _MoveItems(MoveItemData* pSrc, MoveItemData* pDest, uint32 splitedAmount) const;
+ static bool _DoItemsMove(MoveItemData* pSrc, MoveItemData* pDest, bool sendError, uint32 splitedAmount = 0);
+
+ void _SendBankContentUpdate(MoveItemData* pSrc, MoveItemData* pDest) const;
+ void _SendBankContentUpdate(uint8 tabId, SlotIds slots) const;
+ void SendGuildRanksUpdate(ObjectGuid setterGuid, ObjectGuid targetGuid, uint32 rank);
};
#endif