inline bool ChatHandler::_HandleGMTicketResponseAppendCommand(const char* args, bool newLine) { if (!*args) return false; char* sTicketId = strtok((char*)args, " "); uint32 ticketId = atoi(sTicketId); char* response = strtok(NULL, "\n"); if (!response) return false; GmTicket* ticket = sTicketMgr->GetTicket(ticketId); if (!ticket || !ticket->IsClosed()) { PSendSysMessage(LANG_COMMAND_TICKETNOTEXIST); return true; } // Cannot add response to ticket, assigned to someone else Player* player = m_session->GetPlayer(); if (ticket->IsAssignedNotTo(player->GetGUID())) { PSendSysMessage(LANG_COMMAND_TICKETALREADYASSIGNED, ticket->GetId()); return true; } SQLTransaction trans = SQLTransaction(NULL); ticket->AppendResponse(response); if (newLine) ticket->AppendResponse("\n"); ticket->SaveToDB(trans); return true; }
static bool _HandleGMTicketResponseAppendCommand(char const* args, bool newLine, ChatHandler* handler) { if (!*args) return false; char* ticketIdStr = strtok((char*)args, " "); uint32 ticketId = atoi(ticketIdStr); char* response = strtok(NULL, "\n"); if (!response) return false; GmTicket* ticket = sTicketMgr->GetTicket(ticketId); if (!ticket || ticket->IsClosed()) { handler->PSendSysMessage(LANG_COMMAND_TICKETNOTEXIST); return true; } // 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; } SQLTransaction trans = SQLTransaction(NULL); ticket->AppendResponse(response); if (newLine) ticket->AppendResponse("\n"); ticket->SaveToDB(trans); return true; }
static bool HandleGMTicketCompleteCommand(ChatHandler* handler, char const* args) { if (!*args) return false; char* ticketIdStr = strtok((char*)args, " "); uint32 ticketId = atoi(ticketIdStr); GmTicket* ticket = sTicketMgr->GetTicket(ticketId); if (!ticket || ticket->IsClosed() || ticket->IsCompleted()) { handler->SendSysMessage(LANG_COMMAND_TICKETNOTEXIST); 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()); Player* gm = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr; SQLTransaction trans = SQLTransaction(NULL); ticket->SetResolvedBy(gm ? gm->GetGUID() : ObjectGuid(uint64(0))); ticket->SetCompleted(); ticket->SaveToDB(trans); std::string msg = ticket->FormatMessageString(*handler, NULL, NULL, NULL, NULL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console"); handler->SendGlobalGMSysMessage(msg.c_str()); sTicketMgr->UpdateLastChange(); return true; }
static bool _HandleGMTicketResponseAppendCommand(char const* args, bool newLine, ChatHandler* handler) { if (!*args) return false; char* ticketIdStr = strtok((char*)args, " "); uint32 ticketId = atoi(ticketIdStr); char* response = strtok(NULL, "\n"); if (!response) return false; GmTicket* ticket = sTicketMgr->GetTicket(ticketId); if (!ticket || ticket->IsClosed()) { handler->PSendSysMessage(LANG_COMMAND_TICKETNOTEXIST); return true; } // Cannot add response to ticket, assigned to someone else. Console excluded. Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : NULL; if (player && ticket->IsAssignedNotTo(player->GetGUID())) { handler->PSendSysMessage(LANG_COMMAND_TICKETALREADYASSIGNED, ticket->GetId()); return true; } // Set the ticket text and save it. SQLTransaction trans = SQLTransaction(NULL); if (newLine) ticket->SetResponse(response); // Makes a new response (form: new). else ticket->AppendResponse(response); // Puts the response over the old one (form: old + new). ticket->SaveToDB(trans); // Update the last change time. sTicketMgr->UpdateLastChange(); return true; }