aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Conditions/DisableMgr.cpp5
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/scripts/Commands/cs_quest.cpp9
3 files changed, 7 insertions, 9 deletions
diff --git a/src/server/game/Conditions/DisableMgr.cpp b/src/server/game/Conditions/DisableMgr.cpp
index ef46cb9837a..0a8f05bd70a 100644
--- a/src/server/game/Conditions/DisableMgr.cpp
+++ b/src/server/game/Conditions/DisableMgr.cpp
@@ -376,11 +376,6 @@ bool IsDisabledFor(DisableType type, uint32 entry, WorldObject const* ref, uint8
}
return false;
case DISABLE_TYPE_QUEST:
- if (!ref)
- return true;
- if (Player const* player = ref->ToPlayer())
- if (player->IsGameMaster())
- return false;
return true;
case DISABLE_TYPE_BATTLEGROUND:
case DISABLE_TYPE_OUTDOORPVP:
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index d1cb8c28e05..c8702e15b85 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -15144,7 +15144,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
// cast spells after mark quest complete (some spells have quest completed state requirements in spell_area data)
if (quest->GetRewSpellCast() > 0)
{
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(quest->GetRewSpellCast());
+ SpellInfo const* spellInfo = ASSERT_NOTNULL(sSpellMgr->GetSpellInfo(quest->GetRewSpellCast()));
if (questGiver->isType(TYPEMASK_UNIT) && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL) && !spellInfo->HasEffect(SPELL_EFFECT_CREATE_ITEM) && !spellInfo->IsSelfCast())
{
if (Creature* creature = GetMap()->GetCreature(questGiver->GetGUID()))
diff --git a/src/server/scripts/Commands/cs_quest.cpp b/src/server/scripts/Commands/cs_quest.cpp
index a97cfb19827..6d333866606 100644
--- a/src/server/scripts/Commands/cs_quest.cpp
+++ b/src/server/scripts/Commands/cs_quest.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "Chat.h"
#include "DatabaseEnv.h"
#include "DBCStores.h"
+#include "DisableMgr.h"
#include "ObjectMgr.h"
#include "Player.h"
#include "RBAC.h"
@@ -73,7 +74,7 @@ public:
Quest const* quest = sObjectMgr->GetQuestTemplate(entry);
- if (!quest)
+ if (!quest || DisableMgr::IsDisabledFor(DISABLE_TYPE_QUEST, entry, nullptr))
{
handler->PSendSysMessage(LANG_COMMAND_QUEST_NOTFOUND, entry);
handler->SetSentErrorMessage(true);
@@ -185,7 +186,8 @@ public:
Quest const* quest = sObjectMgr->GetQuestTemplate(entry);
// If player doesn't have the quest
- if (!quest || player->GetQuestStatus(entry) == QUEST_STATUS_NONE)
+ if (!quest || player->GetQuestStatus(entry) == QUEST_STATUS_NONE
+ || DisableMgr::IsDisabledFor(DISABLE_TYPE_QUEST, entry, nullptr))
{
handler->PSendSysMessage(LANG_COMMAND_QUEST_NOTFOUND, entry);
handler->SetSentErrorMessage(true);
@@ -289,7 +291,8 @@ public:
Quest const* quest = sObjectMgr->GetQuestTemplate(entry);
// If player doesn't have the quest
- if (!quest || player->GetQuestStatus(entry) != QUEST_STATUS_COMPLETE)
+ if (!quest || player->GetQuestStatus(entry) != QUEST_STATUS_COMPLETE
+ || DisableMgr::IsDisabledFor(DISABLE_TYPE_QUEST, entry, nullptr))
{
handler->PSendSysMessage(LANG_COMMAND_QUEST_NOTFOUND, entry);
handler->SetSentErrorMessage(true);