diff options
| -rw-r--r-- | src/server/scripts/Commands/cs_ticket.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/server/scripts/Commands/cs_ticket.cpp b/src/server/scripts/Commands/cs_ticket.cpp index d36ae4902c..a4159115b4 100644 --- a/src/server/scripts/Commands/cs_ticket.cpp +++ b/src/server/scripts/Commands/cs_ticket.cpp @@ -223,7 +223,9 @@ public: if (!*args) return false; - uint32 ticketId = atoi(args); + char* ticketIdStr = strtok((char*)args, " "); + uint32 ticketId = atoi(ticketIdStr); + GmTicket* ticket = sTicketMgr->GetTicket(ticketId); if (!ticket || ticket->IsClosed() || ticket->IsCompleted()) { @@ -231,6 +233,20 @@ public: return true; } + char* response = strtok(NULL, "\n"); + if (response) + { + // Cannot add response to ticket, assigned to someone else + //! Console excluded + Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr; + if (player && ticket->IsAssignedNotTo(player->GetGUID())) + { + handler->PSendSysMessage(LANG_COMMAND_TICKETALREADYASSIGNED, ticket->GetId()); + return true; + } + ticket->AppendResponse(response); + } + if (Player* player = ticket->GetPlayer()) ticket->SendResponse(player->GetSession()); |
