AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
BGSpamProtect Class Reference

#include "BattlegroundSpamProtect.h"

Public Member Functions

bool CanAnnounce (Player *player, Battleground *bg, uint32 minLevel, uint32 queueTotal)
 
bool CanAnnounce (Battleground *bg, BattlegroundBracketId bracketId, uint32 minLevel, uint32 queueTotal)
 

Static Public Member Functions

static BGSpamProtectinstance ()
 

Detailed Description

Member Function Documentation

◆ CanAnnounce() [1/2]

bool BGSpamProtect::CanAnnounce ( Battleground bg,
BattlegroundBracketId  bracketId,
uint32  minLevel,
uint32  queueTotal 
)
110{
111 if (!bg)
112 return false;
113
114 uint32 key = uint32(bg->GetBgTypeID()) * MAX_BATTLEGROUND_BRACKETS + uint32(bracketId);
115
116 // Check prev time
117 if (!IsCorrectDelay(key))
118 return false;
119
120 // When limited, it announces only if there are at least CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_PLAYERS in queue
121 auto limitQueueMinLevel = sWorld->getIntConfig(CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_LEVEL);
122 if (limitQueueMinLevel && minLevel >= limitQueueMinLevel)
123 {
124 // limit only RBG for 80, WSG for lower levels
125 auto bgTypeToLimit = minLevel == 80 ? BATTLEGROUND_RB : BATTLEGROUND_WS;
126
127 if (bg->GetBgTypeID() == bgTypeToLimit && queueTotal < sWorld->getIntConfig(CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_PLAYERS))
128 return false;
129 }
130
131 AddTime(key);
132 return true;
133}
#define MAX_BATTLEGROUND_BRACKETS
Definition DBCEnums.h:52
std::uint32_t uint32
Definition Define.h:107
@ BATTLEGROUND_WS
Definition SharedDefines.h:3738
@ BATTLEGROUND_RB
Definition SharedDefines.h:3749
@ CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_LEVEL
Definition WorldConfig.h:277
@ CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_PLAYERS
Definition WorldConfig.h:278
BattlegroundTypeId GetBgTypeID(bool GetRandom=false) const
Definition Battleground.h:330
#define sWorld
Definition World.h:317

References BATTLEGROUND_RB, BATTLEGROUND_WS, CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_LEVEL, CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_PLAYERS, Battleground::GetBgTypeID(), MAX_BATTLEGROUND_BRACKETS, and sWorld.

◆ CanAnnounce() [2/2]

bool BGSpamProtect::CanAnnounce ( Player player,
Battleground bg,
uint32  minLevel,
uint32  queueTotal 
)
80{
81 ObjectGuid guid = player->GetGUID();
82
83 // Check prev time
84 if (!IsCorrectDelay(guid))
85 {
86 return false;
87 }
88
89 if (bg)
90 {
91 // When limited, it announces only if there are at least CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_PLAYERS in queue
92 auto limitQueueMinLevel = sWorld->getIntConfig(CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_LEVEL);
93 if (limitQueueMinLevel && minLevel >= limitQueueMinLevel)
94 {
95 // limit only RBG for 80, WSG for lower levels
96 auto bgTypeToLimit = minLevel == 80 ? BATTLEGROUND_RB : BATTLEGROUND_WS;
97
98 if (bg->GetBgTypeID() == bgTypeToLimit && queueTotal < sWorld->getIntConfig(CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_PLAYERS))
99 {
100 return false;
101 }
102 }
103 }
104
105 AddTime(guid);
106 return true;
107}
Definition ObjectGuid.h:118
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114

References BATTLEGROUND_RB, BATTLEGROUND_WS, CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_LEVEL, CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_PLAYERS, Battleground::GetBgTypeID(), Object::GetGUID(), and sWorld.

◆ instance()

BGSpamProtect * BGSpamProtect::instance ( )
static
74{
76 return &instance;
77}
Definition BattlegroundSpamProtect.h:28
static BGSpamProtect * instance()
Definition BattlegroundSpamProtect.cpp:73

References instance().

Referenced by instance().


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