diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-12-02 16:03:50 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-12-02 16:03:50 +0100 |
commit | b4778a4d726d9c9ab9d55c49607bb91caa689433 (patch) | |
tree | 4fb9f829c0c6f56fda47485b58b03c1c7f18c9f6 | |
parent | 333630b7de15c4090392fcbbc1bc58da4d5fb138 (diff) |
Core/PacketIO: Fixed server time sent in CalendarRaidLockoutAdded
-rw-r--r-- | src/server/game/Calendar/CalendarMgr.cpp | 11 | ||||
-rw-r--r-- | src/server/game/Handlers/CalendarHandler.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Server/Packets/CalendarPackets.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Server/Packets/CalendarPackets.h | 2 |
4 files changed, 9 insertions, 15 deletions
diff --git a/src/server/game/Calendar/CalendarMgr.cpp b/src/server/game/Calendar/CalendarMgr.cpp index 66f8ab9cb27..d4c2bf7e742 100644 --- a/src/server/game/Calendar/CalendarMgr.cpp +++ b/src/server/game/Calendar/CalendarMgr.cpp @@ -30,7 +30,6 @@ #include "StringConvert.h" #include "WorldSession.h" #include "WowTime.h" -#include <sstream> CalendarInvite::CalendarInvite() : _inviteId(1), _eventId(0), _invitee(), _senderGUID(), _responseTime(0), _status(CALENDAR_STATUS_INVITED), _rank(CALENDAR_RANK_PLAYER), _note() { } @@ -470,9 +469,7 @@ uint32 CalendarMgr::GetPlayerNumPending(ObjectGuid guid) std::string CalendarEvent::BuildCalendarMailSubject(ObjectGuid remover) const { - std::ostringstream strm; - strm << remover.ToString() << ':' << _title; - return strm.str(); + return Trinity::StringFormat("{}:{}", remover.ToString(), _title); } std::string CalendarEvent::BuildCalendarMailBody(Player const* invitee) const @@ -528,7 +525,7 @@ void CalendarMgr::SendCalendarEventUpdateAlert(CalendarEvent const& calendarEven auto packetBuilder = [&](Player const* receiver) { WorldPackets::Calendar::CalendarEventUpdatedAlert packet; - packet.ClearPending = true; // FIXME + packet.ClearPending = calendarEvent.GetOwnerGUID() == receiver->GetGUID(); packet.Date.SetUtcTimeFromUnixTime(calendarEvent.GetDate()); packet.Date += receiver->GetSession()->GetTimezoneOffset(); packet.Description = calendarEvent.GetDescription(); @@ -556,7 +553,7 @@ void CalendarMgr::SendCalendarEventStatus(CalendarEvent const& calendarEvent, Ca auto packetBuilder = [&](Player const* receiver) { WorldPackets::Calendar::CalendarInviteStatus packet; - packet.ClearPending = true; // FIXME + packet.ClearPending = invite.GetInviteeGUID() == receiver->GetGUID(); packet.Date.SetUtcTimeFromUnixTime(calendarEvent.GetDate()); packet.Date += receiver->GetSession()->GetTimezoneOffset(); packet.EventID = calendarEvent.GetEventId(); @@ -578,7 +575,7 @@ void CalendarMgr::SendCalendarEventRemovedAlert(CalendarEvent const& calendarEve auto packetBuilder = [&](Player const* receiver) { WorldPackets::Calendar::CalendarEventRemovedAlert packet; - packet.ClearPending = true; // FIXME + packet.ClearPending = calendarEvent.GetOwnerGUID() == receiver->GetGUID(); packet.Date.SetUtcTimeFromUnixTime(calendarEvent.GetDate()); packet.Date += receiver->GetSession()->GetTimezoneOffset(); packet.EventID = calendarEvent.GetEventId(); diff --git a/src/server/game/Handlers/CalendarHandler.cpp b/src/server/game/Handlers/CalendarHandler.cpp index 5d90c79aeb2..01034c2f564 100644 --- a/src/server/game/Handlers/CalendarHandler.cpp +++ b/src/server/game/Handlers/CalendarHandler.cpp @@ -195,9 +195,6 @@ void WorldSession::HandleCalendarAddEvent(WorldPackets::Calendar::CalendarAddEve void WorldSession::HandleCalendarUpdateEvent(WorldPackets::Calendar::CalendarUpdateEvent& calendarUpdateEvent) { - ObjectGuid guid = _player->GetGUID(); - time_t oldEventTime = time_t(0); - calendarUpdateEvent.EventInfo.Time -= GetTimezoneOffset(); // prevent events in the past @@ -206,7 +203,7 @@ void WorldSession::HandleCalendarUpdateEvent(WorldPackets::Calendar::CalendarUpd if (CalendarEvent* calendarEvent = sCalendarMgr->GetEvent(calendarUpdateEvent.EventInfo.EventID)) { - oldEventTime = calendarEvent->GetDate(); + time_t oldEventTime = calendarEvent->GetDate(); calendarEvent->SetType(CalendarEventType(calendarUpdateEvent.EventInfo.EventType)); calendarEvent->SetFlags(calendarUpdateEvent.EventInfo.Flags); @@ -219,7 +216,7 @@ void WorldSession::HandleCalendarUpdateEvent(WorldPackets::Calendar::CalendarUpd sCalendarMgr->SendCalendarEventUpdateAlert(*calendarEvent, oldEventTime); } else - sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_EVENT_INVALID); + sCalendarMgr->SendCalendarCommandResult(_player->GetGUID(), CALENDAR_ERROR_EVENT_INVALID); } void WorldSession::HandleCalendarRemoveEvent(WorldPackets::Calendar::CalendarRemoveEvent& calendarRemoveEvent) @@ -561,7 +558,7 @@ void WorldSession::SendCalendarRaidLockoutAdded(InstanceLock const* lock) { WorldPackets::Calendar::CalendarRaidLockoutAdded calendarRaidLockoutAdded; calendarRaidLockoutAdded.InstanceID = lock->GetInstanceId(); - calendarRaidLockoutAdded.ServerTime = uint32(GameTime::GetGameTime()); + calendarRaidLockoutAdded.ServerTime = *GameTime::GetWowTime(); calendarRaidLockoutAdded.MapID = int32(lock->GetMapId()); calendarRaidLockoutAdded.DifficultyID = lock->GetDifficultyId(); calendarRaidLockoutAdded.TimeRemaining = int32(std::chrono::duration_cast<Seconds>(lock->GetEffectiveExpiryTime() - GameTime::GetSystemTime()).count()); diff --git a/src/server/game/Server/Packets/CalendarPackets.cpp b/src/server/game/Server/Packets/CalendarPackets.cpp index cd0e1d3d7be..7bd73d0fc45 100644 --- a/src/server/game/Server/Packets/CalendarPackets.cpp +++ b/src/server/game/Server/Packets/CalendarPackets.cpp @@ -430,7 +430,7 @@ WorldPacket const* WorldPackets::Calendar::CalendarCommandResult::Write() WorldPacket const* WorldPackets::Calendar::CalendarRaidLockoutAdded::Write() { _worldPacket << uint64(InstanceID); - _worldPacket << uint32(ServerTime); + _worldPacket << ServerTime; _worldPacket << int32(MapID); _worldPacket << uint32(DifficultyID); _worldPacket << int32(TimeRemaining); diff --git a/src/server/game/Server/Packets/CalendarPackets.h b/src/server/game/Server/Packets/CalendarPackets.h index 4ac9b9b8a3b..e76b4162f02 100644 --- a/src/server/game/Server/Packets/CalendarPackets.h +++ b/src/server/game/Server/Packets/CalendarPackets.h @@ -487,7 +487,7 @@ namespace WorldPackets uint64 InstanceID = 0; uint32 DifficultyID = 0; int32 TimeRemaining = 0; - uint32 ServerTime = 0; + WowTime ServerTime; int32 MapID = 0; }; |