29 static std::vector<ChatCommand> ticketBugCommandTable =
42 static std::vector<ChatCommand> ticketSuggestCommandTable =
55 static std::vector<ChatCommand> ticketResponseCommandTable =
60 static std::vector<ChatCommand> ticketCommandTable =
81 static std::vector<ChatCommand> commandTable =
93 char* ticketIdStr = strtok((
char*)args,
" ");
94 uint32 ticketId = atoi(ticketIdStr);
96 char* targetStr = strtok(NULL,
" ");
100 std::string target(targetStr);
152 uint32 ticketId = atoi(args);
178 if (submitter->IsInWorld())
182 submitter->GetSession()->SendPacket(&data);
199 char* ticketIdStr = strtok((
char*)args,
" ");
200 uint32 ticketId = atoi(ticketIdStr);
202 char* comment = strtok(NULL,
"\n");
239 uint32 ticketId = atoi(args);
261 if (player->IsInWorld())
266 player->GetSession()->SendPacket(&data);
294 uint32 ticketId = atoi(args);
311 if (assignedPlayer && assignedPlayer->
IsInWorld())
323 if (security > mySecurity)
347 uint32 ticketId = atoi(args);
369 char* ticketIdStr = strtok((
char*)args,
" ");
370 uint32 ticketId = atoi(ticketIdStr);
372 char* targetStr = strtok(NULL,
" ");
376 std::string target(targetStr);
380 T* ticket =
sTicketMgr->GetTicket<T>(ticketId);
381 if (!ticket || ticket->IsClosed())
397 if (ticket->IsAssignedTo(targetGuid))
406 if (player && ticket->IsAssignedNotTo(player->
GetGUID()))
417 ticket->SaveToDB(trans);
419 std::string msg = ticket->FormatMessageString(*handler, NULL, target.c_str(), NULL, NULL);
430 uint32 ticketId = atoi(args);
431 T* ticket =
sTicketMgr->GetTicket<T>(ticketId);
432 if (!ticket || ticket->IsClosed())
441 if (player && ticket->IsAssignedNotTo(player->
GetGUID()))
447 sTicketMgr->CloseTicket<T>(ticket->GetTicketId(), player ? player->
GetGUID() : -1);
449 std::string msg = ticket->FormatMessageString(*handler, player ? player->
GetName().c_str() :
"Console", NULL, NULL, NULL);
478 char* ticketIdStr = strtok((
char*)args,
" ");
479 uint32 ticketId = atoi(ticketIdStr);
481 char* comment = strtok(NULL,
"\n");
485 T* ticket =
sTicketMgr->GetTicket<T>(ticketId);
486 if (!ticket || ticket->IsClosed())
495 if (player && ticket->IsAssignedNotTo(player->
GetGUID()))
502 ticket->SetComment(comment);
503 ticket->SaveToDB(trans);
506 std::string msg = ticket->FormatMessageString(*handler, NULL, ticket->GetAssignedToName().c_str(), NULL, NULL);
519 uint32 ticketId = atoi(args);
520 T* ticket =
sTicketMgr->GetTicket<T>(ticketId);
527 if (!ticket->IsClosed())
536 sTicketMgr->RemoveTicket<T>(ticket->GetTicketId());
557 uint32 ticketId = atoi(args);
558 T* ticket =
sTicketMgr->GetTicket<T>(ticketId);
559 if (!ticket || ticket->IsClosed())
565 if (!ticket->IsAssigned())
573 Player* assignedPlayer = ticket->GetAssignedPlayer();
578 uint64 guid = ticket->GetAssignedToGUID();
586 if (security > mySecurity)
592 std::string assignedTo = ticket->GetAssignedToName();
594 ticket->SetUnassigned();
595 ticket->SaveToDB(trans);
597 std::string msg = ticket->FormatMessageString(*handler, NULL, assignedTo.c_str(), handler->
GetSession() ? handler->
GetSession()->
GetPlayer()->
GetName().c_str() :
"Console", NULL);
609 uint32 ticketId = atoi(args);
610 T* ticket =
sTicketMgr->GetTicket<T>(ticketId);
611 if (!ticket || ticket->IsClosed())
617 handler->
SendSysMessage(ticket->FormatMessageString(*handler,
true).c_str());
642 uint32 ticketId = atoi(args);
651 if (player->IsInWorld())
652 sTicketMgr->SendGmResponsee(player->GetSession(), ticket);
667 uint32 ticketId = atoi(args);
678 if (player->IsInWorld())
679 sTicketMgr->SendGmTicket(player->GetSession(), ticket);
711 std::string name(args);
718 guid = player->GetGUID();
750 char* ticketIdStr = strtok((
char*)args,
" ");
751 uint32 ticketId = atoi(ticketIdStr);
753 char* response = strtok(NULL,
"\n");
@ LANG_COMMAND_TICKETRESET
@ LANG_COMMAND_TICKETALREADYASSIGNED
@ LANG_COMMAND_TICKETUNASSIGNSECURITY
@ LANG_COMMAND_TICKETCANNOTCLOSE
@ LANG_COMMAND_TICKETCLOSEFIRST
@ LANG_COMMAND_TICKETNOTASSIGNED
@ LANG_COMMAND_TICKETASSIGNERROR_B
@ LANG_COMMAND_TICKETPENDING
@ LANG_COMMAND_TICKETLISTADDCOMMENT
@ LANG_COMMAND_TICKETASSIGNERROR_A
@ LANG_COMMAND_TICKETNOTEXIST
bool normalizePlayerName(std::string &name)
@ TICKET_IN_ESCALATION_QUEUE
@ GMTICKET_RESPONSE_TICKET_DELETED
Skyfire::AutoPtr< Transaction, Skyfire::Mutex > SQLTransaction
static bool IsAdminAccount(AccountTypes gmlevel)
static AccountTypes GetSecurity(uint32 accountId)
static bool HasPermission(uint32 accountId, uint32 permission, uint32 realmId)
std::string PGetParseString(int32 entry,...) const
void SendGlobalGMSysMessage(const char *str)
WorldSession * GetSession()
void PSendSysMessage(const char *format,...) ATTR_PRINTF(2
virtual void SendSysMessage(const char *str)
CommandScript(const char *name)
void SetUnassigned() override
std::string FormatMessageString(ChatHandler &handler, bool detailed=false) const override
void AppendResponse(std::string const &response)
GMTicketEscalationStatus GetEscalatedStatus() const
void SetEscalatedStatus(GMTicketEscalationStatus escalatedStatus)
void SaveToDB(SQLTransaction &trans) const OVERRIDE
WorldSession * GetSession() const
virtual void SetAssignedTo(uint64 assignedTo, bool=false)
uint32 GetTicketId() const
std::string GetAssignedToName() const
bool IsAssignedTo(uint64 guid) const
void SetComment(std::string comment)
bool IsAssignedNotTo(uint64 guid) const
Player * GetAssignedPlayer() const
Player * GetPlayer() const
uint64 GetAssignedToGUID() const
static Player * GetPlayer(WorldObject &object, uint64 guid)
std::string const & GetName() const
AccountTypes GetSecurity() const
Player * GetPlayer() const
static bool HandleGMTicketResponseAppendLnCommand(ChatHandler *handler, char const *args)
static bool HandleGMTicketListOnlineCommand(ChatHandler *handler, char const *)
static bool HandleGMTicketResetCommand(ChatHandler *handler, char const *)
static bool HandleGMTicketGetByNameCommand(ChatHandler *handler, char const *args)
static bool HandleGMTicketCompleteCommand(ChatHandler *handler, char const *args)
std::vector< ChatCommand > GetCommands() const
static bool HandleTicketResetCommand(ChatHandler *handler, char const *)
static bool HandleGMTicketListCommand(ChatHandler *handler, char const *)
static bool HandleTicketDeleteByIdCommand(ChatHandler *handler, char const *args)
static bool HandleGMTicketDeleteByIdCommand(ChatHandler *handler, char const *args)
static bool HandleTicketAssignToCommand(ChatHandler *handler, char const *args)
static bool HandleTicketUnAssignCommand(ChatHandler *handler, char const *args)
static bool HandleTicketGetByIdCommand(ChatHandler *handler, char const *args)
static bool HandleTicketListClosedCommand(ChatHandler *handler, char const *)
static bool HandleTicketListCommand(ChatHandler *handler, char const *)
static bool HandleTicketCloseByIdCommand(ChatHandler *handler, char const *args)
static bool HandleGMTicketResponseAppendCommand(ChatHandler *handler, char const *args)
static bool HandleGMTicketEscalateCommand(ChatHandler *handler, char const *args)
static bool HandleGMTicketAssignToCommand(ChatHandler *handler, char const *args)
static bool HandleTicketCommentCommand(ChatHandler *handler, char const *args)
static bool HandleGMTicketCloseByIdCommand(ChatHandler *handler, char const *args)
static bool HandleGMTicketListClosedCommand(ChatHandler *handler, char const *)
static bool HandleToggleGMTicketSystem(ChatHandler *handler, char const *)
static bool HandleGMTicketGetByIdCommand(ChatHandler *handler, char const *args)
static bool HandleGMTicketUnAssignCommand(ChatHandler *handler, char const *args)
static bool HandleGMTicketCommentCommand(ChatHandler *handler, char const *args)
static bool _HandleGMTicketResponseAppendCommand(char const *args, bool newLine, ChatHandler *handler)
static bool HandleGMTicketListEscalatedCommand(ChatHandler *handler, char const *)
void AddSC_ticket_commandscript()
uint32 realmID
Id of the realm.
@ CONFIG_TICKETS_GM_ENABLED
@ RBAC_PERM_COMMANDS_BE_ASSIGNED_TICKET
@ RBAC_PERM_COMMAND_SUPPORT_BUG_COMMENT
@ RBAC_PERM_COMMAND_SUPPORT_SUGGEST_RESET
@ RBAC_PERM_COMMAND_SUPPORT_SUGGEST_ASSIGN
@ RBAC_PERM_COMMAND_SUPPORT_BUG_RESET
@ RBAC_PERM_COMMAND_SUPPORT_SUGGEST
@ RBAC_PERM_COMMAND_TICKET_ESCALATEDLIST
@ RBAC_PERM_COMMAND_TICKET_ONLINELIST
@ RBAC_PERM_COMMAND_SUPPORT_BUG
@ RBAC_PERM_COMMAND_TICKET_RESPONSE_APPENDLN
@ RBAC_PERM_COMMAND_SUPPORT_SUGGEST_UNASSIGN
@ RBAC_PERM_COMMAND_TICKET_RESPONSE_APPEND
@ RBAC_PERM_COMMAND_SUPPORT_BUG_UNASSIGN
@ RBAC_PERM_COMMAND_SUPPORT_SUGGEST_CLOSE
@ RBAC_PERM_COMMAND_TICKET_RESPONSE
@ RBAC_PERM_COMMAND_TICKET_COMMENT
@ RBAC_PERM_COMMAND_TICKET_LIST
@ RBAC_PERM_COMMAND_SUPPORT_BUG_VIEW
@ RBAC_PERM_COMMAND_SUPPORT_SUGGEST_CLOSEDLIST
@ RBAC_PERM_COMMAND_TICKET_TOGGLESYSTEM
@ RBAC_PERM_COMMAND_TICKET_CLOSEDLIST
@ RBAC_PERM_COMMAND_TICKET_UNASSIGN
@ RBAC_PERM_COMMAND_TICKET_DELETE
@ RBAC_PERM_COMMAND_SUPPORT_SUGGEST_DELETE
@ RBAC_PERM_COMMAND_TICKET_ESCALATE
@ RBAC_PERM_COMMAND_TICKET
@ RBAC_PERM_COMMAND_TICKET_COMPLETE
@ RBAC_PERM_COMMAND_SUPPORT_BUG_DELETE
@ RBAC_PERM_COMMAND_TICKET_RESET
@ RBAC_PERM_COMMAND_SUPPORT_SUGGEST_VIEW
@ RBAC_PERM_COMMAND_SUPPORT_BUG_ASSIGN
@ RBAC_PERM_COMMAND_SUPPORT_SUGGEST_COMMENT
@ RBAC_PERM_COMMAND_TICKET_VIEWNAME
@ RBAC_PERM_COMMAND_TICKET_VIEWID
@ RBAC_PERM_COMMAND_SUPPORT_BUG_CLOSE
@ RBAC_PERM_COMMAND_SUPPORT_BUG_CLOSEDLIST
@ RBAC_PERM_COMMAND_SUPPORT_SUGGEST_LIST
@ RBAC_PERM_COMMAND_TICKET_ASSIGN
@ RBAC_PERM_COMMAND_SUPPORT_BUG_LIST
@ RBAC_PERM_COMMAND_TICKET_CLOSE