Core/Battleground: Check battlegrounds disabled in db2 files (#23924)

* Name BattlemasterList flags
This commit is contained in:
Jeremy
2019-12-15 12:43:33 +01:00
committed by Shauren
parent 4cfaf266b9
commit 5d57415951
2 changed files with 14 additions and 2 deletions

View File

@@ -185,6 +185,17 @@ enum AzeriteTierUnlockSetFlags
#define BATTLE_PET_SPECIES_MAX_ID 2796
enum BattlemasterListFlags
{
BATTLEMASTER_LIST_FLAG_DISABLED = 0x01,
BATTLEMASTER_LIST_FLAG_SKIP_ROLE_CHECK = 0x02,
BATTLEMASTER_LIST_FLAG_UNK04 = 0x04,
BATTLEMASTER_LIST_FLAG_CAN_INIT_WAR_GAME = 0x08,
BATTLEMASTER_LIST_FLAG_CAN_SPECIFIC_QUEUE = 0x10,
BATTLEMASTER_LIST_FLAG_BRAWL = 0x20,
BATTLEMASTER_LIST_FLAG_FACTIONAL = 0x40
};
enum ChrSpecializationFlag
{
CHR_SPECIALIZATION_FLAG_CASTER = 0x01,

View File

@@ -71,13 +71,14 @@ void WorldSession::HandleBattlemasterJoinOpcode(WorldPackets::Battleground::Batt
}
uint32 bgTypeId_ = battlemasterJoin.QueueIDs[0] & 0xFFFF;
if (!sBattlemasterListStore.LookupEntry(bgTypeId_))
BattlemasterListEntry const* battlemasterListEntry = sBattlemasterListStore.LookupEntry(bgTypeId_);
if (!battlemasterListEntry)
{
TC_LOG_ERROR("network", "Battleground: invalid bgtype (%u) received. possible cheater? %s", bgTypeId_, _player->GetGUID().ToString().c_str());
return;
}
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, bgTypeId_, NULL))
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, bgTypeId_, NULL) || (battlemasterListEntry->Flags & BATTLEMASTER_LIST_FLAG_DISABLED) != 0)
{
ChatHandler(this).PSendSysMessage(LANG_BG_DISABLED);
return;