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

Public Member Functions

 RankInfo ()
 
 RankInfo (uint32 guildId)
 
 RankInfo (uint32 guildId, uint8 rankId, std::string_view name, uint32 rights, uint32 money)
 
void LoadFromDB (Field *fields)
 
void SaveToDB (CharacterDatabaseTransaction trans) const
 
uint8 GetId () const
 
std::string const & GetName () const
 
void SetName (std::string_view name)
 
uint32 GetRights () const
 
void SetRights (uint32 rights)
 
int32 GetBankMoneyPerDay () const
 
void SetBankMoneyPerDay (uint32 money)
 
int8 GetBankTabRights (uint8 tabId) const
 
int32 GetBankTabSlotsPerDay (uint8 tabId) const
 
void SetBankTabSlotsAndRights (GuildBankRightsAndSlots rightsAndSlots, bool saveToDB)
 
void CreateMissingTabsIfNeeded (uint8 ranks, CharacterDatabaseTransaction trans, bool logOnCreate=false)
 

Private Attributes

uint32 m_guildId
 
uint8 m_rankId
 
std::string m_name
 
uint32 m_rights
 
uint32 m_bankMoneyPerDay
 
std::array< GuildBankRightsAndSlots, GUILD_BANK_MAX_TABSm_bankTabRightsAndSlots = {}
 

Detailed Description

Constructor & Destructor Documentation

◆ RankInfo() [1/3]

Guild::RankInfo::RankInfo ( )
inline
@ GUILD_RANK_NONE
Definition: Guild.h:50
@ GR_RIGHT_EMPTY
Definition: Guild.h:79
uint32 m_rights
Definition: Guild.h:554
uint32 m_bankMoneyPerDay
Definition: Guild.h:555
uint32 m_guildId
Definition: Guild.h:550
uint8 m_rankId
Definition: Guild.h:552

◆ RankInfo() [2/3]

Guild::RankInfo::RankInfo ( uint32  guildId)
inline

◆ RankInfo() [3/3]

Guild::RankInfo::RankInfo ( uint32  guildId,
uint8  rankId,
std::string_view  name,
uint32  rights,
uint32  money 
)
inline
517 :
518 m_guildId(guildId), m_rankId(rankId), m_name(name), m_rights(rights),
@ GUILD_WITHDRAW_MONEY_UNLIMITED
Definition: Guild.h:51
@ GR_GUILDMASTER
Definition: Guild.h:68
std::string m_name
Definition: Guild.h:553

Member Function Documentation

◆ CreateMissingTabsIfNeeded()

void Guild::RankInfo::CreateMissingTabsIfNeeded ( uint8  ranks,
CharacterDatabaseTransaction  trans,
bool  logOnCreate = false 
)
288{
289 for (uint8 i = 0; i < tabs; ++i)
290 {
292 if (rightsAndSlots.GetTabId() == i)
293 continue;
294
295 rightsAndSlots.SetTabId(i);
297 rightsAndSlots.SetGuildMasterValues();
298
299 if (logOnCreate)
300 LOG_ERROR("guild", "Guild {} has broken Tab {} for rank {}. Created default tab.", m_guildId, i, m_rankId);
301
303 stmt->SetData(0, m_guildId);
304 stmt->SetData(1, i);
305 stmt->SetData(2, m_rankId);
306 stmt->SetData(3, rightsAndSlots.GetRights());
307 stmt->SetData(4, rightsAndSlots.GetSlots());
308 trans->Append(stmt);
309 }
310}
std::uint8_t uint8
Definition: Define.h:110
#define LOG_ERROR(filterType__,...)
Definition: Log.h:159
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
Definition: DatabaseEnv.cpp:21
@ CHAR_INS_GUILD_BANK_RIGHT
Definition: CharacterDatabase.h:156
Definition: PreparedStatement.h:158
Acore::Types::is_default< T > SetData(const uint8 index, T value)
Definition: PreparedStatement.h:78
Definition: Guild.h:266
void SetGuildMasterValues()
Definition: Guild.h:272
uint8 GetRights() const
Definition: Guild.h:284
uint32 GetSlots() const
Definition: Guild.h:283
uint8 GetTabId() const
Definition: Guild.h:282
void SetTabId(uint8 _tabId)
Definition: Guild.h:278
std::array< GuildBankRightsAndSlots, GUILD_BANK_MAX_TABS > m_bankTabRightsAndSlots
Definition: Guild.h:556

