diff --git a/src/server/game/Handlers/TicketHandler.cpp b/src/server/game/Handlers/TicketHandler.cpp index 1a9b005d6d..415934bf1e 100644 --- a/src/server/game/Handlers/TicketHandler.cpp +++ b/src/server/game/Handlers/TicketHandler.cpp @@ -26,6 +26,7 @@ #include "Player.h" #include "Random.h" #include "TicketMgr.h" +#include "TicketPackets.h" #include "Util.h" #include "World.h" #include "WorldPacket.h" @@ -280,8 +281,9 @@ void WorldSession::HandleGMResponseResolve(WorldPacket& /*recvPacket*/) void WorldSession::HandleComplaintOpcode(WorldPackets::Ticket::Complaint& /*packet*/) { // Complaint Received message - WorldPacket data(SMSG_COMPLAIN_RESULT, 2); - data << uint8(0); // value 1 resets CGChat::m_complaintsSystemStatus in client. (unused?) - data << uint8(0); // value 0xC generates a "CalendarError" in client. - SendPacket(&data); + WorldPackets::Ticket::ComplaintResult complaintResult; + complaintResult.Result = 0; // unknown what to send + complaintResult.ComplaintType = 5; // common value found in sniffs. Unrelated to complaint type of the cmsg packet + + SendPacket(complaintResult.Write()); } diff --git a/src/server/game/Server/Packets/TicketPackets.cpp b/src/server/game/Server/Packets/TicketPackets.cpp index 23d69cfdca..d4bed1f037 100644 --- a/src/server/game/Server/Packets/TicketPackets.cpp +++ b/src/server/game/Server/Packets/TicketPackets.cpp @@ -40,3 +40,11 @@ void WorldPackets::Ticket::Complaint::Read() break; } } + +WorldPacket const* WorldPackets::Ticket::ComplaintResult::Write() +{ + _worldPacket << uint8(Result); + _worldPacket << uint8(ComplaintType); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/TicketPackets.h b/src/server/game/Server/Packets/TicketPackets.h index abf6195eea..3d0e81dd64 100644 --- a/src/server/game/Server/Packets/TicketPackets.h +++ b/src/server/game/Server/Packets/TicketPackets.h @@ -52,6 +52,17 @@ namespace WorldPackets ComplaintOffender Offender; ComplaintChat Chat; }; + + class ComplaintResult final : public ServerPacket + { + public: + ComplaintResult() : ServerPacket(SMSG_COMPLAINT_RESULT, 1 + 1) { } + + WorldPacket const* Write() override; + + uint8 ComplaintType = 0; + uint8 Result = 0; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 5a218f2624..7e4ede1152 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -782,7 +782,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT1, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT2, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMENTATOR_STATE_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMPLAIN_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMPLAINT_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMPRESSED_MOVES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMSAT_CONNECT_FAIL, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMSAT_DISCONNECT, STATUS_NEVER, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 54f6f57a1b..cb19248b9f 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -717,7 +717,7 @@ enum OpcodeServer SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT1 = 0x2126, SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT2 = 0x6814, SMSG_COMMENTATOR_STATE_CHANGED = 0x0737, - SMSG_COMPLAIN_RESULT = 0x6D24, + SMSG_COMPLAINT_RESULT = 0x6D24, SMSG_COMPRESSED_MOVES = 0x0517, SMSG_COMSAT_CONNECT_FAIL = 0x6317, SMSG_COMSAT_DISCONNECT = 0x0316,