mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 18:15:31 +01:00
Core/PacketIO: Updated and enabled CMSG_PUSH_QUEST_TO_PARTY
This commit is contained in:
@@ -543,17 +543,12 @@ void WorldSession::HandleQuestgiverQuestAutoLaunch(WorldPacket& /*recvPacket*/)
|
||||
{
|
||||
}
|
||||
|
||||
void WorldSession::HandlePushQuestToParty(WorldPacket& recvPacket)
|
||||
void WorldSession::HandlePushQuestToParty(WorldPackets::Quest::PushQuestToParty& packet)
|
||||
{
|
||||
uint32 questId;
|
||||
recvPacket >> questId;
|
||||
|
||||
if (!_player->CanShareQuest(questId))
|
||||
if (!_player->CanShareQuest(packet.QuestID))
|
||||
return;
|
||||
|
||||
TC_LOG_DEBUG("network", "WORLD: Received CMSG_PUSHQUESTTOPARTY questId = %u", questId);
|
||||
|
||||
Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
|
||||
Quest const* quest = sObjectMgr->GetQuestTemplate(packet.QuestID);
|
||||
if (!quest)
|
||||
return;
|
||||
|
||||
@@ -576,7 +571,7 @@ void WorldSession::HandlePushQuestToParty(WorldPacket& recvPacket)
|
||||
continue;
|
||||
}
|
||||
|
||||
if (receiver->GetQuestStatus(questId) == QUEST_STATUS_COMPLETE)
|
||||
if (receiver->GetQuestStatus(packet.QuestID) == QUEST_STATUS_COMPLETE)
|
||||
{
|
||||
sender->SendPushToPartyResponse(receiver, QUEST_PUSH_ALREADY_DONE);
|
||||
continue;
|
||||
|
||||
@@ -538,3 +538,8 @@ WorldPacket const* WorldPackets::Quest::QuestGiverQuestFailed::Write()
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Quest::PushQuestToParty::Read()
|
||||
{
|
||||
_worldPacket >> QuestID;
|
||||
}
|
||||
|
||||
@@ -548,6 +548,16 @@ namespace WorldPackets
|
||||
uint32 QuestID = 0;
|
||||
uint32 Reason = 0;
|
||||
};
|
||||
|
||||
class PushQuestToParty final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
PushQuestToParty(WorldPacket&& packet) : ClientPacket(CMSG_PUSH_QUEST_TO_PARTY, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
uint32 QuestID;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -577,7 +577,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_PING, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPacket, &WorldSession::Handle_EarlyProccess);
|
||||
DEFINE_HANDLER(CMSG_PLAYER_LOGIN, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::PlayerLogin, &WorldSession::HandlePlayerLoginOpcode);
|
||||
DEFINE_HANDLER(CMSG_PROTOCOL_MISMATCH, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_PUSH_QUEST_TO_PARTY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePushQuestToParty );
|
||||
DEFINE_HANDLER(CMSG_PUSH_QUEST_TO_PARTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Quest::PushQuestToParty, &WorldSession::HandlePushQuestToParty);
|
||||
DEFINE_HANDLER(CMSG_PVP_LOG_DATA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Battleground::PVPLogDataRequest, &WorldSession::HandlePVPLogDataOpcode);
|
||||
DEFINE_HANDLER(CMSG_QUERY_BATTLE_PET_NAME, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Query::QueryCorpseLocationFromClient, &WorldSession::HandleQueryCorpseLocation);
|
||||
|
||||
@@ -529,6 +529,7 @@ namespace WorldPackets
|
||||
class QuestGiverAcceptQuest;
|
||||
class QuestLogRemoveQuest;
|
||||
class QuestPushResult;
|
||||
class PushQuestToParty;
|
||||
}
|
||||
|
||||
namespace RaF
|
||||
@@ -1397,7 +1398,7 @@ class WorldSession
|
||||
void HandleQuestConfirmAccept(WorldPackets::Quest::QuestConfirmAccept& packet);
|
||||
void HandleQuestgiverCompleteQuest(WorldPackets::Quest::QuestGiverCompleteQuest& packet);
|
||||
void HandleQuestgiverQuestAutoLaunch(WorldPacket& recvPacket);
|
||||
void HandlePushQuestToParty(WorldPacket& recvPacket);
|
||||
void HandlePushQuestToParty(WorldPackets::Quest::PushQuestToParty& packet);
|
||||
void HandleQuestPushResult(WorldPackets::Quest::QuestPushResult& packet);
|
||||
|
||||
void HandleChatMessageOpcode(WorldPackets::Chat::ChatMessage& chatMessage);
|
||||
|
||||
Reference in New Issue
Block a user