AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
Guild::Member Class Reference

#include "Guild.h"

Public Member Functions

 Member (uint32 guildId, ObjectGuid guid, uint8 rankId)
 
void SetStats (Player *player)
 
void SetStats (std::string_view name, uint8 level, uint8 _class, uint8 gender, uint32 zoneId, uint32 accountId)
 
bool CheckStats () const
 
void SetPublicNote (std::string_view publicNote)
 
void SetOfficerNote (std::string_view officerNote)
 
void SetZoneID (uint32 id)
 
void SetLevel (uint8 var)
 
void AddFlag (uint8 var)
 
void RemFlag (uint8 var)
 
void ResetFlags ()
 
bool LoadFromDB (Field *fields)
 
void SaveToDB (CharacterDatabaseTransaction trans) const
 
ObjectGuid GetGUID () const
 
std::string const & GetName () const
 
uint32 GetAccountId () const
 
uint8 GetRankId () const
 
uint64 GetLogoutTime () const
 
std::string GetPublicNote () const
 
std::string GetOfficerNote () const
 
uint8 GetClass () const
 
uint8 GetLevel () const
 
uint8 GetGender () const
 
uint8 GetFlags () const
 
uint32 GetZoneId () const
 
bool IsOnline ()
 
void ChangeRank (uint8 newRank)
 
void UpdateLogoutTime ()
 
bool IsRank (uint8 rankId) const
 
bool IsRankNotLower (uint8 rankId) const
 
bool IsSamePlayer (ObjectGuid guid) const
 
void UpdateBankWithdrawValue (CharacterDatabaseTransaction trans, uint8 tabId, uint32 amount)
 
int32 GetBankWithdrawValue (uint8 tabId) const
 
void ResetValues ()
 
Player * FindPlayer () const
 
void SubscribeToGuildBankUpdatePackets ()
 
void UnsubscribeFromGuildBankUpdatePackets ()
 
bool ShouldReceiveBankPartialUpdatePackets () const
 

Private Attributes

uint32 m_guildId
 
ObjectGuid m_guid
 
std::string m_name
 
uint32 m_zoneId
 
uint8 m_level
 
uint8 m_class
 
uint8 m_gender
 
uint8 m_flags
 
uint64 m_logoutTime
 
uint32 m_accountId
 
uint8 m_rankId
 
std::string m_publicNote
 
std::string m_officerNote
 
std::array< int32, GUILD_BANK_MAX_TABS+1 > m_bankWithdraw = {}
 
bool receiveGuildBankUpdatePackets
 

Detailed Description

Constructor & Destructor Documentation

◆ Member()

Guild::Member::Member ( uint32  guildId,
ObjectGuid  guid,
uint8  rankId 
)
inline
301 :
302 m_guildId(guildId),
303 m_guid(guid),
304 m_zoneId(0),
305 m_level(0),
306 m_class(0),
308 m_accountId(0),
309 m_rankId(rankId),
311 {
312 }
@ GUILDMEMBER_STATUS_NONE
Definition Guild.h:230
uint32 m_guildId
Definition Guild.h:362
ObjectGuid m_guid
Definition Guild.h:364
uint8 m_class
Definition Guild.h:368
uint32 m_zoneId
Definition Guild.h:366
uint8 m_rankId
Definition Guild.h:374
uint32 m_accountId
Definition Guild.h:372
uint8 m_level
Definition Guild.h:367
bool receiveGuildBankUpdatePackets
Definition Guild.h:380
uint8 m_flags
Definition Guild.h:370

Member Function Documentation

◆ AddFlag()

void Guild::Member::AddFlag ( uint8  var)
inline
323{ m_flags |= var; }

References m_flags.

◆ ChangeRank()

void Guild::Member::ChangeRank ( uint8  newRank)
570{
571 m_rankId = newRank;
572
573 // Update rank information in player's field, if he is online.
574 if (Player* player = FindPlayer())
575 player->SetRank(newRank);
576
578 stmt->SetData (0, newRank);
579 stmt->SetData(1, m_guid.GetCounter());
580 CharacterDatabase.Execute(stmt);
581}
@ CHAR_UPD_GUILD_MEMBER_RANK
Definition CharacterDatabase.h:168
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
Definition DatabaseEnv.cpp:21
Player * FindPlayer() const
Definition Guild.h:355
LowType GetCounter() const
Definition ObjectGuid.h:149
Definition Player.h:1086
Acore::Types::is_default< T > SetData(const uint8 index, T value)
Definition PreparedStatement.h:77
Definition PreparedStatement.h:157

References CHAR_UPD_GUILD_MEMBER_RANK, CharacterDatabase, and PreparedStatementBase::SetData().

Referenced by Guild::_SetLeaderGUID().

◆ CheckStats()

