diff options
| author | kaelima <kaelima@live.se> | 2011-12-15 00:09:27 +0100 | 
|---|---|---|
| committer | kaelima <kaelima@live.se> | 2011-12-15 00:09:27 +0100 | 
| commit | e504fc88d6a32e66875934d9c6a745f096335042 (patch) | |
| tree | 1848bd2a59d37f8d4d8158f56d6a8d78c0d811a5 | |
| parent | 518df242c137ed21be10a597c73f3d26f2f73541 (diff) | |
Core/Commands: Fixed crash when closing ticket in console, introduced in db8c10c7bfcf2bbd5d36d18f56f2279a29ef5b97
| -rwxr-xr-x | src/server/game/Chat/Commands/TicketCommands.cpp | 17 | 
1 files changed, 9 insertions, 8 deletions
diff --git a/src/server/game/Chat/Commands/TicketCommands.cpp b/src/server/game/Chat/Commands/TicketCommands.cpp index 559d2186ff7..d38da9eb97c 100755 --- a/src/server/game/Chat/Commands/TicketCommands.cpp +++ b/src/server/game/Chat/Commands/TicketCommands.cpp @@ -122,28 +122,29 @@ bool ChatHandler::HandleGMTicketCloseByIdCommand(const char* args)          return true;      } -    // Ticket must be assigned to player, who tries to close it. -    uint64 guid = m_session->GetPlayer()->GetGUID(); -    if (ticket->IsAssignedNotTo(guid)) +    // Ticket should be assigned to the player who tries to close it. +    // Console can override though +    Player* player = m_session ? m_session->GetPlayer() : NULL; +    if (player && ticket->IsAssignedNotTo(player->GetGUID()))      {          PSendSysMessage(LANG_COMMAND_TICKETCANNOTCLOSE, ticket->GetId());          return true;      } -    sTicketMgr->CloseTicket(ticket->GetId(), guid); +    sTicketMgr->CloseTicket(ticket->GetId(), player ? player->GetGUID() : -1);      sTicketMgr->UpdateLastChange(); -    std::string msg = ticket->FormatMessageString(*this, m_session->GetPlayer()->GetName(), NULL, NULL, NULL); +    std::string msg = ticket->FormatMessageString(*this, player ? player->GetName() : "Console", NULL, NULL, NULL);      SendGlobalGMSysMessage(msg.c_str());      // Inform player, who submitted this ticket, that it is closed -    if (Player* player = ticket->GetPlayer()) +    if (Player* submitter = ticket->GetPlayer())      { -        if (player->IsInWorld()) +        if (submitter->IsInWorld())          {              WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4);              data << uint32(GMTICKET_RESPONSE_TICKET_DELETED); -            player->GetSession()->SendPacket(&data); +            submitter->GetSession()->SendPacket(&data);          }      }      return true;  | 
