aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/TicketHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/TicketHandler.cpp')
-rw-r--r--src/server/game/Handlers/TicketHandler.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/server/game/Handlers/TicketHandler.cpp b/src/server/game/Handlers/TicketHandler.cpp
index 2da2735a3f9..7b35462e7a2 100644
--- a/src/server/game/Handlers/TicketHandler.cpp
+++ b/src/server/game/Handlers/TicketHandler.cpp
@@ -41,10 +41,15 @@ void WorldSession::HandleGMTicketCreateOpcode(WorldPacket& recvData)
}
GMTicketResponse response = GMTICKET_RESPONSE_CREATE_ERROR;
+ GmTicket* ticket = sTicketMgr->GetTicketByPlayer(GetPlayer()->GetGUID());
+
+ if (ticket && ticket->IsCompleted())
+ sTicketMgr->CloseTicket(ticket->GetId(), GetPlayer()->GetGUID());;
+
// Player must not have ticket
- if (!sTicketMgr->GetTicketByPlayer(GetPlayer()->GetGUID()))
+ if (!ticket || ticket->IsClosed())
{
- GmTicket* ticket = new GmTicket(GetPlayer(), recvData);
+ ticket = new GmTicket(GetPlayer(), recvData);
uint32 count;
std::list<uint32> times;