diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-11-21 12:25:22 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-11-21 12:25:22 +0100 |
commit | b888b1b09f71a8b8b4a9d45c804a1f164fb65ac3 (patch) | |
tree | ba507c4c1c5e8487bd223afbde44ecf9eeac162e /src/server/game/Handlers/AuthHandler.cpp | |
parent | 8c072b93af3a4efcbde21cc85fedcf7fa48fa7b4 (diff) |
Core/Calendar: Implement different timezone support for ingame calendar
Closes #8390
Closes #29427
Diffstat (limited to 'src/server/game/Handlers/AuthHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/AuthHandler.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/server/game/Handlers/AuthHandler.cpp b/src/server/game/Handlers/AuthHandler.cpp index 7be557d368b..13db0718450 100644 --- a/src/server/game/Handlers/AuthHandler.cpp +++ b/src/server/game/Handlers/AuthHandler.cpp @@ -26,6 +26,7 @@ #include "RBAC.h" #include "Realm.h" #include "SystemPackets.h" +#include "Timezone.h" #include "World.h" void WorldSession::SendAuthResponse(uint32 code, bool queued, uint32 queuePos) @@ -89,12 +90,14 @@ void WorldSession::SendClientCacheVersion(uint32 version) void WorldSession::SendSetTimeZoneInformation() { - /// @todo: replace dummy values - WorldPackets::System::SetTimeZoneInformation packet; - packet.ServerTimeTZ = "Europe/Paris"; - packet.GameTimeTZ = "Europe/Paris"; - packet.ServerRegionalTZ = "Europe/Paris"; + Minutes timezoneOffset = Trinity::Timezone::GetSystemZoneOffset(false); + std::string realTimezone = Trinity::Timezone::GetSystemZoneName(); + std::string_view clientSupportedTZ = Trinity::Timezone::FindClosestClientSupportedTimezone(realTimezone, timezoneOffset); + WorldPackets::System::SetTimeZoneInformation packet; + packet.ServerTimeTZ = clientSupportedTZ; + packet.GameTimeTZ = clientSupportedTZ; + packet.ServerRegionalTZ = clientSupportedTZ; SendPacket(packet.Write()); } |