aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2012-02-24 23:40:06 +0100
committerShauren <shauren.trinity@gmail.com>2012-02-24 23:40:06 +0100
commit0e86b3a5785c7e5eb0660d1e5c30aab25ae40645 (patch)
tree35f06fc403f7cbc6c2419684e6672e97c715f9a1 /src
parente5621dfd99f682db8118bba447966bda06bf1bc1 (diff)
Core/Calendar: Corrected structure of SMSG_CALENDAR_COMMAND_RESULT
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Calendar/CalendarMgr.cpp37
-rwxr-xr-xsrc/server/game/Handlers/CalendarHandler.cpp27
-rwxr-xr-xsrc/server/game/Server/WorldSession.h40
3 files changed, 78 insertions, 26 deletions
diff --git a/src/server/game/Calendar/CalendarMgr.cpp b/src/server/game/Calendar/CalendarMgr.cpp
index 5ad612f0c5f..e49976a48a1 100644
--- a/src/server/game/Calendar/CalendarMgr.cpp
+++ b/src/server/game/Calendar/CalendarMgr.cpp
@@ -99,7 +99,7 @@ CalendarInvite* CalendarMgr::GetInvite(uint64 inviteId)
if (it != _invites.end())
return &(it->second);
- sLog->outError("SPP: CalendarMgr::GetInvite: [" UI64FMTD "] not found!", inviteId);
+ sLog->outError("CalendarMgr::GetInvite: [" UI64FMTD "] not found!", inviteId);
return NULL;
}
@@ -109,7 +109,7 @@ CalendarEvent* CalendarMgr::GetEvent(uint64 eventId)
if (it != _events.end())
return &(it->second);
- sLog->outError("SPP: CalendarMgr::GetEvent: [" UI64FMTD "] not found!", eventId);
+ sLog->outError("CalendarMgr::GetEvent: [" UI64FMTD "] not found!", eventId);
return NULL;
}
@@ -209,8 +209,7 @@ void CalendarMgr::AddAction(CalendarAction const& action)
case CALENDAR_ACTION_MODIFY_EVENT:
{
uint64 eventId = action.Event.GetEventId();
- CalendarEvent* calendarEvent = CheckPermisions(eventId,
- action.GetGUID(), action.GetInviteId(), CALENDAR_RANK_MODERATOR);
+ CalendarEvent* calendarEvent = CheckPermisions(eventId, action.GetGUID(), action.GetInviteId(), CALENDAR_RANK_MODERATOR);
if (!calendarEvent)
return;
@@ -235,8 +234,7 @@ void CalendarMgr::AddAction(CalendarAction const& action)
}
case CALENDAR_ACTION_COPY_EVENT:
{
- CalendarEvent* calendarEvent = CheckPermisions(action.Event.GetEventId(),
- action.GetGUID(), action.GetInviteId(), CALENDAR_RANK_OWNER);
+ CalendarEvent* calendarEvent = CheckPermisions(action.Event.GetEventId(), action.GetGUID(), action.GetInviteId(), CALENDAR_RANK_OWNER);
if (!calendarEvent)
return;
@@ -257,6 +255,7 @@ void CalendarMgr::AddAction(CalendarAction const& action)
CalendarinviteIdList const invites = calendarEvent->GetInviteIdList();
for (CalendarinviteIdList::const_iterator itr = invites.begin(); itr != invites.end(); ++itr)
+ {
if (CalendarInvite* invite = GetInvite(*itr))
{
uint64 inviteId = GetFreeInviteId();
@@ -274,6 +273,7 @@ void CalendarMgr::AddAction(CalendarAction const& action)
newEvent.AddInvite(inviteId);
}
}
+ }
if (AddEvent(newEvent))
SendCalendarEvent(newEvent, CALENDAR_SENDTYPE_COPY);
@@ -284,11 +284,9 @@ void CalendarMgr::AddAction(CalendarAction const& action)
{
uint64 eventId = action.Event.GetEventId();
uint32 flags = action.Event.GetFlags();
- sLog->outError("CalendarMgr::AddAction:: Flags %u", flags);
// FIXME - Use of Flags here!
- CalendarEvent* calendarEvent = CheckPermisions(eventId,
- action.GetGUID(), action.GetInviteId(), CALENDAR_RANK_OWNER);
+ CalendarEvent* calendarEvent = CheckPermisions(eventId, action.GetGUID(), action.GetInviteId(), CALENDAR_RANK_OWNER);
if (!calendarEvent)
return;
@@ -304,9 +302,7 @@ void CalendarMgr::AddAction(CalendarAction const& action)
case CALENDAR_ACTION_ADD_EVENT_INVITE:
{
uint64 eventId = action.Invite.GetEventId();
- CalendarEvent* calendarEvent = CheckPermisions(eventId,
- action.GetGUID(), action.GetInviteId(), CALENDAR_RANK_MODERATOR);
-
+ CalendarEvent* calendarEvent = CheckPermisions(eventId, action.GetGUID(), action.GetInviteId(), CALENDAR_RANK_MODERATOR);
if (!calendarEvent)
return;
@@ -324,8 +320,7 @@ void CalendarMgr::AddAction(CalendarAction const& action)
{
uint64 eventId = action.Event.GetEventId();
CalendarEvent* calendarEvent = GetEvent(eventId);
- CheckPermisions(eventId,
- action.GetGUID(), action.GetInviteId(), CALENDAR_RANK_MODERATOR);
+ CheckPermisions(eventId, action.GetGUID(), action.GetInviteId(), CALENDAR_RANK_MODERATOR);
if (!calendarEvent || !(calendarEvent->GetFlags() & CALENDAR_FLAG_GUILD_ONLY)
|| !calendarEvent->GetGuildId() || calendarEvent->GetGuildId() != action.GetExtraData())
@@ -385,7 +380,6 @@ void CalendarMgr::AddAction(CalendarAction const& action)
if (!calendarEvent || !invite || !calendarEvent->HasInvite(inviteId))
return;
- sLog->outError("SPP: CALENDAR_ACTION_MODIFY_MODERATOR_EVENT_INVITE: All OK");
invite->SetStatus(action.Invite.GetStatus());
SendCalendarEventModeratorStatusAlert(*invite);
break;
@@ -394,8 +388,7 @@ void CalendarMgr::AddAction(CalendarAction const& action)
{
uint64 eventId = action.Invite.GetEventId();
uint64 inviteId = action.Invite.GetInviteId();
- CalendarEvent* calendarEvent = CheckPermisions(eventId,
- action.GetGUID(), action.GetInviteId(), CALENDAR_RANK_MODERATOR);
+ CalendarEvent* calendarEvent = CheckPermisions(eventId, action.GetGUID(), action.GetInviteId(), CALENDAR_RANK_MODERATOR);
if (!calendarEvent)
return;
@@ -418,7 +411,7 @@ bool CalendarMgr::AddEvent(CalendarEvent const& newEvent)
uint64 eventId = newEvent.GetEventId();
if (_events.find(eventId) != _events.end())
{
- sLog->outError("CalendarMgr::addEvent: Event [" UI64FMTD "] exists", eventId);
+ sLog->outError("CalendarMgr::AddEvent: Event [" UI64FMTD "] exists", eventId);
return false;
}
@@ -431,7 +424,7 @@ bool CalendarMgr::RemoveEvent(uint64 eventId)
CalendarEventMap::iterator itr = _events.find(eventId);
if (itr == _events.end())
{
- sLog->outError("CalendarMgr::removeEvent: Event [" UI64FMTD "] does not exist", eventId);
+ sLog->outError("CalendarMgr::RemoveEvent: Event [" UI64FMTD "] does not exist", eventId);
return false;
}
@@ -467,13 +460,13 @@ bool CalendarMgr::AddInvite(CalendarInvite const& newInvite)
uint64 inviteId = newInvite.GetInviteId();
if (!inviteId)
{
- sLog->outError("CalendarMgr::addInvite: Cant add Invite 0");
+ sLog->outError("CalendarMgr::AddInvite: Cant add Invite 0");
return false;
}
if (_invites.find(inviteId) != _invites.end())
{
- sLog->outError("CalendarMgr::addInvite: Invite [" UI64FMTD "] exists", inviteId);
+ sLog->outError("CalendarMgr::AddInvite: Invite [" UI64FMTD "] exists", inviteId);
return false;
}
@@ -489,7 +482,7 @@ uint64 CalendarMgr::RemoveInvite(uint64 inviteId)
CalendarInviteMap::iterator itr = _invites.find(inviteId);
if (itr == _invites.end())
{
- sLog->outError("CalendarMgr::removeInvite: Invite [" UI64FMTD "] does not exist", inviteId);
+ sLog->outError("CalendarMgr::RemoveInvite: Invite [" UI64FMTD "] does not exist", inviteId);
return 0;
}
diff --git a/src/server/game/Handlers/CalendarHandler.cpp b/src/server/game/Handlers/CalendarHandler.cpp
index 92cae23e5b2..b5a77dd52e0 100755
--- a/src/server/game/Handlers/CalendarHandler.cpp
+++ b/src/server/game/Handlers/CalendarHandler.cpp
@@ -237,6 +237,7 @@ void WorldSession::HandleCalendarAddEvent(WorldPacket& recv_data)
"] differs", guid, inviteCount, invitee);
return;
}
+
inviteId = sCalendarMgr->GetFreeInviteId();
}
else
@@ -386,6 +387,12 @@ void WorldSession::HandleCalendarEventInvite(WorldPacket& recv_data)
UI64FMTD "] InviteId [" UI64FMTD "] Name %s ([" UI64FMTD "]), status %u, "
"Rank %u", guid, eventId, inviteId, name.c_str(), invitee, status, rank);
+ if (!invitee)
+ {
+ SendCalendarCommandResult(CALENDAR_ERROR_PLAYER_NOT_FOUND);
+ return;
+ }
+
CalendarAction action;
action.SetAction(CALENDAR_ACTION_ADD_EVENT_INVITE);
action.SetGUID(guid);
@@ -817,13 +824,27 @@ void WorldSession::SendCalendarRaidLockoutUpdated(InstanceSave const* save)
SendPacket(&data);
}
-void WorldSession::SendCalendarCommandResult(uint32 value)
+void WorldSession::SendCalendarCommandResult(CalendarError err, char const* param /*= NULL*/)
{
uint64 guid = _player->GetGUID();
- sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_COMMAND_RESULT [" UI64FMTD "] Value: %u", guid, value);
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_COMMAND_RESULT [" UI64FMTD "] Value: %u", guid, err);
WorldPacket data(SMSG_CALENDAR_COMMAND_RESULT, 0);
- data << uint16(0) << uint32(0) << uint32(value);
+ data << uint32(0);
+ data << uint8(0);
+ switch (err)
+ {
+ case CALENDAR_ERROR_OTHER_INVITES_EXCEEDED:
+ case CALENDAR_ERROR_ALREADY_INVITED_TO_EVENT_S:
+ case CALENDAR_ERROR_IGNORING_YOU_S:
+ data << param;
+ break;
+ default:
+ data << uint8(0);
+ break;
+ }
+
+ data << uint32(err);
SendPacket(&data);
}
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 71ef13a159f..35a85753c20 100755
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -141,6 +141,44 @@ enum CharterTypes
ARENA_TEAM_CHARTER_5v5_TYPE = 5
};
+enum CalendarError
+{
+ CALENDAR_OK = 0,
+ CALENDAR_ERROR_GUILD_EVENTS_EXCEEDED = 1,
+ CALENDAR_ERROR_EVENTS_EXCEEDED = 2,
+ CALENDAR_ERROR_SELF_INVITES_EXCEEDED = 3,
+ CALENDAR_ERROR_OTHER_INVITES_EXCEEDED = 4,
+ CALENDAR_ERROR_PERMISSIONS = 5,
+ CALENDAR_ERROR_EVENT_INVALID = 6,
+ CALENDAR_ERROR_NOT_INVITED = 7,
+ CALENDAR_ERROR_INTERNAL = 8,
+ CALENDAR_ERROR_GUILD_PLAYER_NOT_IN_GUILD = 9,
+ CALENDAR_ERROR_ALREADY_INVITED_TO_EVENT_S = 10,
+ CALENDAR_ERROR_PLAYER_NOT_FOUND = 11,
+ CALENDAR_ERROR_NOT_ALLIED = 12,
+ CALENDAR_ERROR_IGNORING_YOU_S = 13,
+ CALENDAR_ERROR_INVITES_EXCEEDED = 14,
+ CALENDAR_ERROR_INVALID_DATE = 16,
+ CALENDAR_ERROR_INVALID_TIME = 17,
+
+ CALENDAR_ERROR_NEEDS_TITLE = 19,
+ CALENDAR_ERROR_EVENT_PASSED = 20,
+ CALENDAR_ERROR_EVENT_LOCKED = 21,
+ CALENDAR_ERROR_DELETE_CREATOR_FAILED = 22,
+ CALENDAR_ERROR_SYSTEM_DISABLED = 24,
+ CALENDAR_ERROR_RESTRICTED_ACCOUNT = 25,
+ CALENDAR_ERROR_ARENA_EVENTS_EXCEEDED = 26,
+ CALENDAR_ERROR_RESTRICTED_LEVEL = 27,
+ CALENDAR_ERROR_USER_SQUELCHED = 28,
+ CALENDAR_ERROR_NO_INVITE = 29,
+
+ CALENDAR_ERROR_EVENT_WRONG_SERVER = 36,
+ CALENDAR_ERROR_INVITE_WRONG_SERVER = 37,
+ CALENDAR_ERROR_NO_GUILD_INVITES = 38,
+ CALENDAR_ERROR_INVALID_SIGNUP = 39,
+ CALENDAR_ERROR_NO_MODERATOR = 40
+};
+
//class to deal with packet processing
//allows to determine if next packet is safe to be processed
class PacketFilter
@@ -892,9 +930,9 @@ class WorldSession
void SendCalendarEventStatus(CalendarEvent const& calendarEvent, CalendarInvite const& invite);
void SendCalendarEventModeratorStatusAlert(CalendarInvite const& invite);
void SendCalendarClearPendingAction();
- void SendCalendarCommandResult(uint32 value);
void SendCalendarRaidLockout(InstanceSave* save, bool add);
void SendCalendarRaidLockoutUpdated(InstanceSave const* save);
+ void SendCalendarCommandResult(CalendarError err, char const* param = NULL);
void HandleSpellClick(WorldPacket& recv_data);
void HandleMirrorImageDataRequest(WorldPacket& recv_data);