bool Guild::Member::CheckStats ( ) const
632{
633 if (m_level < 1)
634 {
635 LOG_ERROR("guild", "Player ({}) has a broken data in field `characters`.`level`, deleting him from guild!", m_guid.ToString());
636 return false;
637 }
638
639 if (m_class < CLASS_WARRIOR || m_class >= MAX_CLASSES)
640 {
641 LOG_ERROR("guild", "Player ({}) has a broken data in field `characters`.`class`, deleting him from guild!", m_guid.ToString());
642 return false;
643 }
644 return true;
645}
#define LOG_ERROR(filterType__,...)
Definition Log.h:145
#define MAX_CLASSES
Definition SharedDefines.h:140
std::string ToString() const
Definition ObjectGuid.cpp:48

References LOG_ERROR, and MAX_CLASSES.

Referenced by Guild::AddMember().

◆ FindPlayer()

Player * Guild::Member::FindPlayer ( ) const
inline
Player * FindConnectedPlayer(ObjectGuid const guid)
Definition ObjectAccessor.cpp:281

References ObjectAccessor::FindConnectedPlayer(), and m_guid.

Referenced by Guild::DeleteMember().

◆ GetAccountId()

uint32 Guild::Member::GetAccountId ( ) const
inline
332{ return m_accountId; }

References m_accountId.

◆ GetBankWithdrawValue()

int32 Guild::Member::GetBankWithdrawValue ( uint8  tabId) const
675{
676 // Guild master has unlimited amount.
679
680 return m_bankWithdraw[tabId];
681}
@ GUILD_WITHDRAW_SLOT_UNLIMITED
Definition Guild.h:49
@ GUILD_WITHDRAW_MONEY_UNLIMITED
Definition Guild.h:48
@ GUILD_BANK_MAX_TABS
Definition Guild.h:42
@ GR_GUILDMASTER
Definition Guild.h:65
bool IsRank(uint8 rankId) const
Definition Guild.h:347
std::array< int32, GUILD_BANK_MAX_TABS+1 > m_bankWithdraw
Definition Guild.h:378

References GR_GUILDMASTER, GUILD_BANK_MAX_TABS, GUILD_WITHDRAW_MONEY_UNLIMITED, and GUILD_WITHDRAW_SLOT_UNLIMITED.

Referenced by Guild::_GetMemberRemainingMoney(), and Guild::_GetMemberRemainingSlots().

◆ GetClass()

uint8 Guild::Member::GetClass ( ) const
inline
337{ return m_class; }

References m_class.

◆ GetFlags()

uint8 Guild::Member::GetFlags ( ) const
inline
340{ return m_flags; }

References m_flags.

◆ GetGender()

uint8 Guild::Member::GetGender ( ) const
inline
339{ return m_gender; }
uint8 m_gender
Definition Guild.h:369

References m_gender.

◆ GetGUID()

ObjectGuid Guild::Member::GetGUID ( ) const
inline
330{ return m_guid; }

References m_guid.

Referenced by Guild::_SetLeaderGUID().

◆ GetLevel()

uint8 Guild::Member::GetLevel ( ) const
inline
338{ return m_level; }

References m_level.

◆ GetLogoutTime()

uint64 Guild::Member::GetLogoutTime ( ) const
inline
334{ return m_logoutTime; }
uint64 m_logoutTime
Definition Guild.h:371

References m_logoutTime.

◆ GetName()

std::string const & Guild::Member::GetName ( ) const
inline
331{ return m_name; }
std::string m_name
Definition Guild.h:365

References m_name.

Referenced by Guild::DeleteMember().

◆ GetOfficerNote()

std::string Guild::Member::GetOfficerNote ( ) const
inline
336{ return m_officerNote; }
std::string m_officerNote
Definition Guild.h:376

References m_officerNote.

◆ GetPublicNote()

std::string Guild::Member::GetPublicNote ( ) const
inline
335{ return m_publicNote; }
std::string m_publicNote
Definition Guild.h:375

References m_publicNote.

◆ GetRankId()

◆ GetZoneId()

uint32 Guild::Member::GetZoneId ( ) const
inline
341{ return m_zoneId; }

References m_zoneId.

◆ IsOnline()

bool Guild::Member::IsOnline ( )
inline
@ GUILDMEMBER_STATUS_ONLINE
Definition Guild.h:231

References GUILDMEMBER_STATUS_ONLINE, and m_flags.

◆ IsRank()

bool Guild::Member::IsRank ( uint8  rankId) const
inline
347{ return m_rankId == rankId; }

References m_rankId.

Referenced by Guild::Validate().

◆ IsRankNotLower()

bool Guild::Member::IsRankNotLower ( uint8  rankId) const
inline
348{ return m_rankId <= rankId; }

References m_rankId.