References CHAR_INS_GUILD_BANK_RIGHT, CharacterDatabase, GuildBankRightsAndSlots::GetRights(), GuildBankRightsAndSlots::GetSlots(), GuildBankRightsAndSlots::GetTabId(), GR_GUILDMASTER, LOG_ERROR, PreparedStatementBase::SetData(), GuildBankRightsAndSlots::SetGuildMasterValues(), and GuildBankRightsAndSlots::SetTabId().

Referenced by Guild::_CreateRank(), and Guild::Validate().

◆ GetBankMoneyPerDay()

int32 Guild::RankInfo::GetBankMoneyPerDay ( ) const
inline
532{ return m_bankMoneyPerDay; }

References m_bankMoneyPerDay.

◆ GetBankTabRights()

int8 Guild::RankInfo::GetBankTabRights ( uint8  tabId) const
inline
537 {
538 return tabId < GUILD_BANK_MAX_TABS ? m_bankTabRightsAndSlots[tabId].GetRights() : 0;
539 }
@ GUILD_BANK_MAX_TABS
Definition: Guild.h:45

References GUILD_BANK_MAX_TABS, and m_bankTabRightsAndSlots.

◆ GetBankTabSlotsPerDay()

int32 Guild::RankInfo::GetBankTabSlotsPerDay ( uint8  tabId) const
inline
542 {
543 return tabId < GUILD_BANK_MAX_TABS ? m_bankTabRightsAndSlots[tabId].GetSlots() : 0;
544 }

References GUILD_BANK_MAX_TABS, and m_bankTabRightsAndSlots.

◆ GetId()

uint8 Guild::RankInfo::GetId ( ) const
inline
524{ return m_rankId; }

References m_rankId.

Referenced by Guild::Validate().

◆ GetName()

std::string const & Guild::RankInfo::GetName ( ) const
inline
526{ return m_name; }

References m_name.

◆ GetRights()

uint32 Guild::RankInfo::GetRights ( ) const
inline
529{ return m_rights; }

References m_rights.

◆ LoadFromDB()

void Guild::RankInfo::LoadFromDB ( Field fields)
267{
268 m_rankId = fields[1].Get<uint8>();
269 m_name = fields[2].Get<std::string>();
270 m_rights = fields[3].Get<uint32>();
271 m_bankMoneyPerDay = fields[4].Get<uint32>();
272 if (m_rankId == GR_GUILDMASTER) // Prevent loss of leader rights
274}
std::uint32_t uint32
Definition: Define.h:108
@ GR_RIGHT_ALL
Definition: Guild.h:97
std::enable_if_t< std::is_arithmetic_v< T >, T > Get() const
Definition: Field.h:113

References Field::Get(), GR_GUILDMASTER, GR_RIGHT_ALL, and Guild::m_name.

Referenced by Guild::LoadRankFromDB().

◆ SaveToDB()

void Guild::RankInfo::SaveToDB ( CharacterDatabaseTransaction  trans) const
277{
279 stmt->SetData(0, m_guildId);
280 stmt->SetData (1, m_rankId);
281 stmt->SetData(2, m_name);
282 stmt->SetData(3, m_rights);
283 stmt->SetData(4, m_bankMoneyPerDay);
284 CharacterDatabase.ExecuteOrAppend(trans, stmt);
285}
@ CHAR_INS_GUILD_RANK
Definition: CharacterDatabase.h:147

References CHAR_INS_GUILD_RANK, CharacterDatabase, Guild::m_name, and PreparedStatementBase::SetData().

Referenced by Guild::_CreateRank().

◆ SetBankMoneyPerDay()

