Core/Support: Fix a crash where ObjectAccessor::FindPlayer returned nullptr, since the player wasn't logged in_place

Closes #14842
This commit is contained in:
Carbenium
2015-06-05 23:12:20 +02:00
parent de486ebc2c
commit c0b4c7f461
2 changed files with 23 additions and 20 deletions
+14 -18
View File
@@ -38,7 +38,7 @@ std::string Ticket::FormatViewMessageString(ChatHandler& handler, char const* cl
{
std::stringstream ss;
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTGUID, _id);
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayer()->GetName().c_str());
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayerName().c_str());
if (closedName)
ss << handler.PGetParseString(LANG_COMMAND_TICKETCLOSED, closedName);
if (assignedToName)
@@ -173,13 +173,12 @@ std::string GmTicket::FormatViewMessageString(ChatHandler& handler, bool detaile
std::stringstream ss;
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTGUID, _id);
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayer()->GetName().c_str());
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayerName().c_str());
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTAGECREATE, (secsToTimeString(curTime - _createTime, true, false)).c_str());
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTAGE, (secsToTimeString(curTime - _lastModifiedTime, true, false)).c_str());
std::string name;
if (ObjectMgr::GetPlayerNameByGUID(_assignedTo, name))
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTASSIGNEDTO, name.c_str());
if (!_assignedTo.IsEmpty())
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTASSIGNEDTO, GetAssignedToName().c_str());
if (detailed)
{
@@ -196,7 +195,7 @@ std::string GmTicket::FormatViewMessageString(ChatHandler& handler, const char*
{
std::stringstream ss;
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTGUID, _id);
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayer()->GetName().c_str());
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayerName().c_str());
if (szClosedName)
ss << handler.PGetParseString(LANG_COMMAND_TICKETCLOSED, szClosedName);
if (szAssignedToName)
@@ -281,12 +280,11 @@ std::string BugTicket::FormatViewMessageString(ChatHandler& handler, bool detail
std::stringstream ss;
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTGUID, _id);
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayer()->GetName().c_str());
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayerName().c_str());
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTAGECREATE, (secsToTimeString(curTime - _createTime, true, false)).c_str());
std::string name;
if (ObjectMgr::GetPlayerNameByGUID(_assignedTo, name))
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTASSIGNEDTO, name.c_str());
if (!_assignedTo.IsEmpty())
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTASSIGNEDTO, GetAssignedToName().c_str());
if (detailed)
{
@@ -408,12 +406,11 @@ std::string ComplaintTicket::FormatViewMessageString(ChatHandler& handler, bool
std::stringstream ss;
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTGUID, _id);
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayer()->GetName().c_str());
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayerName().c_str());
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTAGECREATE, (secsToTimeString(curTime - _createTime, true, false)).c_str());
std::string name;
if (ObjectMgr::GetPlayerNameByGUID(_assignedTo, name))
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTASSIGNEDTO, name.c_str());
if (!_assignedTo.IsEmpty())
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTASSIGNEDTO, GetAssignedToName().c_str());
if (detailed)
{
@@ -495,12 +492,11 @@ std::string SuggestionTicket::FormatViewMessageString(ChatHandler& handler, bool
std::stringstream ss;
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTGUID, _id);
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayer()->GetName().c_str());
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayerName().c_str());
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTAGECREATE, (secsToTimeString(curTime - _createTime, true, false)).c_str());
std::string name;
if (ObjectMgr::GetPlayerNameByGUID(_assignedTo, name))
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTASSIGNEDTO, name.c_str());
if (!_assignedTo.IsEmpty())
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTASSIGNEDTO, GetAssignedToName().c_str());
if (detailed)
{
+9 -2
View File
@@ -93,8 +93,15 @@ public:
uint32 GetId() const { return _id; }
ObjectGuid GetPlayerGuid() const { return _playerGuid; }
Player* GetPlayer() const { return ObjectAccessor::FindPlayer(_playerGuid); }
Player* GetAssignedPlayer() const { return ObjectAccessor::FindPlayer(_assignedTo); }
Player* GetPlayer() const { return ObjectAccessor::FindConnectedPlayer(_playerGuid); }
std::string GetPlayerName() const {
std::string name;
if (!_playerGuid.IsEmpty())
ObjectMgr::GetPlayerNameByGUID(_playerGuid, name);
return name;
}
Player* GetAssignedPlayer() const { return ObjectAccessor::FindConnectedPlayer(_assignedTo); }
ObjectGuid GetAssignedToGUID() const { return _assignedTo; }
std::string GetAssignedToName() const
{