64 inviteInfo.
EventID = invite->GetEventId();
65 inviteInfo.
InviteID = invite->GetInviteId();
67 inviteInfo.
Status = invite->GetStatus();
77 eventInfo.
EventID =
event->GetEventId();
83 eventInfo.
Flags =
event->GetFlags();
84 eventInfo.
OwnerGuid =
event->GetOwnerGUID();
85 eventInfo.
TextureID =
event->GetTextureId();
91 lockoutInfo.
MapID = lock->GetMapId();
94 lockoutInfo.
InstanceID = lock->GetInstanceId();
206 time_t oldEventTime = calendarEvent->GetDate();
216 sCalendarMgr->SendCalendarEventUpdateAlert(*calendarEvent, oldEventTime);
244 if (oldEvent->IsGuildEvent() || oldEvent->IsGuildAnnouncement())
254 if (oldEvent->GetOwnerGUID() != guid)
262 if (oldEvent->IsGuildEvent() || oldEvent->IsGuildAnnouncement())
292 if (invites.size() > 1)
295 for (CalendarInviteStore::const_iterator itr = invites.begin(); itr != invites.end(); ++itr)
298 if (invites.size() > 1)
312 eventId = calendarEventInvite.
EventID;
314 bool isSignUp = calendarEventInvite.
IsSignUp;
316 std::string inviteeName = calendarEventInvite.
Name;
321 auto createInvite = [
this, playerGuid, inviteeName, eventId, isSignUp](
ObjectGuid const& inviteeGuid,
Team inviteeTeam,
ObjectGuid::LowType inviteeGuildId,
bool inviteeIsIngoring)
332 if (inviteeIsIngoring)
342 if (calendarEvent->IsGuildEvent() && calendarEvent->GetGuildId() == inviteeGuildId)
371 createInvite(player->GetGUID(), player->GetTeam(), player->GetGuildId(), player->GetSocial()->HasIgnore(playerGuid,
GetAccountGUID()));
387 bool isIgnoring = result != nullptr;
388 continuation(inviteeGuid, inviteeTeam, inviteeGuildId, isIgnoring);
401 if (calendarEvent->IsGuildEvent() && calendarEvent->GetGuildId() !=
_player->
GetGuildId())
435 sCalendarMgr->SendCalendarEventStatus(*calendarEvent, *invite);
449 TC_LOG_DEBUG(
"network",
"CMSG_CALENDAR_REMOVE_INVITE [{}] EventId [{}], ownerInviteId [{}], Invitee ([{}] id: [{}])",
454 if (calendarEvent->GetOwnerGUID() == calendarRemoveInvite.
Guid)
470 TC_LOG_DEBUG(
"network",
"CMSG_CALENDAR_STATUS [{}] EventId [{}] ownerInviteId [{}], Invitee ([{}] id: [{}], status {}",
480 sCalendarMgr->SendCalendarEventStatus(*calendarEvent, *invite);
494 TC_LOG_DEBUG(
"network",
"CMSG_CALENDAR_MODERATOR_STATUS [{}] EventID [{}] ModeratorID [{}], Invitee ([{}] InviteID: [{}], Status {}",
496 calendarModeratorStatus.
Status);
504 sCalendarMgr->SendCalendarEventModeratorStatusAlert(*calendarEvent, *invite);
516 TC_LOG_DEBUG(
"network",
"CMSG_CALENDAR_COMPLAIN [{}] EventId [{}] guid [{}] InviteId [{}]", guid.
ToString(), calendarComplain.
EventID,
527 TC_LOG_DEBUG(
"network",
"CMSG_CALENDAR_GET_NUM_PENDING: [{}] Pending: {}", guid.
ToString(), pending);
534 TC_LOG_DEBUG(
"network",
"CMSG_SET_SAVED_INSTANCE_EXTEND - MapId: {}, Difficulty: {}, ToggleExtend: {}", setSavedInstanceExtend.
MapID, setSavedInstanceExtend.
DifficultyID, setSavedInstanceExtend.
Extend ?
"On" :
"Off");
541 { uint32(setSavedInstanceExtend.MapID), Difficulty(setSavedInstanceExtend.DifficultyID) }, setSavedInstanceExtend.
Extend);
543 if (expiryTimes.first == InstanceResetTimePoint::min())
548 calendarRaidLockoutUpdated.
MapID = setSavedInstanceExtend.
MapID;
std::set< CalendarEvent * > CalendarEventStore
@ CALENDAR_ERROR_INTERNAL
@ CALENDAR_ERROR_NO_INVITE
@ CALENDAR_ERROR_EVENT_PASSED
@ CALENDAR_ERROR_EVENT_LOCKED
@ CALENDAR_ERROR_NOT_ALLIED
@ CALENDAR_ERROR_EVENTS_EXCEEDED
@ CALENDAR_ERROR_NO_GUILD_INVITES
@ CALENDAR_ERROR_DELETE_CREATOR_FAILED
@ CALENDAR_ERROR_GUILD_EVENTS_EXCEEDED
@ CALENDAR_ERROR_IGNORING_YOU_S
@ CALENDAR_ERROR_PLAYER_NOT_FOUND
@ CALENDAR_ERROR_EVENT_INVALID
@ CALENDAR_ERROR_GUILD_PLAYER_NOT_IN_GUILD
#define CALENDAR_DEFAULT_RESPONSE_TIME
std::vector< CalendarInvite * > CalendarInviteStore
@ CALENDAR_STATUS_TENTATIVE
@ CALENDAR_STATUS_NOT_SIGNED_UP
@ CALENDAR_STATUS_INVITED
@ CALENDAR_STATUS_SIGNED_UP
@ CALENDAR_STATUS_REMOVED
@ CALENDAR_MAX_GUILD_EVENTS
@ CALENDAR_CREATE_EVENT_COOLDOWN
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
std::shared_ptr< ResultSet > QueryResult
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
#define TC_LOG_DEBUG(filterType__,...)
bool normalizePlayerName(std::string &name)
std::optional< T > Optional
Optional helper class to wrap optional values within.
T & AddCallback(T &&query)
Difficulty GetDifficultyId() const
InstanceResetTimePoint GetEffectiveExpiryTime() const
uint32 GetInstanceId() const
LowType GetCounter() const
static ObjectGuid const Empty
std::string ToString() const
static ObjectGuid GetGUID(Object const *o)
static Team TeamForRace(uint8 race)
ObjectGuid::LowType GetGuildId() const
QueryCallback && WithCallback(std::function< void(QueryResult)> &&callback)
constexpr uint32 GetMapId() const
CalendarAddEventInfo EventInfo
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< CalendarSendCalendarInviteInfo > Invites
WorldPacket const * Write() override
std::vector< CalendarSendCalendarRaidLockoutInfo > RaidLockouts
std::vector< CalendarSendCalendarEventInfo > Events
CalendarUpdateEventInfo EventInfo
void HandleCalendarCopyEvent(WorldPackets::Calendar::CalendarCopyEvent &calendarCopyEvent)
time_t GetCalendarEventCreationCooldown() const
void HandleCalendarCommunityInvite(WorldPackets::Calendar::CalendarCommunityInviteRequest &calendarCommunityInvite)
void HandleCalendarRsvp(WorldPackets::Calendar::CalendarRSVP &calendarRSVP)
void HandleCalendarGetEvent(WorldPackets::Calendar::CalendarGetEvent &calendarGetEvent)
void HandleCalendarEventRemoveInvite(WorldPackets::Calendar::CalendarRemoveInvite &calendarRemoveInvite)
void HandleCalendarGetCalendar(WorldPackets::Calendar::CalendarGetCalendar &calendarGetCalendar)
void HandleCalendarComplain(WorldPackets::Calendar::CalendarComplain &calendarComplain)
ObjectGuid GetAccountGUID() const
void HandleSetSavedInstanceExtend(WorldPackets::Calendar::SetSavedInstanceExtend &setSavedInstanceExtend)
Minutes GetTimezoneOffset() const
void SendCalendarRaidLockoutAdded(InstanceLock const *lock)
QueryCallbackProcessor & GetQueryProcessor()
void HandleCalendarEventSignup(WorldPackets::Calendar::CalendarEventSignUp &calendarEventSignUp)
void HandleCalendarUpdateEvent(WorldPackets::Calendar::CalendarUpdateEvent &calendarUpdateEvent)
void SetCalendarEventCreationCooldown(time_t cooldown)
void HandleCalendarStatus(WorldPackets::Calendar::CalendarStatus &calendarStatus)
void SendPacket(WorldPacket const *packet, bool forced=false)
Send a packet to the client.
void HandleCalendarInvite(WorldPackets::Calendar::CalendarInvite &calendarEventInvite)
void HandleCalendarModeratorStatus(WorldPackets::Calendar::CalendarModeratorStatusQuery &calendarModeratorStatus)
void HandleCalendarRemoveEvent(WorldPackets::Calendar::CalendarRemoveEvent &calendarRemoveEvent)
void HandleCalendarGetNumPending(WorldPackets::Calendar::CalendarGetNumPending &calendarGetNumPending)
void HandleCalendarAddEvent(WorldPackets::Calendar::CalendarAddEvent &calendarAddEvent)
void SendCalendarRaidLockoutRemoved(InstanceLock const *lock)
std::time_t GetUnixTimeFromUtcTime() const
void SetUtcTimeFromUnixTime(std::time_t unixTime)
@ CONFIG_ALLOW_TWO_SIDE_INTERACTION_CALENDAR
WowTime const * GetWowTime()
WowTime const * GetUtcWowTime()
SystemTimePoint GetSystemTime()
Current chrono system_clock time point.
TC_GAME_API Player * FindConnectedPlayerByName(std::string_view name)
std::string StringFormat(FormatString< Args... > fmt, Args &&... args)
Default TC string format function.
bool IsGuildAnnouncement() const
bool IsGuildEvent() const
uint64 GetEventId() const
void SetGuildId(ObjectGuid::LowType guildId)
void SetDate(time_t date)
ObjectGuid::LowType GuildId
Array< CalendarAddEventInviteInfo, CALENDAR_MAX_INVITES > Invites