38#if TRINITY_COMPILER == TRINITY_COMPILER_GNU
39#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
101 bool status = !
sSupportMgr->GetSupportSystemStatus();
107 std::span<ChatCommandBuilder const>
GetCommands()
const override;
116 char* ticketIdStr = strtok((
char*)args,
" ");
117 uint32 ticketId = atoi(ticketIdStr);
119 char* targetStr = strtok(
nullptr,
" ");
123 std::string target(targetStr);
128 if (!ticket || ticket->IsClosed())
144 if (ticket->IsAssignedTo(targetGuid))
153 if (player && ticket->IsAssignedNotTo(player->
GetGUID()))
160 ticket->SetAssignedTo(targetGuid);
164 std::string msg = ticket->FormatViewMessageString(*handler,
nullptr, target.c_str(),
nullptr,
nullptr);
175 uint32 ticketId = atoi(args);
177 if (!ticket || ticket->IsClosed())
186 if (player && ticket->IsAssignedNotTo(player->
GetGUID()))
194 closedByGuid = player->
GetGUID();
198 sSupportMgr->CloseTicket<T>(ticket->GetId(), closedByGuid);
200 std::string msg = ticket->FormatViewMessageString(*handler, player ? player->
GetName().c_str() :
"Console",
nullptr,
nullptr,
nullptr);
212 char* ticketIdStr = strtok((
char*)args,
" ");
213 uint32 ticketId = atoi(ticketIdStr);
215 char* comment = strtok(
nullptr,
"\n");
220 if (!ticket || ticket->IsClosed())
229 if (player && ticket->IsAssignedNotTo(player->
GetGUID()))
235 ticket->SetComment(comment);
239 std::string msg = ticket->FormatViewMessageString(*handler,
nullptr, ticket->GetAssignedToName().c_str(),
nullptr,
nullptr);
266 uint32 ticketId = atoi(args);
274 if (!ticket->IsClosed())
280 std::string msg = ticket->FormatViewMessageString(*handler,
nullptr,
nullptr,
nullptr, handler->
GetSession() ? handler->
GetSession()->
GetPlayer()->
GetName().c_str() :
"Console");
310 uint32 ticketId = atoi(args);
312 if (!ticket || ticket->IsClosed())
318 if (!ticket->IsAssigned())
326 Player* assignedPlayer = ticket->GetAssignedPlayer();
331 ObjectGuid guid = ticket->GetAssignedToGUID();
339 if (security > mySecurity)
345 std::string assignedTo = ticket->GetAssignedToName();
346 ticket->SetUnassigned();
349 std::string msg = ticket->FormatViewMessageString(*handler,
nullptr, assignedTo.c_str(), handler->
GetSession() ? handler->
GetSession()->
GetPlayer()->
GetName().c_str() :
"Console",
nullptr);
361 uint32 ticketId = atoi(args);
363 if (!ticket || ticket->IsClosed())
369 handler->
SendSysMessage(ticket->FormatViewMessageString(*handler,
true));
@ LANG_COMMAND_TICKETRESET
@ LANG_COMMAND_TICKETALREADYASSIGNED
@ LANG_COMMAND_TICKETUNASSIGNSECURITY
@ LANG_DISALLOW_TICKETS_CONFIG
@ 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)
static uint32 GetSecurity(uint32 accountId, int32 realmId)
static bool HasPermission(uint32 accountId, uint32 permission, uint32 realmId)
ObjectGuid const & GetGUID() const
void SendGlobalGMSysMessage(const char *str)
WorldSession * GetSession()
static std::string PGetParseString(std::string_view fmt, Args &&... args) noexcept
void PSendSysMessage(char const *fmt, Args &&... args)
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
void SetRawValue(std::span< uint8 const > rawBytes)
WorldSession * GetSession() const
std::string const & GetName() const
AccountTypes GetSecurity() const
Player * GetPlayer() const
static bool HandleTicketResetAllCommand(ChatHandler *handler, char const *)
static bool HandleTicketResetCommand(ChatHandler *handler, char const *)
static bool HandleTicketAssignToCommand(ChatHandler *handler, char const *args)
static bool HandleTicketDeleteByIdCommand(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 HandleTicketCommentCommand(ChatHandler *handler, char const *args)
static bool HandleTicketCloseByIdCommand(ChatHandler *handler, char const *args)
std::span< ChatCommandBuilder const > GetCommands() const override
static bool HandleToggleGMTicketSystem(ChatHandler *handler, char const *)
static bool HandleTicketUnAssignCommand(ChatHandler *handler, char const *args)
void AddSC_ticket_commandscript()
@ CONFIG_SUPPORT_TICKETS_ENABLED
ChatCommandBuilder const [] ChatCommandTable
@ RBAC_PERM_COMMANDS_BE_ASSIGNED_TICKET
@ RBAC_PERM_COMMAND_TICKET_SUGGESTION_DELETE
@ RBAC_PERM_COMMAND_TICKET_COMPLAINT_CLOSEDLIST
@ RBAC_PERM_COMMAND_TICKET_COMPLAINT_ASSIGN
@ RBAC_PERM_COMMAND_TICKET_SUGGESTION_ASSIGN
@ RBAC_PERM_COMMAND_TICKET_COMPLAINT_UNASSIGN
@ RBAC_PERM_COMMAND_TICKET_BUG_UNASSIGN
@ RBAC_PERM_COMMAND_TICKET_BUG_DELETE
@ RBAC_PERM_COMMAND_TICKET_SUGGESTION_CLOSEDLIST
@ RBAC_PERM_COMMAND_TICKET_COMPLAINT_DELETE
@ RBAC_PERM_COMMAND_TICKET_BUG_VIEW
@ RBAC_PERM_COMMAND_TICKET_COMPLAINT
@ RBAC_PERM_COMMAND_TICKET_BUG_CLOSEDLIST
@ RBAC_PERM_COMMAND_TICKET_TOGGLESYSTEM
@ RBAC_PERM_COMMAND_TICKET_BUG
@ RBAC_PERM_COMMAND_TICKET_BUG_CLOSE
@ RBAC_PERM_COMMAND_TICKET_BUG_ASSIGN
@ RBAC_PERM_COMMAND_TICKET_RESET_COMPLAINT
@ RBAC_PERM_COMMAND_TICKET_BUG_LIST
@ RBAC_PERM_COMMAND_TICKET
@ RBAC_PERM_COMMAND_TICKET_RESET_ALL
@ RBAC_PERM_COMMAND_TICKET_COMPLAINT_COMMENT
@ RBAC_PERM_COMMAND_TICKET_COMPLAINT_LIST
@ RBAC_PERM_COMMAND_TICKET_SUGGESTION
@ RBAC_PERM_COMMAND_TICKET_RESET
@ RBAC_PERM_COMMAND_TICKET_SUGGESTION_VIEW
@ RBAC_PERM_COMMAND_TICKET_SUGGESTION_COMMENT
@ RBAC_PERM_COMMAND_TICKET_SUGGESTION_CLOSE
@ RBAC_PERM_COMMAND_TICKET_COMPLAINT_CLOSE
@ RBAC_PERM_COMMAND_TICKET_BUG_COMMENT
@ RBAC_PERM_COMMAND_TICKET_RESET_BUG
@ RBAC_PERM_COMMAND_TICKET_COMPLAINT_VIEW
@ RBAC_PERM_COMMAND_TICKET_SUGGESTION_LIST
@ RBAC_PERM_COMMAND_TICKET_SUGGESTION_UNASSIGN
@ RBAC_PERM_COMMAND_TICKET_RESET_SUGGESTION