Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
Guild.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef SKYFIRESERVER_GUILD_H
7#define SKYFIRESERVER_GUILD_H
8
9#include "AchievementMgr.h"
10#include "DBCStore.h"
11#include "Item.h"
12#include "ObjectMgr.h"
13#include "Player.h"
14#include "World.h"
15#include "WorldPacket.h"
16
17class Item;
18
33
40
42{
43 // These ranks can be modified, but they cannot be deleted
49 // When promoting member server does: rank--
50 // When demoting member server does: rank++
51};
52
54{
55 GR_RIGHT_EMPTY = 0x00000040,
69 GR_RIGHT_WITHDRAW_GOLD_LOCK = 0x00020000, // remove money withdraw capacity
70 GR_RIGHT_WITHDRAW_REPAIR = 0x00040000, // withdraw for repair
71 GR_RIGHT_WITHDRAW_GOLD = 0x00080000, // withdraw gold
72 GR_RIGHT_CREATE_GUILD_EVENT = 0x00100000, // wotlk
75 GR_RIGHT_ALL = 0x00DDFFBF // FDFFBF with GR_RIGHT_REQUIRES_AUTHENTICATOR
76};
77
97
133
163
172
184
194
208
218
228
237
248
257
258uint32 const MinNewsItemLevel[MAX_CONTENT] = { 61, 90, 200, 353, 463 };
259
260// GuildChallengeInfo
261const uint32 GuildChallengeWeeklyMaximum[] = { 0, 7, 1, 3, 15, 3 };
262const uint32 GuildChallengeGoldReward[] = { 0, 125, 500, 250, 125, 250 };
263const uint32 GuildChallengeMaxLevelGoldReward[] = { 0, 250, 1000, 500, 250, 500 };
264const uint32 GuildChallengeXPReward[] = { 0, 300000, 3000000, 1500000, 50000, 1000000 };
265
266// Emblem info
268{
269public:
271
272 void LoadFromDB(Field* fields);
273 void SaveToDB(uint32 guildId) const;
274 void ReadPacket(WorldPacket& recv);
275 void WritePacket(WorldPacket& data) const;
276
277 uint32 GetStyle() const { return m_style; }
278 uint32 GetColor() const { return m_color; }
282
283private:
289};
290
291// Structure for storing guild bank rights and remaining slots together.
293{
294public:
296 GuildBankRightsAndSlots(uint8 _tabId) : tabId(_tabId), rights(0), slots(0) { }
297 GuildBankRightsAndSlots(uint8 _tabId, uint8 _rights, uint32 _slots) : tabId(_tabId), rights(_rights), slots(_slots) { }
298
304
305 void SetTabId(uint8 _tabId) { tabId = _tabId; }
306 void SetSlots(uint32 _slots) { slots = _slots; }
307 void SetRights(uint8 _rights) { rights = _rights; }
308
309 int8 GetTabId() const { return tabId; }
310 int32 GetSlots() const { return slots; }
311 int8 GetRights() const { return rights; }
312
313private:
317};
318
319typedef std::vector <GuildBankRightsAndSlots> GuildBankRightsAndSlotsVec;
320
321typedef std::set <uint8> SlotIds;
322
323class Guild
324{
325private:
326 // Class representing guild member
327 class Member
328 {
329 public:
330 Member(uint32 guildId, uint64 guid, uint8 rankId) :
331 m_guildId(guildId),
332 m_guid(guid),
333 m_zoneId(0),
334 m_level(0),
335 m_class(0),
337 m_logoutTime(::time(NULL)),
338 m_accountId(0),
339 m_rankId(rankId),
345 {
346 memset(m_bankWithdraw, 0, (GUILD_BANK_MAX_TABS + 1) * sizeof(int32));
347 }
348
349 void SetStats(Player* player);
350 void SetStats(uint32 virtualRealmID, std::string const& name, uint8 level, uint8 _class, uint32 zoneId, uint32 accountId, uint32 reputation);
351 bool CheckStats() const;
352
353 void SetPublicNote(std::string const& publicNote);
354 void SetOfficerNote(std::string const& officerNote);
355 void SetZoneId(uint32 id) { m_zoneId = id; }
357 void SetLevel(uint8 var) { m_level = var; }
358 void AddReputation(uint32& reputation);
359 void AddActivity(uint64 activity);
360
361 void AddFlag(uint8 var) { m_flags |= var; }
362 void RemFlag(uint8 var) { m_flags &= ~var; }
364
365 bool LoadFromDB(Field* fields);
366 void SaveToDB(SQLTransaction& trans) const;
367
368 uint64 GetGUID() const { return m_guid; }
370 std::string const& GetName() const { return m_name; }
371 uint32 GetAccountId() const { return m_accountId; }
372 uint8 GetRankId() const { return m_rankId; }
374 std::string GetPublicNote() const { return m_publicNote; }
375 std::string GetOfficerNote() const { return m_officerNote; }
376 uint8 GetClass() const { return m_class; }
377 uint8 GetLevel() const { return m_level; }
378 uint8 GetFlags() const { return m_flags; }
379 uint32 GetZoneId() const { return m_zoneId; }
385
386 bool IsOnline() const { return (m_flags & GUILDMEMBER_STATUS_ONLINE); }
387
388 void ChangeRank(uint8 newRank);
389
390 inline void UpdateLogoutTime() { m_logoutTime = ::time(NULL); }
391 inline bool IsRank(uint8 rankId) const { return m_rankId == rankId; }
392 inline bool IsRankNotLower(uint8 rankId) const { return m_rankId <= rankId; }
393 inline bool IsSamePlayer(uint64 guid) const { return m_guid == guid; }
394
395 void UpdateBankWithdrawValue(SQLTransaction& trans, uint8 tabId, uint32 amount);
396 int32 GetBankWithdrawValue(uint8 tabId) const;
397 void ResetValues(bool weekly = false);
398
400
401 private:
403 // Fields from characters table
406 std::string m_name;
413 // Fields from guild_member table
415 std::string m_publicNote;
416 std::string m_officerNote;
417
424 };
425
426 // Base class for event entries
428 {
429 public:
430 LogEntry(uint32 guildId, uint32 guid) : m_guildId(guildId), m_guid(guid), m_timestamp(::time(NULL)) { }
431 LogEntry(uint32 guildId, uint32 guid, time_t timestamp) : m_guildId(guildId), m_guid(guid), m_timestamp(timestamp) { }
432 virtual ~LogEntry() { }
433
434 uint32 GetGUID() const { return m_guid; }
435 uint64 GetTimestamp() const { return m_timestamp; }
436
437 virtual void SaveToDB(SQLTransaction& trans) const = 0;
438 virtual void WritePacket(WorldPacket& data, ByteBuffer& content) const = 0;
439
440 protected:
444 };
445
446 // Event log entry
447 class EventLogEntry : public LogEntry
448 {
449 public:
450 EventLogEntry(uint32 guildId, uint32 guid, GuildEventLogTypes eventType, uint32 playerGuid1, uint32 playerGuid2, uint8 newRank) :
451 LogEntry(guildId, guid), m_eventType(eventType), m_playerGuid1(playerGuid1), m_playerGuid2(playerGuid2), m_newRank(newRank) { }
452
453 EventLogEntry(uint32 guildId, uint32 guid, time_t timestamp, GuildEventLogTypes eventType, uint32 playerGuid1, uint32 playerGuid2, uint8 newRank) :
454 LogEntry(guildId, guid, timestamp), m_eventType(eventType), m_playerGuid1(playerGuid1), m_playerGuid2(playerGuid2), m_newRank(newRank) { }
455
457
458 void SaveToDB(SQLTransaction& trans) const;
459 void WritePacket(WorldPacket& data, ByteBuffer& content) const;
460
461 private:
466 };
467
468 // Bank event log entry
470 {
471 public:
473 {
474 return eventType == GUILD_BANK_LOG_DEPOSIT_MONEY || eventType == GUILD_BANK_LOG_WITHDRAW_MONEY ||
476 }
477
478 bool IsMoneyEvent() const
479 {
481 }
482
483 BankEventLogEntry(uint32 guildId, uint32 guid, GuildBankEventLogTypes eventType, uint8 tabId, uint32 playerGuid, uint64 itemOrMoney, uint16 itemStackCount, uint8 destTabId) :
484 LogEntry(guildId, guid), m_eventType(eventType), m_bankTabId(tabId), m_playerGuid(playerGuid),
485 m_itemOrMoney(itemOrMoney), m_itemStackCount(itemStackCount), m_destTabId(destTabId) { }
486
487 BankEventLogEntry(uint32 guildId, uint32 guid, time_t timestamp, uint8 tabId, GuildBankEventLogTypes eventType, uint32 playerGuid, uint64 itemOrMoney, uint16 itemStackCount, uint8 destTabId) :
488 LogEntry(guildId, guid, timestamp), m_eventType(eventType), m_bankTabId(tabId), m_playerGuid(playerGuid),
489 m_itemOrMoney(itemOrMoney), m_itemStackCount(itemStackCount), m_destTabId(destTabId) { }
490
492
493 void SaveToDB(SQLTransaction& trans) const;
494 void WritePacket(WorldPacket& data, ByteBuffer& content) const;
495
496 private:
503 };
504
505 // News log entry
506 class NewsLogEntry : public LogEntry
507 {
508 public:
509 NewsLogEntry(uint32 guildId, uint32 guid, GuildNews type, uint32 playerGuid, uint32 flags, uint32 value) :
510 LogEntry(guildId, guid), m_type(type), m_playerGuid(playerGuid), m_flags(flags), m_value(value) { }
511
512 NewsLogEntry(uint32 guildId, uint32 guid, time_t timestamp, GuildNews type, uint32 playerGuid, uint32 flags, uint32 value) :
513 LogEntry(guildId, guid, timestamp), m_type(type), m_playerGuid(playerGuid), m_flags(flags), m_value(value) { }
514
516
517 GuildNews GetType() const { return m_type; }
519 uint32 GetValue() const { return m_value; }
520 uint32 GetFlags() const { return m_flags; }
521 void SetSticky(bool sticky)
522 {
523 if (sticky)
524 m_flags |= 1;
525 else
526 m_flags &= ~1;
527 }
528
529 void SaveToDB(SQLTransaction& trans) const;
530 void WritePacket(WorldPacket& data, ByteBuffer& content) const;
531
532 private:
537 };
538
539 // Class encapsulating work with events collection
540 typedef std::list<LogEntry*> GuildLog;
541
543 {
544 public:
546 ~LogHolder();
547
548 uint8 GetSize() const { return uint8(m_log.size()); }
549 // Checks if new log entry can be added to holder when loading from DB
550 inline bool CanInsert() const { return m_log.size() < m_maxRecords; }
551 // Adds event from DB to collection
552 void LoadEvent(LogEntry* entry);
553 // Adds new event to collection and saves it to DB
554 void AddEvent(SQLTransaction& trans, LogEntry* entry);
555 // Writes information about all events to packet
556 void WritePacket(WorldPacket& data) const;
558 GuildLog* GetGuildLog() { return &m_log; } // Hack needed for news as WritePacket can't be used
559
560 private:
564 };
565
566 // Class encapsulating guild rank data
568 {
569 public:
572 RankInfo(uint32 guildId, uint8 rankId, std::string const& name, uint32 rights, uint32 money) :
573 m_guildId(guildId), m_rankId(rankId), m_name(name), m_rights(rights), m_bankMoneyPerDay(rankId == GR_GUILDMASTER ? GUILD_WITHDRAW_MONEY_UNLIMITED : money) { }
574
575 void LoadFromDB(Field* fields);
576 void SaveToDB(SQLTransaction& trans) const;
577
578 uint8 GetId() const { return m_rankId; }
579
580 std::string const& GetName() const { return m_name; }
581 void SetName(std::string const& name);
582
583 uint32 GetRights() const { return m_rights; }
584 void SetRights(uint32 rights);
585
587
588 void SetBankMoneyPerDay(uint32 money);
589
590 inline int8 GetBankTabRights(uint8 tabId) const
591 {
592 return tabId < GUILD_BANK_MAX_TABS ? m_bankTabRightsAndSlots[tabId].GetRights() : 0;
593 }
594
596 {
597 return tabId < GUILD_BANK_MAX_TABS ? m_bankTabRightsAndSlots[tabId].GetSlots() : 0;
598 }
599
600 void SetBankTabSlotsAndRights(GuildBankRightsAndSlots rightsAndSlots, bool saveToDB);
601 void CreateMissingTabsIfNeeded(uint8 ranks, SQLTransaction& trans, bool logOnCreate = false);
602
603 private:
606 std::string m_name;
610 };
611
613 {
614 public:
615 BankTab(uint32 guildId, uint8 tabId) : m_guildId(guildId), m_tabId(tabId)
616 {
617 memset(m_items, 0, GUILD_BANK_MAX_SLOTS * sizeof(Item*));
618 }
619
620 void LoadFromDB(Field* fields);
621 bool LoadItemFromDB(Field* fields);
622 void Delete(SQLTransaction& trans, bool removeItemsFromDB = false);
623
624 void WritePacket(WorldPacket& data) const;
625 bool WriteSlotPacket(WorldPacket& data, uint8 slotId, bool ignoreEmpty = true) const;
626 void WriteInfoPacket(WorldPacket& data) const
627 {
628 data << m_name;
629 data << m_icon;
630 }
631
632 void SetInfo(std::string const& name, std::string const& icon);
633 void SetText(std::string const& text);
634 void SendText(Guild const* guild, WorldSession* session) const;
635
636 std::string const& GetName() const { return m_name; }
637 std::string const& GetIcon() const { return m_icon; }
638 std::string const& GetText() const { return m_text; }
639
640 inline Item* GetItem(uint8 slotId) const { return slotId < GUILD_BANK_MAX_SLOTS ? m_items[slotId] : NULL; }
641 bool SetItem(SQLTransaction& trans, uint8 slotId, Item* item);
642
643 private:
646
648 std::string m_name;
649 std::string m_icon;
650 std::string m_text;
651 };
652
653 // Movement data
655 {
656 public:
657 MoveItemData(Guild* guild, Player* player, uint8 container, uint8 slotId) : m_pGuild(guild), m_pPlayer(player),
658 m_container(container), m_slotId(slotId), m_pItem(NULL), m_pClonedItem(NULL) { }
659 virtual ~MoveItemData() { }
660
661 virtual bool IsBank() const = 0;
662 // Initializes item pointer. Returns true, if item exists, false otherwise.
663 virtual bool InitItem() = 0;
664 // Checks splited amount against item. Splited amount cannot be more that number of items in stack.
665 virtual bool CheckItem(uint32& splitedAmount);
666 // Defines if player has rights to save item in container
667 virtual bool HasStoreRights(MoveItemData* /*pOther*/) const { return true; }
668 // Defines if player has rights to withdraw item from container
669 virtual bool HasWithdrawRights(MoveItemData* /*pOther*/) const { return true; }
670 // Checks if container can store specified item
671 bool CanStore(Item* pItem, bool swap, bool sendError);
672 // Clones stored item
673 bool CloneItem(uint32 count);
674 // Remove item from container (if splited update items fields)
675 virtual void RemoveItem(SQLTransaction& trans, MoveItemData* pOther, uint32 splitedAmount = 0) = 0;
676 // Saves item to container
677 virtual Item* StoreItem(SQLTransaction& trans, Item* pItem) = 0;
678 // Log bank event
679 virtual void LogBankEvent(SQLTransaction& trans, MoveItemData* pFrom, uint32 count) const = 0;
680 // Log GM action
681 virtual void LogAction(MoveItemData* pFrom) const;
682 // Copy slots id from position vector
683 void CopySlots(SlotIds& ids) const;
684
685 Item* GetItem(bool isCloned = false) const { return isCloned ? m_pClonedItem : m_pItem; }
686 uint8 GetContainer() const { return m_container; }
687 uint8 GetSlotId() const { return m_slotId; }
688
689 protected:
690 virtual InventoryResult CanStore(Item* pItem, bool swap) = 0;
691
699 };
700
702 {
703 public:
704 PlayerMoveItemData(Guild* guild, Player* player, uint8 container, uint8 slotId) :
705 MoveItemData(guild, player, container, slotId) { }
706
707 bool IsBank() const { return false; }
708 bool InitItem();
709 void RemoveItem(SQLTransaction& trans, MoveItemData* pOther, uint32 splitedAmount = 0);
710 Item* StoreItem(SQLTransaction& trans, Item* pItem);
711 void LogBankEvent(SQLTransaction& trans, MoveItemData* pFrom, uint32 count) const;
712 protected:
713 InventoryResult CanStore(Item* pItem, bool swap);
714 };
715
717 {
718 public:
719 BankMoveItemData(Guild* guild, Player* player, uint8 container, uint8 slotId) :
720 MoveItemData(guild, player, container, slotId) { }
721
722 bool IsBank() const { return true; }
723 bool InitItem();
724 bool HasStoreRights(MoveItemData* pOther) const;
725 bool HasWithdrawRights(MoveItemData* pOther) const;
726 void RemoveItem(SQLTransaction& trans, MoveItemData* pOther, uint32 splitedAmount);
727 Item* StoreItem(SQLTransaction& trans, Item* pItem);
728 void LogBankEvent(SQLTransaction& trans, MoveItemData* pFrom, uint32 count) const;
729 void LogAction(MoveItemData* pFrom) const;
730
731 protected:
732 InventoryResult CanStore(Item* pItem, bool swap);
733
734 private:
735 Item* _StoreItem(SQLTransaction& trans, BankTab* pTab, Item* pItem, ItemPosCount& pos, bool clone) const;
736 bool _ReserveSpace(uint8 slotId, Item* pItem, Item* pItemDest, uint32& count);
737 void CanStoreItemInTab(Item* pItem, uint8 skipSlotId, bool merge, uint32& count);
738 };
739
741 typedef std::vector<RankInfo> Ranks;
742 typedef std::vector<BankTab*> BankTabs;
743
744public:
745 static void SendCommandResult(WorldSession* session, GuildCommandType type, GuildCommandError errCode, std::string const& param = "");
746 static void SendSaveEmblemResult(WorldSession* session, GuildEmblemError errCode);
747
748 Guild();
749 ~Guild();
750
751 bool Create(Player* pLeader, std::string const& name);
752 void Disband();
753
754 void SaveToDB();
755
756 // Getters
757 uint32 GetId() const { return m_id; }
760 std::string const& GetName() const { return m_name; }
761 std::string const& GetMOTD() const { return m_motd; }
762 std::string const& GetInfo() const { return m_info; }
763
764 bool SetName(std::string const& name);
765
766 // Handle client commands
767 void HandleRoster(WorldSession* session = NULL);
768 void HandleQuery(WorldSession* session);
769 void HandleSetMOTD(WorldSession* session, std::string const& motd);
770 void HandleSetInfo(WorldSession* session, std::string const& info);
771 void HandleSetEmblem(WorldSession* session, const EmblemInfo& emblemInfo);
772 void HandleSetNewGuildMaster(WorldSession* session, std::string const& name);
774 void HandleSetBankTabInfo(WorldSession* session, uint8 tabId, std::string const& name, std::string const& icon);
775 void HandleSetMemberNote(WorldSession* session, std::string const& note, uint64 guid, bool isPublic);
776 void HandleSetRankInfo(WorldSession* session, uint8 rankId, std::string const& name, uint32 rights, uint32 moneyPerDay, GuildBankRightsAndSlotsVec const& rightsAndSlots);
777 void HandleBuyBankTab(WorldSession* session, uint8 tabId);
778 void HandleInviteMember(WorldSession* session, std::string const& name);
779 void HandleAcceptMember(WorldSession* session);
780 void HandleLeaveMember(WorldSession* session);
781 void HandleRemoveMember(WorldSession* session, uint64 guid);
782 void HandleUpdateMemberRank(WorldSession* session, uint64 guid, bool demote);
783 void HandleSetMemberRank(WorldSession* session, uint64 guid, uint64 setterGuid, uint32 rank);
784 void HandleAddNewRank(WorldSession* session, std::string const& name);
785 void HandleRemoveRank(WorldSession* session, uint8 rankId);
786 void HandleMemberDepositMoney(WorldSession* session, uint64 amount, bool cashFlow = false);
787 bool HandleMemberWithdrawMoney(WorldSession* session, uint64 amount, bool repair = false);
788 void HandleMemberLogout(WorldSession* session);
789 void HandleDisband(WorldSession* session);
791 void HandleNewsSetSticky(WorldSession* session, uint32 newsId, bool sticky);
792 void HandleSetBankTabNote(WorldSession* session, uint32 tabId, std::string const& note);
793
794 void UpdateMemberData(Player* player, uint8 dataid, uint32 value);
795 void OnPlayerStatusChange(Player* player, uint32 flag, bool state);
796
797 // Send info to client
798 void SendGuildRankInfo(WorldSession* session) const;
799 void SendEventLog(WorldSession* session) const;
800 void SendBankLog(WorldSession* session, uint8 tabId) const;
801 void SendBankList(WorldSession* session, uint8 tabId, bool withContent, bool withTabInfo) const;
802 void SendGuildXP(WorldSession* session = NULL) const;
803 void SendBankTabText(WorldSession* session, uint8 tabId) const;
804 void SendPermissions(WorldSession* session) const;
805 void SendMoneyInfo(WorldSession* session) const;
806 void SendLoginInfo(WorldSession* session);
807 void SendNewsUpdate(WorldSession* session);
808
809 // Load from DB
810 bool LoadFromDB(Field* fields);
811 void LoadGuildNewsLogFromDB(Field* fields);
812 void LoadRankFromDB(Field* fields);
813 bool LoadMemberFromDB(Field* fields);
814 bool LoadEventLogFromDB(Field* fields);
815 void LoadBankRightFromDB(Field* fields);
816 void LoadBankTabFromDB(Field* fields);
817 bool LoadBankEventLogFromDB(Field* fields);
818 bool LoadBankItemFromDB(Field* fields);
819 bool Validate();
820
821 // Broadcasts
822 void BroadcastToGuild(WorldSession* session, bool officerOnly, std::string const& msg, Language language = Language::LANG_UNIVERSAL) const;
823 void BroadcastAddonToGuild(WorldSession* session, bool officerOnly, std::string const& msg, std::string const& prefix) const;
824 void BroadcastPacketToRank(WorldPacket* packet, uint8 rankId) const;
825 void BroadcastPacket(WorldPacket* packet) const;
826
827 void MassInviteToEvent(WorldSession* session, uint32 minLevel, uint32 maxLevel, uint32 minRank);
828
829 template<class Do>
830 void BroadcastWorker(Do& _do, Player* except = NULL)
831 {
832 for (Members::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
833 if (Player* player = itr->second->FindPlayer())
834 if (player != except)
835 _do(player);
836 }
837
838 // Members
839 // Adds member to guild. If rankId == GUILD_RANK_NONE, lowest rank is assigned.
840 bool AddMember(uint64 guid, uint8 rankId = GUILD_RANK_NONE);
841 void DeleteMember(uint64 guid, bool isDisbanding = false, bool isKicked = false, bool canDeleteGuild = false);
842 bool ChangeMemberRank(uint64 guid, uint8 newRank);
843 bool IsMember(uint64 guid) const;
844 uint32 GetMembersCount() { return m_members.size(); }
845
846 // Bank
847 void SwapItems(Player* player, uint8 tabId, uint8 slotId, uint8 destTabId, uint8 destSlotId, uint32 splitedAmount);
848 void SwapItemsWithInventory(Player* player, bool toChar, uint8 tabId, uint8 slotId, uint8 playerBag, uint8 playerSlotId, uint32 splitedAmount);
849
850 // Bank tabs
851 void SetBankTabText(uint8 tabId, std::string const& text);
852
855
856 // Guild leveling
857 uint8 GetLevel() const { return _level; }
858 void GiveXP(uint32 xp, Player* source);
859 uint64 GetExperience() const { return _experience; }
861
862 void AddGuildNews(uint8 type, uint64 guid, uint32 flags, uint32 value);
863
864 EmblemInfo const& GetEmblemInfo() const { return m_emblemInfo; }
865 void ResetTimes(bool weekly);
866
867 bool HasAchieved(uint32 achievementId) const;
868 void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, Unit* unit, Player* player);
869
870protected:
872 std::string m_name;
874 std::string m_motd;
875 std::string m_info;
877
881
885
886 // These are actually ordered lists. The first element is the oldest entry.
891
895
896private:
897 inline uint8 _GetRanksSize() const { return uint8(m_ranks.size()); }
898 inline const RankInfo* GetRankInfo(uint8 rankId) const { return rankId < _GetRanksSize() ? &m_ranks[rankId] : NULL; }
899 inline RankInfo* GetRankInfo(uint8 rankId) { return rankId < _GetRanksSize() ? &m_ranks[rankId] : NULL; }
900 inline bool _HasRankRight(Player const* player, uint32 right) const
901 {
902 if (player)
903 if (Member const* member = GetMember(player->GetGUID()))
904 return (_GetRankRights(member->GetRankId()) & right) != GR_RIGHT_EMPTY;
905 return false;
906 }
907
908 inline uint8 _GetLowestRankId() const { return uint8(m_ranks.size() - 1); }
909
910 inline uint8 _GetPurchasedTabsSize() const { return uint8(m_bankTabs.size()); }
911 inline BankTab* GetBankTab(uint8 tabId) { return tabId < m_bankTabs.size() ? m_bankTabs[tabId] : NULL; }
912 inline const BankTab* GetBankTab(uint8 tabId) const { return tabId < m_bankTabs.size() ? m_bankTabs[tabId] : NULL; }
913
914 inline const Member* GetMember(uint64 guid) const
915 {
916 Members::const_iterator itr = m_members.find(GUID_LOPART(guid));
917 return itr != m_members.end() ? itr->second : NULL;
918 }
919
920 inline Member* GetMember(uint64 guid)
921 {
922 Members::iterator itr = m_members.find(GUID_LOPART(guid));
923 return itr != m_members.end() ? itr->second : NULL;
924 }
925
926 inline Member* GetMember(std::string const& name)
927 {
928 for (Members::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
929 if (itr->second->GetName() == name)
930 return itr->second;
931
932 return NULL;
933 }
934
935 inline void _DeleteMemberFromDB(uint32 lowguid) const
936 {
937 PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_MEMBER);
938 stmt->setUInt32(0, lowguid);
939 CharacterDatabase.Execute(stmt);
940 }
941
942 // Creates log holders (either when loading or when creating guild)
943 void _CreateLogHolders();
944 // Tries to create new bank tab
945 void _CreateNewBankTab();
946 // Creates default guild ranks with names in given locale
948 // Creates new rank
949 bool _CreateRank(std::string const& name, uint32 rights);
950 // Update account number when member added/removed from guild
952 bool _IsLeader(Player* player) const;
953 void _DeleteBankItems(SQLTransaction& trans, bool removeItemsFromDB = false);
954 bool _ModifyBankMoney(SQLTransaction& trans, uint64 amount, bool add);
955 void _SetLeaderGUID(Member* pLeader);
956
957 void _SetRankBankMoneyPerDay(uint8 rankId, uint32 moneyPerDay);
958 void _SetRankBankTabRightsAndSlots(uint8 rankId, GuildBankRightsAndSlots rightsAndSlots, bool saveToDB = true);
959 int8 _GetRankBankTabRights(uint8 rankId, uint8 tabId) const;
960 uint32 _GetRankRights(uint8 rankId) const;
961 int32 _GetRankBankMoneyPerDay(uint8 rankId) const;
962 int32 _GetRankBankTabSlotsPerDay(uint8 rankId, uint8 tabId) const;
963 std::string _GetRankName(uint8 rankId) const;
964
965 int32 _GetMemberRemainingSlots(Member const* member, uint8 tabId) const;
966 int32 _GetMemberRemainingMoney(Member const* member) const;
967 void _UpdateMemberWithdrawSlots(SQLTransaction& trans, uint64 guid, uint8 tabId);
968 bool _MemberHasTabRights(uint64 guid, uint8 tabId, uint32 rights) const;
969
970 void _LogEvent(GuildEventLogTypes eventType, uint32 playerGuid1, uint32 playerGuid2 = 0, uint8 newRank = 0);
971 void _LogBankEvent(SQLTransaction& trans, GuildBankEventLogTypes eventType, uint8 tabId, uint32 playerGuid, uint32 itemOrMoney, uint16 itemStackCount = 0, uint8 destTabId = 0);
972
973 Item* _GetItem(uint8 tabId, uint8 slotId) const;
974 void _RemoveItem(SQLTransaction& trans, uint8 tabId, uint8 slotId);
975 void _MoveItems(MoveItemData* pSrc, MoveItemData* pDest, uint32 splitedAmount);
976 bool _DoItemsMove(MoveItemData* pSrc, MoveItemData* pDest, bool sendError, uint32 splitedAmount = 0);
977
978 void _SendBankContentUpdate(MoveItemData* pSrc, MoveItemData* pDest) const;
979 void _SendBankContentUpdate(uint8 tabId, SlotIds slots) const;
980 void SendGuildReputationWeeklyCap(WorldSession* session, uint32 reputation) const;
981 void SendGuildRanksUpdate(uint64 setterGuid, uint64 targetGuid, uint32 rank);
982 void _SendSetNewGuildMaster(Member const* guildMaster, Member const* newGuildMaster, bool replace) const;
983 void _SendRemovePlayerFromGuild(ObjectGuid removedGuid, std::string const& removedName, Player const* remover) const;
984
985 void _BroadcastEvent(GuildEvents guildEvent, uint64 guid, const char* param1 = NULL, const char* param2 = NULL, const char* param3 = NULL) const;
986};
987#endif
@ CHAR_DEL_GUILD_MEMBER
LocaleConstant
Definition Common.h:138
AchievementCriteriaTypes
Definition DBCEnums.h:170
@ MAX_CONTENT
Definition DBCStores.h:43
std::int32_t int32
Definition Define.h:73
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
std::int8_t int8
Definition Define.h:75
std::uint64_t uint64
Definition Define.h:76
std::uint16_t uint16
Definition Define.h:78
GuildEvents
Definition Guild.h:135
@ GE_LEFT
Definition Guild.h:140
@ GE_FOUNDER
Definition Guild.h:150
@ GE_LEADER_IS
Definition Guild.h:142
@ GE_RANK_CREATED
Definition Guild.h:147
@ GE_TABARDCHANGE
Definition Guild.h:145
@ GE_REMOVED
Definition Guild.h:141
@ GE_JOINED
Definition Guild.h:139
@ GE_RANK_DELETED
Definition Guild.h:148
@ GE_GUILDBANKBAGSLOTS_CHANGED
Definition Guild.h:153
@ GE_PROMOTION
Definition Guild.h:136
@ GE_BANK_TAB_UPDATED
Definition Guild.h:155
@ GE_BANK_MONEY_SET
Definition Guild.h:156
@ GE_DISBANDED
Definition Guild.h:144
@ GE_BANK_TEXT_CHANGED
Definition Guild.h:158
@ GE_SIGNED_OFF
Definition Guild.h:152
@ GE_MOTD
Definition Guild.h:138
@ GE_SIGNED_ON_MOBILE
Definition Guild.h:160
@ GE_SIGNED_Off_MOBILE
Definition Guild.h:161
@ GE_BANK_TAB_PURCHASED
Definition Guild.h:154
@ GE_RANK_ORDER_CHANGED
Definition Guild.h:149
@ GE_LEADER_CHANGED
Definition Guild.h:143
@ GE_SIGNED_ON
Definition Guild.h:151
@ GE_DEMOTION
Definition Guild.h:137
@ GE_RANK_UPDATED
Definition Guild.h:146
@ GE_BANK_MONEY_CHANGED
Definition Guild.h:157
GuildMisc
Definition Guild.h:20
@ GUILD_EXPERIENCE_UNCAPPED_LEVEL
Definition Guild.h:30
@ GUILD_RANKS_MIN_COUNT
Definition Guild.h:24
@ GUILD_EVENT_LOG_GUID_UNDEFINED
Definition Guild.h:29
@ GUILD_WITHDRAW_SLOT_UNLIMITED
Definition Guild.h:28
@ TAB_UNDEFINED
Definition Guild.h:31
@ GUILD_BANK_MONEY_LOGS_TAB
Definition Guild.h:23
@ GUILD_WITHDRAW_MONEY_UNLIMITED
Definition Guild.h:27
@ GUILD_BANK_MAX_SLOTS
Definition Guild.h:22
@ GUILD_RANKS_MAX_COUNT
Definition Guild.h:25
@ GUILD_BANK_MAX_TABS
Definition Guild.h:21
@ GUILD_RANK_NONE
Definition Guild.h:26
const uint32 GuildChallengeMaxLevelGoldReward[]
Definition Guild.h:263
uint32 const MinNewsItemLevel[MAX_CONTENT]
Definition Guild.h:258
GuildMemberFlags
Definition Guild.h:230
@ GUILDMEMBER_STATUS_AFK
Definition Guild.h:233
@ GUILDMEMBER_STATUS_NONE
Definition Guild.h:231
@ GUILDMEMBER_STATUS_MOBILE
Definition Guild.h:235
@ GUILDMEMBER_STATUS_ONLINE
Definition Guild.h:232
@ GUILDMEMBER_STATUS_DND
Definition Guild.h:234
GuildBankRights
Definition Guild.h:186
@ GUILD_BANK_RIGHT_PUT_ITEM
Definition Guild.h:188
@ GUILD_BANK_RIGHT_VIEW_TAB
Definition Guild.h:187
@ GUILD_BANK_RIGHT_FULL
Definition Guild.h:192
@ GUILD_BANK_RIGHT_DEPOSIT_ITEM
Definition Guild.h:191
@ GUILD_BANK_RIGHT_UPDATE_TEXT
Definition Guild.h:189
std::set< uint8 > SlotIds
Definition Guild.h:321
GuildCommandType
Definition Guild.h:79
@ GUILD_COMMAND_GUILD_CHAT
Definition Guild.h:89
@ GUILD_COMMAND_CHANGE_LEADER
Definition Guild.h:87
@ GUILD_COMMAND_FOUNDER
Definition Guild.h:90
@ GUILD_COMMAND_INVITE
Definition Guild.h:81
@ GUILD_COMMAND_REPAIR
Definition Guild.h:95
@ GUILD_COMMAND_VIEW_TAB
Definition Guild.h:93
@ GUILD_COMMAND_MOVE_ITEM
Definition Guild.h:94
@ GUILD_COMMAND_QUIT
Definition Guild.h:82
@ GUILD_COMMAND_CREATE
Definition Guild.h:80
@ GUILD_COMMAND_PROMOTE
Definition Guild.h:84
@ GUILD_COMMAND_DEMOTE
Definition Guild.h:85
@ GUILD_COMMAND_PUBLIC_NOTE
Definition Guild.h:92
@ GUILD_COMMAND_CHANGE_RANK
Definition Guild.h:91
@ GUILD_COMMAND_REMOVE
Definition Guild.h:86
@ GUILD_COMMAND_ROSTER
Definition Guild.h:83
@ GUILD_COMMAND_EDIT_MOTD
Definition Guild.h:88
const uint32 GuildChallengeGoldReward[]
Definition Guild.h:262
GuildCommandError
Definition Guild.h:99
@ ERR_GUILD_BANK_WRONG_TAB
Definition Guild.h:125
@ ERR_GUILD_PERMISSIONS
Definition Guild.h:109
@ ERR_GUILD_UNDELETABLE_DUE_TO_LEVEL
Definition Guild.h:129
@ ERR_GUILD_WITHDRAW_LIMIT
Definition Guild.h:120
@ ERR_ALREADY_IN_GUILD_S
Definition Guild.h:103
@ ERR_GUILD_PLAYER_NOT_IN_GUILD
Definition Guild.h:110
@ ERR_GUILD_PLAYER_NOT_IN_GUILD_S
Definition Guild.h:111
@ ERR_GUILD_RANK_IN_USE
Definition Guild.h:117
@ ERR_GUILD_LEADER_LEAVE
Definition Guild.h:108
@ ERR_GUILD_TOO_MUCH_MONEY
Definition Guild.h:124
@ ERR_GUILD_COMMAND_SUCCESS
Definition Guild.h:100
@ ERR_GUILD_TRIAL_ACCOUNT
Definition Guild.h:128
@ ERR_GUILD_MOVE_STARTING
Definition Guild.h:130
@ ERR_INVITED_TO_GUILD
Definition Guild.h:104
@ ERR_GUILD_RANKS_LOCKED
Definition Guild.h:116
@ ERR_RANK_REQUIRES_AUTHENTICATOR
Definition Guild.h:126
@ ERR_GUILD_NOT_ALLIED
Definition Guild.h:113
@ ERR_GUILD_NOT_ENOUGH_MONEY
Definition Guild.h:121
@ ERR_GUILD_INTERNAL
Definition Guild.h:101
@ ERR_GUILD_BANK_FULL
Definition Guild.h:122
@ ERR_GUILD_PLAYER_NOT_FOUND_S
Definition Guild.h:112
@ ERR_GUILD_RANK_TOO_LOW_S
Definition Guild.h:115
@ ERR_GUILD_REP_TOO_LOW
Definition Guild.h:131
@ ERR_GUILD_IGNORING_YOU_S
Definition Guild.h:118
@ ERR_GUILD_NAME_EXISTS_S
Definition Guild.h:107
@ ERR_ALREADY_IN_GUILD
Definition Guild.h:102
@ ERR_GUILD_RANK_TOO_HIGH_S
Definition Guild.h:114
@ ERR_ALREADY_INVITED_TO_GUILD_S
Definition Guild.h:105
@ ERR_GUILD_NAME_INVALID
Definition Guild.h:106
@ ERR_GUILD_ITEM_NOT_FOUND
Definition Guild.h:123
@ ERR_GUILD_UNK1
Definition Guild.h:119
@ ERR_GUILD_BANK_VOUCHER_FAILED
Definition Guild.h:127
PetitionSigns
Definition Guild.h:174
@ PETITION_SIGN_ALREADY_SIGNED
Definition Guild.h:176
@ PETITION_SIGN_ALREADY_IN_GUILD
Definition Guild.h:177
@ PETITION_SIGN_CANT_SIGN_OWN
Definition Guild.h:178
@ PETITION_SIGN_RESTRICTED_ACCOUNT
Definition Guild.h:182
@ PETITION_SIGN_OK
Definition Guild.h:175
@ PETITION_SIGN_FULL
Definition Guild.h:180
@ PETITION_SIGN_ALREADY_SIGNED_OTHER
Definition Guild.h:181
@ PETITION_SIGN_NOT_SERVER
Definition Guild.h:179
const uint32 GuildChallengeWeeklyMaximum[]
Definition Guild.h:261
GuildDefaultRanks
Definition Guild.h:42
@ GR_MEMBER
Definition Guild.h:47
@ GR_GUILDMASTER
Definition Guild.h:44
@ GR_INITIATE
Definition Guild.h:48
@ GR_OFFICER
Definition Guild.h:45
@ GR_VETERAN
Definition Guild.h:46
PetitionTurns
Definition Guild.h:165
@ PETITION_TURN_NEED_MORE_SIGNATURES
Definition Guild.h:168
@ PETITION_TURN_ALREADY_IN_GUILD
Definition Guild.h:167
@ PETITION_TURN_GUILD_NAME_INVALID
Definition Guild.h:170
@ PETITION_TURN_GUILD_PERMISSIONS
Definition Guild.h:169
@ PETITION_TURN_OK
Definition Guild.h:166
GuildNews
Definition Guild.h:239
@ GUILD_NEWS_LEVEL_UP
Definition Guild.h:246
@ GUILD_NEWS_ITEM_CRAFTED
Definition Guild.h:244
@ GUILD_NEWS_ITEM_LOOTED
Definition Guild.h:243
@ GUILD_NEWS_GUILD_ACHIEVEMENT
Definition Guild.h:240
@ GUILD_NEWS_ITEM_PURCHASED
Definition Guild.h:245
@ GUILD_NEWS_DUNGEON_ENCOUNTER
Definition Guild.h:242
@ GUILD_NEWS_PLAYER_ACHIEVEMENT
Definition Guild.h:241
GuildBankEventLogTypes
Definition Guild.h:196
@ GUILD_BANK_LOG_MOVE_ITEM
Definition Guild.h:199
@ GUILD_BANK_LOG_WITHDRAW_ITEM
Definition Guild.h:198
@ GUILD_BANK_LOG_DEPOSIT_MONEY
Definition Guild.h:200
@ GUILD_BANK_LOG_DEPOSIT_ITEM
Definition Guild.h:197
@ GUILD_BANK_LOG_WITHDRAW_MONEY
Definition Guild.h:201
@ GUILD_BANK_LOG_UNK1
Definition Guild.h:204
@ GUILD_BANK_LOG_CASH_FLOW_DEPOSIT
Definition Guild.h:206
@ GUILD_BANK_LOG_REPAIR_MONEY
Definition Guild.h:202
@ GUILD_BANK_LOG_MOVE_ITEM2
Definition Guild.h:203
@ GUILD_BANK_LOG_BUY_SLOT
Definition Guild.h:205
const uint32 GuildChallengeXPReward[]
Definition Guild.h:264
GuildRankRights
Definition Guild.h:54
@ GR_RIGHT_EMPTY
Definition Guild.h:55
@ GR_RIGHT_EOFFNOTE
Definition Guild.h:67
@ GR_RIGHT_REQUIRES_AUTHENTICATOR
Definition Guild.h:73
@ GR_RIGHT_GCHATSPEAK
Definition Guild.h:57
@ GR_RIGHT_OFFCHATSPEAK
Definition Guild.h:59
@ GR_RIGHT_WITHDRAW_GOLD_LOCK
Definition Guild.h:69
@ GR_RIGHT_ALL
Definition Guild.h:75
@ GR_RIGHT_MODIFY_BANK_TAB
Definition Guild.h:74
@ GR_RIGHT_EPNOTE
Definition Guild.h:65
@ GR_RIGHT_OFFCHATLISTEN
Definition Guild.h:58
@ GR_RIGHT_GCHATLISTEN
Definition Guild.h:56
@ GR_RIGHT_CREATE_GUILD_EVENT
Definition Guild.h:72
@ GR_RIGHT_SETMOTD
Definition Guild.h:64
@ GR_RIGHT_MODIFY_GUILD_INFO
Definition Guild.h:68
@ GR_RIGHT_VIEWOFFNOTE
Definition Guild.h:66
@ GR_RIGHT_WITHDRAW_REPAIR
Definition Guild.h:70
@ GR_RIGHT_REMOVE
Definition Guild.h:61
@ GR_RIGHT_WITHDRAW_GOLD
Definition Guild.h:71
@ GR_RIGHT_INVITE
Definition Guild.h:60
@ GR_RIGHT_DEMOTE
Definition Guild.h:63
@ GR_RIGHT_PROMOTE
Definition Guild.h:62
std::vector< GuildBankRightsAndSlots > GuildBankRightsAndSlotsVec
Definition Guild.h:319
GuildMemberData
Definition Guild.h:35
@ GUILD_MEMBER_DATA_LEVEL
Definition Guild.h:38
@ GUILD_MEMBER_DATA_ACHIEVEMENT_POINTS
Definition Guild.h:37
@ GUILD_MEMBER_DATA_ZONEID
Definition Guild.h:36
GuildEmblemError
Definition Guild.h:220
@ ERR_GUILDEMBLEM_NOTGUILDMASTER
Definition Guild.h:224
@ ERR_GUILDEMBLEM_INVALIDVENDOR
Definition Guild.h:226
@ ERR_GUILDEMBLEM_INVALID_TABARD_COLORS
Definition Guild.h:222
@ ERR_GUILDEMBLEM_NOTENOUGHMONEY
Definition Guild.h:225
@ ERR_GUILDEMBLEM_SUCCESS
Definition Guild.h:221
@ ERR_GUILDEMBLEM_NOGUILD
Definition Guild.h:223
GuildEventLogTypes
Definition Guild.h:210
@ GUILD_EVENT_LOG_LEAVE_GUILD
Definition Guild.h:216
@ GUILD_EVENT_LOG_PROMOTE_PLAYER
Definition Guild.h:213
@ GUILD_EVENT_LOG_UNINVITE_PLAYER
Definition Guild.h:215
@ GUILD_EVENT_LOG_INVITE_PLAYER
Definition Guild.h:211
@ GUILD_EVENT_LOG_DEMOTE_PLAYER
Definition Guild.h:214
@ GUILD_EVENT_LOG_JOIN_GUILD
Definition Guild.h:212
InventoryResult
Definition Item.h:27
uint32 GUID_LOPART(uint64 x)
@ HIGHGUID_GUILD
@ HIGHGUID_PLAYER
uint64 MAKE_NEW_GUID(uint32 l, uint32 e, uint32 h)
std::vector< ItemPosCount > ItemPosCountVec
Definition Player.h:777
Language
Skyfire::AutoPtr< Transaction, Skyfire::Mutex > SQLTransaction
Definition Transaction.h:42
#define UNORDERED_MAP
uint32 m_style
Definition Guild.h:284
uint32 m_backgroundColor
Definition Guild.h:288
uint32 GetStyle() const
Definition Guild.h:277
uint32 GetColor() const
Definition Guild.h:278
void LoadFromDB(Field *fields)
Definition Guild.cpp:781
uint32 m_borderColor
Definition Guild.h:287
uint32 GetBackgroundColor() const
Definition Guild.h:281
void ReadPacket(WorldPacket &recv)
Definition Guild.cpp:776
uint32 GetBorderStyle() const
Definition Guild.h:279
EmblemInfo()
Definition Guild.h:270
uint32 m_borderStyle
Definition Guild.h:286
uint32 GetBorderColor() const
Definition Guild.h:280
void WritePacket(WorldPacket &data) const
Definition Guild.cpp:790
uint32 m_color
Definition Guild.h:285
void SaveToDB(uint32 guildId) const
Definition Guild.cpp:799
Definition Field.h:16
uint64 m_itemOrMoney
Definition Guild.h:500
GuildBankEventLogTypes m_eventType
Definition Guild.h:497
BankEventLogEntry(uint32 guildId, uint32 guid, time_t timestamp, uint8 tabId, GuildBankEventLogTypes eventType, uint32 playerGuid, uint64 itemOrMoney, uint16 itemStackCount, uint8 destTabId)
Definition Guild.h:487
BankEventLogEntry(uint32 guildId, uint32 guid, GuildBankEventLogTypes eventType, uint8 tabId, uint32 playerGuid, uint64 itemOrMoney, uint16 itemStackCount, uint8 destTabId)
Definition Guild.h:483
void WritePacket(WorldPacket &data, ByteBuffer &content) const
Definition Guild.cpp:249
static bool IsMoneyEvent(GuildBankEventLogTypes eventType)
Definition Guild.h:472
uint8 m_destTabId
Definition Guild.h:502
uint32 m_playerGuid
Definition Guild.h:499
uint8 m_bankTabId
Definition Guild.h:498
bool IsMoneyEvent() const
Definition Guild.h:478
~BankEventLogEntry()
Definition Guild.h:491
uint16 m_itemStackCount
Definition Guild.h:501
void LogAction(MoveItemData *pFrom) const
Definition Guild.cpp:1001
bool _ReserveSpace(uint8 slotId, Item *pItem, Item *pItemDest, uint32 &count)
Definition Guild.cpp:1047
Item * StoreItem(SQLTransaction &trans, Item *pItem)
Definition Guild.cpp:966
bool HasStoreRights(MoveItemData *pOther) const
Definition Guild.cpp:924
void CanStoreItemInTab(Item *pItem, uint8 skipSlotId, bool merge, uint32 &count)
Definition Guild.cpp:1070
void LogBankEvent(SQLTransaction &trans, MoveItemData *pFrom, uint32 count) const
Definition Guild.cpp:988
BankMoveItemData(Guild *guild, Player *player, uint8 container, uint8 slotId)
Definition Guild.h:719
Item * _StoreItem(SQLTransaction &trans, BankTab *pTab, Item *pItem, ItemPosCount &pos, bool clone) const
Definition Guild.cpp:1014
InventoryResult CanStore(Item *pItem, bool swap)
Definition Guild.cpp:1090
bool HasWithdrawRights(MoveItemData *pOther) const
Definition Guild.cpp:933
bool IsBank() const
Definition Guild.h:722
void RemoveItem(SQLTransaction &trans, MoveItemData *pOther, uint32 splitedAmount)
Definition Guild.cpp:947
void LoadFromDB(Field *fields)
Definition Guild.cpp:463
std::string const & GetName() const
Definition Guild.h:636
Item * m_items[GUILD_BANK_MAX_SLOTS]
Definition Guild.h:647
std::string const & GetIcon() const
Definition Guild.h:637
std::string m_icon
Definition Guild.h:649
void Delete(SQLTransaction &trans, bool removeItemsFromDB=false)
Definition Guild.cpp:509
BankTab(uint32 guildId, uint8 tabId)
Definition Guild.h:615
void SetInfo(std::string const &name, std::string const &icon)
Definition Guild.cpp:522
std::string m_name
Definition Guild.h:648
Item * GetItem(uint8 slotId) const
Definition Guild.h:640
void WriteInfoPacket(WorldPacket &data) const
Definition Guild.h:626
bool LoadItemFromDB(Field *fields)
Definition Guild.cpp:470
bool SetItem(SQLTransaction &trans, uint8 slotId, Item *item)
Definition Guild.cpp:555
uint8 m_tabId
Definition Guild.h:645
uint32 m_guildId
Definition Guild.h:644
bool WriteSlotPacket(WorldPacket &data, uint8 slotId, bool ignoreEmpty=true) const
std::string const & GetText() const
Definition Guild.h:638
void SetText(std::string const &text)
Definition Guild.cpp:538
void SendText(Guild const *guild, WorldSession *session) const
Definition Guild.cpp:585
void WritePacket(WorldPacket &data) const
std::string m_text
Definition Guild.h:650
GuildEventLogTypes m_eventType
Definition Guild.h:462
EventLogEntry(uint32 guildId, uint32 guid, GuildEventLogTypes eventType, uint32 playerGuid1, uint32 playerGuid2, uint8 newRank)
Definition Guild.h:450
EventLogEntry(uint32 guildId, uint32 guid, time_t timestamp, GuildEventLogTypes eventType, uint32 playerGuid1, uint32 playerGuid2, uint8 newRank)
Definition Guild.h:453
~EventLogEntry()
Definition Guild.h:456
void WritePacket(WorldPacket &data, ByteBuffer &content) const
Definition Guild.cpp:187
uint8 m_newRank
Definition Guild.h:465
uint32 m_playerGuid1
Definition Guild.h:463
uint32 m_playerGuid2
Definition Guild.h:464
Definition Guild.h:428
virtual void WritePacket(WorldPacket &data, ByteBuffer &content) const =0
LogEntry(uint32 guildId, uint32 guid)
Definition Guild.h:430
uint32 GetGUID() const
Definition Guild.h:434
virtual ~LogEntry()
Definition Guild.h:432
LogEntry(uint32 guildId, uint32 guid, time_t timestamp)
Definition Guild.h:431
uint64 GetTimestamp() const
Definition Guild.h:435
uint32 m_guildId
Definition Guild.h:441
uint32 m_guid
Definition Guild.h:442
uint64 m_timestamp
Definition Guild.h:443
virtual void SaveToDB(SQLTransaction &trans) const =0
bool CanInsert() const
Definition Guild.h:550
GuildLog * GetGuildLog()
Definition Guild.h:558
void WritePacket(WorldPacket &data) const
Definition Guild.cpp:145
uint8 GetSize() const
Definition Guild.h:548
uint32 m_maxRecords
Definition Guild.h:562
uint32 m_nextGUID
Definition Guild.h:563
void AddEvent(SQLTransaction &trans, LogEntry *entry)
Definition Guild.cpp:129
GuildLog m_log
Definition Guild.h:561
void LoadEvent(LogEntry *entry)
Definition Guild.cpp:120
uint32 GetNextGUID()
Definition Guild.cpp:156
LogHolder(uint32 maxRecords)
Definition Guild.h:545
std::string GetOfficerNote() const
Definition Guild.h:375
std::string const & GetName() const
Definition Guild.h:370
uint64 GetGUID() const
Definition Guild.h:368
uint32 GetVirtualRealm() const
Definition Guild.h:369
uint32 m_guildId
Definition Guild.h:402
void RemFlag(uint8 var)
Definition Guild.h:362
bool IsRankNotLower(uint8 rankId) const
Definition Guild.h:392
bool IsRank(uint8 rankId) const
Definition Guild.h:391
void SetZoneId(uint32 id)
Definition Guild.h:355
uint32 m_weekReputation
Definition Guild.h:423
bool IsSamePlayer(uint64 guid) const
Definition Guild.h:393
void UpdateLogoutTime()
Definition Guild.h:390
void ChangeRank(uint8 newRank)
Definition Guild.cpp:656
uint8 GetClass() const
Definition Guild.h:376
uint32 GetTotalReputation() const
Definition Guild.h:383
uint8 GetFlags() const
Definition Guild.h:378
std::string m_name
Definition Guild.h:406
uint32 GetAccountId() const
Definition Guild.h:371
int32 GetBankWithdrawValue(uint8 tabId) const
Definition Guild.cpp:766
std::string GetPublicNote() const
Definition Guild.h:374
uint32 m_memberVRealm
Definition Guild.h:405
void SetOfficerNote(std::string const &officerNote)
Definition Guild.cpp:643
uint64 m_logoutTime
Definition Guild.h:411
uint8 m_class
Definition Guild.h:409
uint8 GetLevel() const
Definition Guild.h:377
uint32 m_achievementPoints
Definition Guild.h:419
uint64 GetWeekActivity() const
Definition Guild.h:382
bool LoadFromDB(Field *fields)
Definition Guild.cpp:684
uint64 m_weekActivity
Definition Guild.h:421
bool CheckStats() const
Definition Guild.cpp:717
int32 m_bankWithdraw[GUILD_BANK_MAX_TABS+1]
Definition Guild.h:418
uint64 GetTotalActivity() const
Definition Guild.h:381
void SetPublicNote(std::string const &publicNote)
Definition Guild.cpp:630
void AddFlag(uint8 var)
Definition Guild.h:361
uint32 m_totalReputation
Definition Guild.h:422
void SetLevel(uint8 var)
Definition Guild.h:357
uint64 m_totalActivity
Definition Guild.h:420
uint32 GetZoneId() const
Definition Guild.h:379
void AddActivity(uint64 activity)
void ResetFlags()
Definition Guild.h:363
void SetAchievementPoints(uint32 val)
Definition Guild.h:356
uint32 m_zoneId
Definition Guild.h:407
uint8 m_rankId
Definition Guild.h:414
uint8 GetRankId() const
Definition Guild.h:372
uint32 m_accountId
Definition Guild.h:412
uint8 m_level
Definition Guild.h:408
std::string m_officerNote
Definition Guild.h:416
std::string m_publicNote
Definition Guild.h:415
uint32 GetWeekReputation() const
Definition Guild.h:384
uint32 GetAchievementPoints() const
Definition Guild.h:380
bool IsOnline() const
Definition Guild.h:386
void ResetValues(bool weekly=false)
Definition Guild.cpp:751
void AddReputation(uint32 &reputation)
uint8 m_flags
Definition Guild.h:410
Player * FindPlayer() const
Definition Guild.h:399
uint64 m_guid
Definition Guild.h:404
uint64 GetLogoutTime() const
Definition Guild.h:373
void SetStats(Player *player)
Definition Guild.cpp:608
void UpdateBankWithdrawValue(SQLTransaction &trans, uint8 tabId, uint32 amount)
Definition Guild.cpp:736
Member(uint32 guildId, uint64 guid, uint8 rankId)
Definition Guild.h:330
Item * m_pClonedItem
Definition Guild.h:697
MoveItemData(Guild *guild, Player *player, uint8 container, uint8 slotId)
Definition Guild.h:657
ItemPosCountVec m_vec
Definition Guild.h:698
Player * m_pPlayer
Definition Guild.h:693
virtual ~MoveItemData()
Definition Guild.h:659
virtual void LogAction(MoveItemData *pFrom) const
Definition Guild.cpp:843
virtual void RemoveItem(SQLTransaction &trans, MoveItemData *pOther, uint32 splitedAmount=0)=0
virtual InventoryResult CanStore(Item *pItem, bool swap)=0
Item * GetItem(bool isCloned=false) const
Definition Guild.h:685
Guild * m_pGuild
Definition Guild.h:692
uint8 GetSlotId() const
Definition Guild.h:687
uint8 GetContainer() const
Definition Guild.h:686
virtual bool CheckItem(uint32 &splitedAmount)
Definition Guild.cpp:812
virtual void LogBankEvent(SQLTransaction &trans, MoveItemData *pFrom, uint32 count) const =0
virtual bool HasWithdrawRights(MoveItemData *) const
Definition Guild.h:669
virtual bool HasStoreRights(MoveItemData *) const
Definition Guild.h:667
void CopySlots(SlotIds &ids) const
Definition Guild.cpp:852
virtual Item * StoreItem(SQLTransaction &trans, Item *pItem)=0
virtual bool IsBank() const =0
bool CloneItem(uint32 count)
Definition Guild.cpp:831
virtual bool InitItem()=0
bool CanStore(Item *pItem, bool swap, bool sendError)
Definition Guild.cpp:822
uint32 m_value
Definition Guild.h:536
NewsLogEntry(uint32 guildId, uint32 guid, time_t timestamp, GuildNews type, uint32 playerGuid, uint32 flags, uint32 value)
Definition Guild.h:512
uint32 m_flags
Definition Guild.h:535
uint32 GetFlags() const
Definition Guild.h:520
uint64 GetPlayerGuid() const
Definition Guild.h:518
uint32 m_playerGuid
Definition Guild.h:534
GuildNews GetType() const
Definition Guild.h:517
NewsLogEntry(uint32 guildId, uint32 guid, GuildNews type, uint32 playerGuid, uint32 flags, uint32 value)
Definition Guild.h:509
GuildNews m_type
Definition Guild.h:533
void WritePacket(WorldPacket &data, ByteBuffer &content) const
Definition Guild.cpp:315
~NewsLogEntry()
Definition Guild.h:515
void SetSticky(bool sticky)
Definition Guild.h:521
uint32 GetValue() const
Definition Guild.h:519
void RemoveItem(SQLTransaction &trans, MoveItemData *pOther, uint32 splitedAmount=0)
Definition Guild.cpp:880
InventoryResult CanStore(Item *pItem, bool swap)
Definition Guild.cpp:912
PlayerMoveItemData(Guild *guild, Player *player, uint8 container, uint8 slotId)
Definition Guild.h:704
bool IsBank() const
Definition Guild.h:707
Item * StoreItem(SQLTransaction &trans, Item *pItem)
Definition Guild.cpp:896
void LogBankEvent(SQLTransaction &trans, MoveItemData *pFrom, uint32 count) const
Definition Guild.cpp:904
RankInfo(uint32 guildId)
Definition Guild.h:571
uint32 m_rights
Definition Guild.h:607
uint8 GetId() const
Definition Guild.h:578
void SetBankMoneyPerDay(uint32 money)
Definition Guild.cpp:425
void CreateMissingTabsIfNeeded(uint8 ranks, SQLTransaction &trans, bool logOnCreate=false)
Definition Guild.cpp:369
std::string const & GetName() const
Definition Guild.h:580
RankInfo(uint32 guildId, uint8 rankId, std::string const &name, uint32 rights, uint32 money)
Definition Guild.h:572
uint32 GetRights() const
Definition Guild.h:583
int8 GetBankTabRights(uint8 tabId) const
Definition Guild.h:590
uint32 m_bankMoneyPerDay
Definition Guild.h:608
int32 GetBankTabSlotsPerDay(uint8 tabId) const
Definition Guild.h:595
void SetName(std::string const &name)
Definition Guild.cpp:394
uint32 m_guildId
Definition Guild.h:604
void SetRights(uint32 rights)
Definition Guild.cpp:408
std::string m_name
Definition Guild.h:606
void SetBankTabSlotsAndRights(GuildBankRightsAndSlots rightsAndSlots, bool saveToDB)
Definition Guild.cpp:442
uint8 m_rankId
Definition Guild.h:605
int32 GetBankMoneyPerDay() const
Definition Guild.h:586
GuildBankRightsAndSlots m_bankTabRightsAndSlots[GUILD_BANK_MAX_TABS]
Definition Guild.h:609
void LoadFromDB(Field *fields)
Definition Guild.cpp:348
int32 GetSlots() const
Definition Guild.h:310
void SetGuildMasterValues()
Definition Guild.h:299
int8 GetRights() const
Definition Guild.h:311
int8 GetTabId() const
Definition Guild.h:309
GuildBankRightsAndSlots(uint8 _tabId, uint8 _rights, uint32 _slots)
Definition Guild.h:297
void SetSlots(uint32 _slots)
Definition Guild.h:306
void SetTabId(uint8 _tabId)
Definition Guild.h:305
void SetRights(uint8 _rights)
Definition Guild.h:307
GuildBankRightsAndSlots(uint8 _tabId)
Definition Guild.h:296
std::string _GetRankName(uint8 rankId) const
Definition Guild.cpp:3179
void SendGuildReputationWeeklyCap(WorldSession *session, uint32 reputation) const
Definition Guild.cpp:3756
int8 _GetRankBankTabRights(uint8 rankId, uint8 tabId) const
Definition Guild.cpp:3208
void SwapItemsWithInventory(Player *player, bool toChar, uint8 tabId, uint8 slotId, uint8 playerBag, uint8 playerSlotId, uint32 splitedAmount)
Definition Guild.cpp:3005
LogHolder * m_eventLog
Definition Guild.h:887
void HandleAddNewRank(WorldSession *session, std::string const &name)
Definition Guild.cpp:2170
void HandleRemoveMember(WorldSession *session, uint64 guid)
Definition Guild.cpp:2053
int32 _GetMemberRemainingSlots(Member const *member, uint8 tabId) const
Definition Guild.cpp:3215
void _SetRankBankTabRightsAndSlots(uint8 rankId, GuildBankRightsAndSlots rightsAndSlots, bool saveToDB=true)
Definition Guild.cpp:3170
uint64 m_leaderGuid
Definition Guild.h:873
void _BroadcastEvent(GuildEvents guildEvent, uint64 guid, const char *param1=NULL, const char *param2=NULL, const char *param3=NULL) const
Definition Guild.cpp:3520
bool Create(Player *pLeader, std::string const &name)
Definition Guild.cpp:1178
uint64 m_bankMoney
Definition Guild.h:880
int32 _GetMemberRemainingMoney(Member const *member) const
Definition Guild.cpp:3232
int32 _GetRankBankTabSlotsPerDay(uint8 rankId, uint8 tabId) const
Definition Guild.cpp:3200
void _SetRankBankMoneyPerDay(uint8 rankId, uint32 moneyPerDay)
Definition Guild.cpp:3164
uint32 m_id
Definition Guild.h:871
void HandleSetBankTabNote(WorldSession *session, uint32 tabId, std::string const &note)
Definition Guild.cpp:3835
void LoadBankRightFromDB(Field *fields)
Definition Guild.cpp:2555
bool _CreateRank(std::string const &name, uint32 rights)
Definition Guild.cpp:3078
uint32 _GetRankRights(uint8 rankId) const
Definition Guild.cpp:3186
static void SendCommandResult(WorldSession *session, GuildCommandType type, GuildCommandError errCode, std::string const &param="")
Definition Guild.cpp:87
void SwapItems(Player *player, uint8 tabId, uint8 slotId, uint8 destTabId, uint8 destSlotId, uint32 splitedAmount)
Definition Guild.cpp:2991
void SetBankTabText(uint8 tabId, std::string const &text)
Definition Guild.cpp:3019
~Guild()
Definition Guild.cpp:1153
uint64 GetExperience() const
Definition Guild.h:859
void _SendRemovePlayerFromGuild(ObjectGuid removedGuid, std::string const &removedName, Player const *remover) const
Definition Guild.cpp:1665
Guild()
Definition Guild.cpp:1137
AchievementMgr< Guild > m_achievementMgr
Definition Guild.h:890
bool LoadMemberFromDB(Field *fields)
Definition Guild.cpp:2541
void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, Unit *unit, Player *player)
Definition Guild.cpp:3803
void OnPlayerStatusChange(Player *player, uint32 flag, bool state)
Definition Guild.cpp:1331
void HandleLeaveMember(WorldSession *session)
Definition Guild.cpp:2019
Member * GetMember(std::string const &name)
Definition Guild.h:926
void HandleRemoveRank(WorldSession *session, uint8 rankId)
Definition Guild.cpp:2182
void SendPermissions(WorldSession *session) const
Definition Guild.cpp:2409
void UpdateMemberData(Player *player, uint8 dataid, uint32 value)
Definition Guild.cpp:1308
bool ChangeMemberRank(uint64 guid, uint8 newRank)
Definition Guild.cpp:2973
void HandleQuery(WorldSession *session)
Definition Guild.cpp:1452
uint32 GetMembersCount()
Definition Guild.h:844
bool HasAchieved(uint32 achievementId) const
Definition Guild.cpp:3798
uint32 m_accountsNumber
Definition Guild.h:879
uint8 GetLevel() const
Definition Guild.h:857
void HandleSetInfo(WorldSession *session, std::string const &info)
Definition Guild.cpp:1590
time_t m_createdDate
Definition Guild.h:876
void GiveXP(uint32 xp, Player *source)
Definition Guild.cpp:3688
void BroadcastPacket(WorldPacket *packet) const
Definition Guild.cpp:2766
void SendEventLog(WorldSession *session) const
Definition Guild.cpp:2325
void _DeleteMemberFromDB(uint32 lowguid) const
Definition Guild.h:935
void HandleSetRankInfo(WorldSession *session, uint8 rankId, std::string const &name, uint32 rights, uint32 moneyPerDay, GuildBankRightsAndSlotsVec const &rightsAndSlots)
Definition Guild.cpp:1833
void SendGuildXP(WorldSession *session=NULL) const
Definition Guild.cpp:3744
BankTabs m_bankTabs
Definition Guild.h:884
uint8 _GetPurchasedTabsSize() const
Definition Guild.h:910
bool LoadBankItemFromDB(Field *fields)
Definition Guild.cpp:2644
void SendGuildRanksUpdate(uint64 setterGuid, uint64 targetGuid, uint32 rank)
Definition Guild.cpp:3634
void LoadGuildNewsLogFromDB(Field *fields)
Definition Guild.cpp:2620
bool LoadFromDB(Field *fields)
Definition Guild.cpp:2506
std::vector< BankTab * > BankTabs
Definition Guild.h:742
uint32 GetId() const
Definition Guild.h:757
uint64 GetLeaderGUID() const
Definition Guild.h:759
void SendLoginInfo(WorldSession *session)
Definition Guild.cpp:2449
std::string m_name
Definition Guild.h:872
void SendBankList(WorldSession *session, uint8 tabId, bool withContent, bool withTabInfo) const
Definition Guild.cpp:3544
bool _MemberHasTabRights(uint64 guid, uint8 tabId, uint32 rights) const
Definition Guild.cpp:3261
void SaveToDB()
Definition Guild.cpp:1292
void HandleInviteMember(WorldSession *session, std::string const &name)
Definition Guild.cpp:1893
std::string const & GetName() const
Definition Guild.h:760
uint8 _level
Definition Guild.h:892
int32 _GetRankBankMoneyPerDay(uint8 rankId) const
Definition Guild.cpp:3193
bool HandleMemberWithdrawMoney(WorldSession *session, uint64 amount, bool repair=false)
Definition Guild.cpp:2234
void _CreateNewBankTab()
Definition Guild.cpp:3037
void ResetTimes(bool weekly)
Definition Guild.cpp:3766
LogHolder * m_bankEventLog[GUILD_BANK_MAX_TABS+1]
Definition Guild.h:888
uint64 _experience
Definition Guild.h:893
void _UpdateAccountsNumber()
Definition Guild.cpp:3098
Member * GetMember(uint64 guid)
Definition Guild.h:920
void BroadcastPacketToRank(WorldPacket *packet, uint8 rankId) const
Definition Guild.cpp:2758
RankInfo * GetRankInfo(uint8 rankId)
Definition Guild.h:899
void _LogEvent(GuildEventLogTypes eventType, uint32 playerGuid1, uint32 playerGuid2=0, uint8 newRank=0)
Definition Guild.cpp:3274
void HandleSetNewGuildMaster(WorldSession *session, std::string const &name)
Definition Guild.cpp:1703
const BankTab * GetBankTab(uint8 tabId) const
Definition Guild.h:912
bool LoadEventLogFromDB(Field *fields)
Definition Guild.cpp:2563
UNORDERED_MAP< uint32, Member * > Members
Definition Guild.h:740
void HandleMemberLogout(WorldSession *session)
Definition Guild.cpp:2280
std::string const & GetInfo() const
Definition Guild.h:762
void BroadcastAddonToGuild(WorldSession *session, bool officerOnly, std::string const &msg, std::string const &prefix) const
Definition Guild.cpp:2743
void HandleMemberDepositMoney(WorldSession *session, uint64 amount, bool cashFlow=false)
Definition Guild.cpp:2204
void HandleSetBankTabInfo(WorldSession *session, uint8 tabId, std::string const &name, std::string const &icon)
Definition Guild.cpp:1749
EmblemInfo const & GetEmblemInfo() const
Definition Guild.h:864
void _UpdateMemberWithdrawSlots(SQLTransaction &trans, uint64 guid, uint8 tabId)
Definition Guild.cpp:3250
void SendGuildRankInfo(WorldSession *session) const
Definition Guild.cpp:1534
bool _IsLeader(Player *player) const
Definition Guild.cpp:3111
bool LoadBankEventLogFromDB(Field *fields)
Definition Guild.cpp:2580
void HandleSetMemberNote(WorldSession *session, std::string const &note, uint64 guid, bool isPublic)
Definition Guild.cpp:1780
std::string m_motd
Definition Guild.h:874
Ranks m_ranks
Definition Guild.h:882
void HandleDisband(WorldSession *session)
Definition Guild.cpp:2294
bool AddMember(uint64 guid, uint8 rankId=GUILD_RANK_NONE)
Definition Guild.cpp:2828
static void SendSaveEmblemResult(WorldSession *session, GuildEmblemError errCode)
Definition Guild.cpp:102
std::list< LogEntry * > GuildLog
Definition Guild.h:540
void SendBankTabText(WorldSession *session, uint8 tabId) const
Definition Guild.cpp:2403
uint8 _GetRanksSize() const
Definition Guild.h:897
AchievementMgr< Guild > & GetAchievementMgr()
Definition Guild.h:853
AchievementMgr< Guild > const & GetAchievementMgr() const
Definition Guild.h:854
BankTab * GetBankTab(uint8 tabId)
Definition Guild.h:911
void HandleReplaceGuildMaster(WorldSession *session)
Definition Guild.cpp:1722
void _CreateLogHolders()
Definition Guild.cpp:3029
const Member * GetMember(uint64 guid) const
Definition Guild.h:914
Members m_members
Definition Guild.h:883
const RankInfo * GetRankInfo(uint8 rankId) const
Definition Guild.h:898
void Disband()
Definition Guild.cpp:1239
void SendNewsUpdate(WorldSession *session)
Definition Guild.cpp:2333
uint64 GetGUID() const
Definition Guild.h:758
std::string const & GetMOTD() const
Definition Guild.h:761
void HandleRoster(WorldSession *session=NULL)
Definition Guild.cpp:1366
bool _DoItemsMove(MoveItemData *pSrc, MoveItemData *pDest, bool sendError, uint32 splitedAmount=0)
Definition Guild.cpp:3379
void AddGuildNews(uint8 type, uint64 guid, uint32 flags, uint32 value)
Definition Guild.cpp:3781
void _SendBankContentUpdate(MoveItemData *pSrc, MoveItemData *pDest) const
Definition Guild.cpp:3423
void _SendSetNewGuildMaster(Member const *guildMaster, Member const *newGuildMaster, bool replace) const
Definition Guild.cpp:1629
uint64 _todayExperience
Definition Guild.h:894
void HandleUpdateMemberRank(WorldSession *session, uint64 guid, bool demote)
Definition Guild.cpp:2084
EmblemInfo m_emblemInfo
Definition Guild.h:878
bool SetName(std::string const &name)
Definition Guild.cpp:1341
uint64 GetTodayExperience() const
Definition Guild.h:860
void HandleSetMOTD(WorldSession *session, std::string const &motd)
Definition Guild.cpp:1567
void HandleGuildPartyRequest(WorldSession *session)
Definition Guild.cpp:2305
void HandleNewsSetSticky(WorldSession *session, uint32 newsId, bool sticky)
Definition Guild.cpp:3808
void HandleAcceptMember(WorldSession *session)
Definition Guild.cpp:2009
void MassInviteToEvent(WorldSession *session, uint32 minLevel, uint32 maxLevel, uint32 minRank)
Definition Guild.cpp:2773
std::string m_info
Definition Guild.h:875
Item * _GetItem(uint8 tabId, uint8 slotId) const
Definition Guild.cpp:3305
void DeleteMember(uint64 guid, bool isDisbanding=false, bool isKicked=false, bool canDeleteGuild=false)
Definition Guild.cpp:2908
void SendMoneyInfo(WorldSession *session) const
Definition Guild.cpp:2436
void SendBankLog(WorldSession *session, uint8 tabId) const
Definition Guild.cpp:2386
void _LogBankEvent(SQLTransaction &trans, GuildBankEventLogTypes eventType, uint8 tabId, uint32 playerGuid, uint32 itemOrMoney, uint16 itemStackCount=0, uint8 destTabId=0)
Definition Guild.cpp:3284
void HandleSetMemberRank(WorldSession *session, uint64 guid, uint64 setterGuid, uint32 rank)
Definition Guild.cpp:2137
void HandleSetEmblem(WorldSession *session, const EmblemInfo &emblemInfo)
Definition Guild.cpp:1609
std::vector< RankInfo > Ranks
Definition Guild.h:741
bool _ModifyBankMoney(SQLTransaction &trans, uint64 amount, bool add)
Definition Guild.cpp:3131
void LoadBankTabFromDB(Field *fields)
Definition Guild.cpp:2635
bool IsMember(uint64 guid) const
Definition Guild.cpp:2984
uint8 _GetLowestRankId() const
Definition Guild.h:908
void _MoveItems(MoveItemData *pSrc, MoveItemData *pDest, uint32 splitedAmount)
Definition Guild.cpp:3318
bool Validate()
Definition Guild.cpp:2657
void HandleBuyBankTab(WorldSession *session, uint8 tabId)
Definition Guild.cpp:1855
void _CreateDefaultGuildRanks(LocaleConstant loc)
Definition Guild.cpp:3061
void _DeleteBankItems(SQLTransaction &trans, bool removeItemsFromDB=false)
Definition Guild.cpp:3120
void _RemoveItem(SQLTransaction &trans, uint8 tabId, uint8 slotId)
Definition Guild.cpp:3312
bool _HasRankRight(Player const *player, uint32 right) const
Definition Guild.h:900
LogHolder * m_newsLog
Definition Guild.h:889
void BroadcastToGuild(WorldSession *session, bool officerOnly, std::string const &msg, Language language=Language::LANG_UNIVERSAL) const
Definition Guild.cpp:2729
void BroadcastWorker(Do &_do, Player *except=NULL)
Definition Guild.h:830
void LoadRankFromDB(Field *fields)
Definition Guild.cpp:2532
void _SetLeaderGUID(Member *pLeader)
Definition Guild.cpp:3150
Definition Item.h:202
static Player * FindPlayer(uint64)
uint64 GetGUID() const
Definition Object.h:119
void setUInt32(const uint8 index, const uint32 value)
Definition Unit.h:1367
Player session in the World.
CharacterDatabaseWorkerPool CharacterDatabase
Accessor to the character database.
Definition Main.cpp:41
uint32 Entry
Definition Guild.h:251
uint8 Standing
Definition Guild.h:255
int32 Racemask
Definition Guild.h:252
std::vector< uint32 > Achievements
Definition Guild.h:254
uint64 Price
Definition Guild.h:253