void Guild::RankInfo::SetBankMoneyPerDay ( uint32  money)
344{
345 if (m_rankId == GR_GUILDMASTER) // Prevent loss of leader rights
347
348 if (m_bankMoneyPerDay == money)
349 return;
350
351 m_bankMoneyPerDay = money;
352
354 stmt->SetData(0, money);
355 stmt->SetData (1, m_rankId);
356 stmt->SetData(2, m_guildId);
357 CharacterDatabase.Execute(stmt);
358}
@ CHAR_UPD_GUILD_RANK_BANK_MONEY
Definition: CharacterDatabase.h:177

References CHAR_UPD_GUILD_RANK_BANK_MONEY, CharacterDatabase, GR_GUILDMASTER, GUILD_WITHDRAW_MONEY_UNLIMITED, and PreparedStatementBase::SetData().

◆ SetBankTabSlotsAndRights()

void Guild::RankInfo::SetBankTabSlotsAndRights ( GuildBankRightsAndSlots  rightsAndSlots,
bool  saveToDB 
)
361{
362 if (m_rankId == GR_GUILDMASTER) // Prevent loss of leader rights
363 rightsAndSlots.SetGuildMasterValues();
364
365 GuildBankRightsAndSlots& guildBR = m_bankTabRightsAndSlots[rightsAndSlots.GetTabId()];
366 guildBR = rightsAndSlots;
367
368 if (saveToDB)
369 {
371 stmt->SetData(0, m_guildId);
372 stmt->SetData (1, guildBR.GetTabId());
373 stmt->SetData (2, m_rankId);
374 stmt->SetData (3, guildBR.GetRights());
375 stmt->SetData(4, guildBR.GetSlots());
376 CharacterDatabase.Execute(stmt);
377 }
378}

References CHAR_INS_GUILD_BANK_RIGHT, CharacterDatabase, GuildBankRightsAndSlots::GetRights(), GuildBankRightsAndSlots::GetSlots(), GuildBankRightsAndSlots::GetTabId(), GR_GUILDMASTER, PreparedStatementBase::SetData(), and GuildBankRightsAndSlots::SetGuildMasterValues().

◆ SetName()

void Guild::RankInfo::SetName ( std::string_view  name)
313{
314 if (m_name == name)
315 return;
316
317 m_name = name;
318
320 stmt->SetData(0, m_name);
321 stmt->SetData (1, m_rankId);
322 stmt->SetData(2, m_guildId);
323 CharacterDatabase.Execute(stmt);
324}
@ CHAR_UPD_GUILD_RANK_NAME
Definition: CharacterDatabase.h:171

References CHAR_UPD_GUILD_RANK_NAME, CharacterDatabase, Guild::m_name, and PreparedStatementBase::SetData().

◆ SetRights()

void Guild::RankInfo::SetRights ( uint32  rights)
327{
328 if (m_rankId == GR_GUILDMASTER) // Prevent loss of leader rights
329 rights = GR_RIGHT_ALL;
330
331 if (m_rights == rights)
332 return;
333
334 m_rights = rights;
335
337 stmt->SetData(0, m_rights);
338 stmt->SetData (1, m_rankId);
339 stmt->SetData(2, m_guildId);
340 CharacterDatabase.Execute(stmt);
341}
@ CHAR_UPD_GUILD_RANK_RIGHTS
Definition: CharacterDatabase.h:172

References CHAR_UPD_GUILD_RANK_RIGHTS, CharacterDatabase, GR_GUILDMASTER, GR_RIGHT_ALL, and PreparedStatementBase::SetData().

Member Data Documentation

◆ m_bankMoneyPerDay

uint32 Guild::RankInfo::m_bankMoneyPerDay
private

Referenced by GetBankMoneyPerDay().

◆ m_bankTabRightsAndSlots

std::array<GuildBankRightsAndSlots, GUILD_BANK_MAX_TABS> Guild::RankInfo::m_bankTabRightsAndSlots = {}
private

◆ m_guildId

uint32 Guild::RankInfo::m_guildId
private

◆ m_name

std::string Guild::RankInfo::m_name
private

Referenced by GetName().

◆ m_rankId

uint8 Guild::RankInfo::m_rankId
private

Referenced by GetId().

◆ m_rights

uint32 Guild::RankInfo::m_rights
private

Referenced by GetRights().