aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp8
-rw-r--r--src/server/game/Server/Packets/MiscPackets.cpp7
-rw-r--r--src/server/game/Server/Packets/MiscPackets.h10
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp4
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h4
5 files changed, 25 insertions, 8 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index e5442773c7f..49b593eb0a6 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -1752,10 +1752,10 @@ void WorldSession::HandleWorldStateUITimerUpdate(WorldPacket& /*recvData*/)
{
// empty opcode
TC_LOG_DEBUG("network", "WORLD: CMSG_WORLD_STATE_UI_TIMER_UPDATE");
-
- WorldPacket data(SMSG_WORLD_STATE_UI_TIMER_UPDATE, 4);
- data << uint32(time(NULL));
- SendPacket(&data);
+
+ WorldPackets::Misc::UITime response;
+ response.Time = time(NULL);
+ SendPacket(response.Write());
}
void WorldSession::SendSetPhaseShift(std::set<uint32> const& phaseIds, std::set<uint32> const& terrainswaps, std::set<uint32> const& worldMapAreaSwaps)
diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp
index 800e9621c09..601aad71807 100644
--- a/src/server/game/Server/Packets/MiscPackets.cpp
+++ b/src/server/game/Server/Packets/MiscPackets.cpp
@@ -34,3 +34,10 @@ void WorldPackets::Misc::TimeSyncResponse::Read()
_worldPacket >> SequenceIndex;
_worldPacket >> ClientTime;
}
+
+WorldPacket const* WorldPackets::Misc::UITime::Write()
+{
+ _worldPacket << Time;
+
+ return &_worldPacket;
+}
diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h
index dc64985dcda..0681b7d26c6 100644
--- a/src/server/game/Server/Packets/MiscPackets.h
+++ b/src/server/game/Server/Packets/MiscPackets.h
@@ -54,6 +54,16 @@ namespace WorldPackets
uint32 ClientTime = 0; // Client ticks in ms
uint32 SequenceIndex = 0; // Same index as in request
};
+
+ class UITime final : public ServerPacket
+ {
+ public:
+ UITime() : ServerPacket(SMSG_WORLD_STATE_UI_TIMER_UPDATE, 4) { }
+
+ WorldPacket const* Write() override;
+
+ uint32 Time = 0;
+ };
}
}
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index df40b4c83fb..f2f9f39481e 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -653,7 +653,7 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_WARGAME_START, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_WHO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleWhoOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_WHOIS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleWhoisOpcode );
- DEFINE_OPCODE_HANDLER_OLD(CMSG_WORLD_STATE_UI_TIMER_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleWorldStateUITimerUpdate );
+ DEFINE_OPCODE_HANDLER_OLD(CMSG_WORLD_STATE_UI_TIMER_UPDATE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleWorldStateUITimerUpdate );
DEFINE_OPCODE_HANDLER_OLD(CMSG_WORLD_TELEPORT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleWorldTeleportOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_WRAP_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleWrapItemOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_ZONEUPDATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleZoneUpdateOpcode );
@@ -1409,7 +1409,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_WHO, STATUS_UNHANDLED);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_WHOIS, STATUS_UNHANDLED);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_WORLD_SERVER_INFO, STATUS_UNHANDLED);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_WORLD_STATE_UI_TIMER_UPDATE, STATUS_UNHANDLED);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_WORLD_STATE_UI_TIMER_UPDATE, STATUS_NEVER);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_XP_GAIN_ABORTED, STATUS_UNHANDLED);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ZONE_UNDER_ATTACK, STATUS_UNHANDLED);
diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h
index 55171515bd2..6de5400b5ae 100644
--- a/src/server/game/Server/Protocol/Opcodes.h
+++ b/src/server/game/Server/Protocol/Opcodes.h
@@ -634,7 +634,7 @@ enum OpcodeClient : uint32
CMSG_WARGAME_START = 0xBADD,
CMSG_WHO = 0x1322,
CMSG_WHOIS = 0xBADD,
- CMSG_WORLD_STATE_UI_TIMER_UPDATE = 0xBADD,
+ CMSG_WORLD_STATE_UI_TIMER_UPDATE = 0x0302,
CMSG_WORLD_TELEPORT = 0xBADD,
CMSG_WRAP_ITEM = 0xBADD,
CMSG_ZONEUPDATE = 0xBADD,
@@ -1442,7 +1442,7 @@ enum OpcodeServer : uint32
SMSG_WHO = 0x0601,
SMSG_WHOIS = 0xBADD,
SMSG_WORLD_SERVER_INFO = 0x11AC,
- SMSG_WORLD_STATE_UI_TIMER_UPDATE = 0xBADD,
+ SMSG_WORLD_STATE_UI_TIMER_UPDATE = 0x0B83,
SMSG_XP_GAIN_ABORTED = 0xBADD,
SMSG_ZONE_UNDER_ATTACK = 0x1401
};