feat(Core/Battleground): Config to allow/disallow ability to Share Quest & Ready Check (#2924)

This commit is contained in:
Kitzunu
2020-05-22 16:54:17 +02:00
committed by GitHub
parent 92442cfb2f
commit 55dc9afc73
7 changed files with 54 additions and 1 deletions

View File

@@ -0,0 +1,6 @@
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1587562111390803800');
DELETE FROM `acore_string` WHERE entry IN (30083,30084);
INSERT INTO `acore_string` (`entry`, `content_default`) VALUES
(30083, 'You cannot share quests while in a Battleground.'),
(30084, 'You cannot start a Ready Check while in a Battlground.');

View File

@@ -20,6 +20,7 @@
#include "Util.h"
#include "SpellAuras.h"
#include "Vehicle.h"
#include "Language.h"
class Aura;
@@ -742,6 +743,17 @@ void WorldSession::HandleRaidReadyCheckOpcode(WorldPacket& recvData)
return;
/********************/
// Check if Ready Check in BG is enabled
if (sWorld->getBoolConfig(CONFIG_BATTLEGROUND_DISABLE_READY_CHECK_IN_BG))
{
// Check if player is in BG
if (_player->InBattleground())
{
_player->GetSession()->SendNotification(LANG_BG_READY_CHECK_ERROR);
return;
}
}
// everything's fine, do it
WorldPacket data(MSG_RAID_READY_CHECK, 8);
data << GetPlayer()->GetGUID();

View File

@@ -20,6 +20,7 @@
#include "BattlegroundAV.h"
#include "ScriptMgr.h"
#include "GameObjectAI.h"
#include "Language.h"
#ifdef ELUNA
#include "LuaEngine.h"
#endif
@@ -586,6 +587,17 @@ void WorldSession::HandlePushQuestToParty(WorldPacket& recvPacket)
continue;
}
// Check if Quest Share in BG is enabled
if (sWorld->getBoolConfig(CONFIG_BATTLEGROUND_DISABLE_QUEST_SHARE_IN_BG))
{
// Check if player is in BG
if (_player->InBattleground())
{
_player->GetSession()->SendNotification(LANG_BG_SHARE_QUEST_ERROR);
continue;
}
}
if (player->GetDivider() != 0)
{
_player->SendPushToPartyResponse(player, QUEST_PARTY_MSG_BUSY);

View File

@@ -1317,6 +1317,9 @@ enum AcoreStrings
LANG_DEBUG_OPCODE_FILE_MISSING = 30080,
LANG_REMOVEITEM_FAILURE = 30081,
LANG_REMOVEITEM_ERROR = 30082
LANG_REMOVEITEM_ERROR = 30082,
LANG_BG_SHARE_QUEST_ERROR = 30083,
LANG_BG_READY_CHECK_ERROR = 30084
};
#endif

View File

@@ -1142,6 +1142,8 @@ void World::LoadConfigSettings(bool reload)
m_float_configs[CONFIG_LISTEN_RANGE_TEXTEMOTE] = sConfigMgr->GetFloatDefault("ListenRange.TextEmote", 25.0f);
m_float_configs[CONFIG_LISTEN_RANGE_YELL] = sConfigMgr->GetFloatDefault("ListenRange.Yell", 300.0f);
m_bool_configs[CONFIG_BATTLEGROUND_DISABLE_QUEST_SHARE_IN_BG] = sConfigMgr->GetBoolDefault("Battleground.DisableQuestShareInBG", false);
m_bool_configs[CONFIG_BATTLEGROUND_DISABLE_READY_CHECK_IN_BG] = sConfigMgr->GetBoolDefault("Battleground.DisableReadyCheckInBG", false);
m_bool_configs[CONFIG_BATTLEGROUND_CAST_DESERTER] = sConfigMgr->GetBoolDefault("Battleground.CastDeserter", true);
m_bool_configs[CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE] = sConfigMgr->GetBoolDefault("Battleground.QueueAnnouncer.Enable", false);
m_bool_configs[CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY] = sConfigMgr->GetBoolDefault("Battleground.QueueAnnouncer.PlayerOnly", false);

View File

@@ -116,6 +116,8 @@ enum WorldBoolConfigs
CONFIG_DEATH_BONES_BG_OR_ARENA,
CONFIG_DIE_COMMAND_MODE,
CONFIG_DECLINED_NAMES_USED,
CONFIG_BATTLEGROUND_DISABLE_QUEST_SHARE_IN_BG,
CONFIG_BATTLEGROUND_DISABLE_READY_CHECK_IN_BG,
CONFIG_BATTLEGROUND_CAST_DESERTER,
CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE,
CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY,

View File

@@ -2762,6 +2762,22 @@ Battleground.TrackDeserters.Enable = 1
Battleground.InvitationType = 0
#
# Battleground.DisableQuestShareInBG
# Description: Disables the ability to share quests while in a Battleground.
# Default: 0 - (Disabled)
# 1 - (Enabled)
Battleground.DisableQuestShareInBG = 0
#
# Battleground.DisableReadyCheckInBG
# Description: Disables the ability to send a Ready Check survey while in a Battleground.
# Default: 0 - (Disabled)
# 1 - (Enabled)
Battleground.DisableReadyCheckInBG = 0
#
# Battleground.RewardWinnerHonorFirst
# Battleground.RewardWinnerArenaFirst