Referenced by Guild::HandleRemoveMember().

◆ IsSamePlayer()

bool Guild::Member::IsSamePlayer ( ObjectGuid  guid) const
inline
349{ return m_guid == guid; }

References m_guid.

◆ LoadFromDB()

bool Guild::Member::LoadFromDB ( Field *  fields)
603{
604 m_publicNote = fields[3].Get<std::string>();
605 m_officerNote = fields[4].Get<std::string>();
606
607 for (uint8 i = 0; i <= GUILD_BANK_MAX_TABS; ++i)
608 m_bankWithdraw[i] = fields[5 + i].Get<uint32>();
609
610 SetStats(fields[12].Get<std::string>(),
611 fields[13].Get<uint8>(), // characters.level
612 fields[14].Get<uint8>(), // characters.class
613 fields[15].Get<uint8>(), // characters.gender
614 fields[16].Get<uint16>(), // characters.zone
615 fields[17].Get<uint32>()); // characters.account
616 m_logoutTime = fields[18].Get<uint32>(); // characters.logout_time
617
618 if (!CheckStats())
619 return false;
620
621 if (!m_zoneId)
622 {
623 LOG_ERROR("guild", "Player ({}) has broken zone-data", m_guid.ToString());
625 }
626 ResetFlags();
627 return true;
628}
std::uint8_t uint8
Definition Define.h:109
std::uint32_t uint32
Definition Define.h:107
std::enable_if_t< std::is_arithmetic_v< T >, T > Get() const
Definition Field.h:113
bool CheckStats() const
Definition Guild.cpp:631
void ResetFlags()
Definition Guild.h:325
void SetStats(Player *player)
Definition Guild.cpp:523
static uint32 GetZoneIdFromDB(ObjectGuid guid)
Definition Player.cpp:6505

References Field::Get(), Player::GetZoneIdFromDB(), GUILD_BANK_MAX_TABS, and LOG_ERROR.

Referenced by Guild::LoadMemberFromDB().

◆ RemFlag()

void Guild::Member::RemFlag ( uint8  var)
inline
324{ m_flags &= ~var; }

References m_flags.

◆ ResetFlags()

void Guild::Member::ResetFlags ( )
inline

◆ ResetValues()

void Guild::Member::ResetValues ( )
666{
667 for (uint8 tabId = 0; tabId <= GUILD_BANK_MAX_TABS; ++tabId)
668 m_bankWithdraw[tabId] = 0;
669}

References GUILD_BANK_MAX_TABS.

◆ SaveToDB()

void Guild::Member::SaveToDB ( CharacterDatabaseTransaction  trans) const
589{
591 stmt->SetData(0, m_guildId);
592 stmt->SetData(1, m_guid.GetCounter());
593 stmt->SetData (2, m_rankId);
594 stmt->SetData(3, m_publicNote);
595 stmt->SetData(4, m_officerNote);
596 CharacterDatabase.ExecuteOrAppend(trans, stmt);
597}
@ CHAR_INS_GUILD_MEMBER
Definition CharacterDatabase.h:144

References CHAR_INS_GUILD_MEMBER, CharacterDatabase, and PreparedStatementBase::SetData().

Referenced by Guild::AddMember().

◆ SetLevel()

void Guild::Member::SetLevel ( uint8  var)
inline
321{ m_level = var; }

References m_level.

◆ SetOfficerNote()

void Guild::Member::SetOfficerNote ( std::string_view  officerNote)
557{
558 if (m_officerNote == officerNote)
559 return;
560
561 m_officerNote = officerNote;
562
564 stmt->SetData(0, m_officerNote);
565 stmt->SetData(1, m_guid.GetCounter());
566 CharacterDatabase.Execute(stmt);
567}
@ CHAR_UPD_GUILD_MEMBER_OFFNOTE
Definition CharacterDatabase.h:167

References CHAR_UPD_GUILD_MEMBER_OFFNOTE, CharacterDatabase, and PreparedStatementBase::SetData().

◆ SetPublicNote()

void Guild::Member::SetPublicNote ( std::string_view  publicNote)
544{
545 if (m_publicNote == publicNote)
546 return;
547
548 m_publicNote = publicNote;
549
551 stmt->SetData(0, m_publicNote);
552 stmt->SetData(1, m_guid.GetCounter());
553 CharacterDatabase.Execute(stmt);
554}
@ CHAR_UPD_GUILD_MEMBER_PNOTE
Definition CharacterDatabase.h:166

References CHAR_UPD_GUILD_MEMBER_PNOTE, CharacterDatabase, and PreparedStatementBase::SetData().

◆ SetStats() [1/2]

void Guild::Member::SetStats ( Player *  player)
524{
525 m_name = player->GetName();
526 m_level = player->GetLevel();
527 m_class = player->getClass();
528 m_gender = player->getGender();
529 m_zoneId = player->GetZoneId();
530 m_accountId = player->GetSession()->GetAccountId();
531}
WorldSession * GetSession() const
Definition Player.h:2031
uint8 getGender() const
Definition Unit.h:849
uint8 getClass() const
Definition Unit.h:844
uint8 GetLevel() const
Definition Unit.h:1109
std::string const & GetName() const
Definition Object.h:535
uint32 GetZoneId() const
Definition Object.cpp:3171
uint32 GetAccountId() const
Definition WorldSession.h:502

References WorldSession::GetAccountId(), Unit::getClass(), Unit::getGender(), Unit::GetLevel(), WorldObject::GetName(), Player::GetSession(), WorldObject::GetZoneId(), and Guild::m_name.

Referenced by Guild::AddMember().

◆ SetStats() [2/2]

void Guild::Member::SetStats ( std::string_view  name,
uint8  level,
uint8  _class,
uint8  gender,
uint32  zoneId,
uint32  accountId 
)
534{
535 m_name = name;
536 m_level = level;
537 m_class = _class;
538 m_gender = gender;
539 m_zoneId = zoneId;
540 m_accountId = accountId;
541}

References Guild::m_name.

◆ SetZoneID()

void Guild::Member::SetZoneID ( uint32  id)
inline
320{ m_zoneId = id; }

References m_zoneId.

◆ ShouldReceiveBankPartialUpdatePackets()

bool Guild::Member::ShouldReceiveBankPartialUpdatePackets ( ) const
inline

◆ SubscribeToGuildBankUpdatePackets()

void Guild::Member::SubscribeToGuildBankUpdatePackets ( )
inline

◆ UnsubscribeFromGuildBankUpdatePackets()

void Guild::Member::UnsubscribeFromGuildBankUpdatePackets ( )
inline

◆ UpdateBankWithdrawValue()

void Guild::Member::UpdateBankWithdrawValue ( CharacterDatabaseTransaction  trans,
uint8  tabId,
uint32  amount 
)
651{
652 m_bankWithdraw[tabId] += amount;
653
655 stmt->SetData(0, m_guid.GetCounter());
656 for (uint8 i = 0; i <= GUILD_BANK_MAX_TABS;)
657 {
658 uint32 withdraw = m_bankWithdraw[i++];
659 stmt->SetData(i, withdraw);
660 }
661
662 CharacterDatabase.ExecuteOrAppend(trans, stmt);
663}
@ CHAR_INS_GUILD_MEMBER_WITHDRAW
Definition CharacterDatabase.h:180

References CHAR_INS_GUILD_MEMBER_WITHDRAW, CharacterDatabase, GUILD_BANK_MAX_TABS, and PreparedStatementBase::SetData().

Referenced by Guild::HandleMemberWithdrawMoney().

◆ UpdateLogoutTime()

void Guild::Member::UpdateLogoutTime ( )
584{
586}
Seconds GetGameTime()
Definition GameTime.cpp:38

References GameTime::GetGameTime().

Member Data Documentation

◆ m_accountId

uint32 Guild::Member::m_accountId
private

Referenced by GetAccountId().

◆ m_bankWithdraw

std::array<int32, GUILD_BANK_MAX_TABS + 1> Guild::Member::m_bankWithdraw = {}
private
378{};

◆ m_class

uint8 Guild::Member::m_class
private

Referenced by GetClass().

◆ m_flags

uint8 Guild::Member::m_flags
private

◆ m_gender

uint8 Guild::Member::m_gender
private

Referenced by GetGender().

◆ m_guid

ObjectGuid Guild::Member::m_guid
private

Referenced by FindPlayer(), GetGUID(), and IsSamePlayer().

◆ m_guildId

uint32 Guild::Member::m_guildId
private

◆ m_level

uint8 Guild::Member::m_level
private

Referenced by GetLevel(), and SetLevel().

◆ m_logoutTime

uint64 Guild::Member::m_logoutTime
private

Referenced by GetLogoutTime().

◆ m_name

std::string Guild::Member::m_name
private

Referenced by GetName().

◆ m_officerNote

std::string Guild::Member::m_officerNote
private

Referenced by GetOfficerNote().

◆ m_publicNote

std::string Guild::Member::m_publicNote
private

Referenced by GetPublicNote().

◆ m_rankId

uint8 Guild::Member::m_rankId
private

Referenced by GetRankId(), IsRank(), and IsRankNotLower().

◆ m_zoneId

uint32 Guild::Member::m_zoneId
private

Referenced by GetZoneId(), and SetZoneID().

◆ receiveGuildBankUpdatePackets

bool Guild::Member::receiveGuildBankUpdatePackets
private

The documentation for this class was generated from the following files: