AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
ticket_commandscript Class Reference
Inheritance diagram for ticket_commandscript:
CommandScript ScriptObject

Public Member Functions

 ticket_commandscript ()
 
ChatCommandTable GetCommands () const override
 
- Public Member Functions inherited from ScriptObject
virtual bool IsDatabaseBound () const
 
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 
uint16 GetTotalAvailableHooks ()
 

Static Public Member Functions

static bool HandleGMTicketAssignToCommand (ChatHandler *handler, uint32 ticketId, std::string target)
 
static bool HandleGMTicketCloseByIdCommand (ChatHandler *handler, uint32 ticketId)
 
static bool HandleGMTicketCommentCommand (ChatHandler *handler, uint32 ticketId, Tail comment)
 
static bool HandleGMTicketListClosedCommand (ChatHandler *handler)
 
static bool HandleGMTicketCompleteCommand (ChatHandler *handler, uint32 ticketId, std::optional< std::string > response)
 
static bool HandleGMTicketDeleteByIdCommand (ChatHandler *handler, uint32 ticketId)
 
static bool HandleGMTicketEscalateCommand (ChatHandler *handler, uint32 ticketId)
 
static bool HandleGMTicketListEscalatedCommand (ChatHandler *handler)
 
static bool HandleGMTicketListCommand (ChatHandler *handler)
 
static bool HandleGMTicketListOnlineCommand (ChatHandler *handler)
 
static bool HandleGMTicketResetCommand (ChatHandler *handler)
 
static bool HandleToggleGMTicketSystem (ChatHandler *handler)
 
static bool HandleGMTicketUnAssignCommand (ChatHandler *handler, uint32 ticketId)
 
static bool HandleGMTicketGetByIdCommand (ChatHandler *handler, uint32 ticketId)
 
static bool HandleGMTicketGetByNameCommand (ChatHandler *handler, std::string name)
 
static bool TicketResponseAppend (uint32 ticketId, bool newLine, ChatHandler *handler, std::string response)
 
static bool HandleGMTicketResponseAppendCommand (ChatHandler *handler, uint32 ticketId, Tail res)
 
static bool HandleGMTicketResponseAppendLnCommand (ChatHandler *handler, uint32 ticketId, Tail res)
 
static bool HandleGMTicketResponseDeleteCommand (ChatHandler *handler, uint32 ticketId)
 
static bool HandleGMTicketResponseShowCommand (ChatHandler *handler, uint32 ticketId)
 

Additional Inherited Members

- Protected Member Functions inherited from CommandScript
 CommandScript (const char *name)
 
- Protected Member Functions inherited from ScriptObject
 ScriptObject (const char *name, uint16 totalAvailableHooks=0)
 
virtual ~ScriptObject ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ ticket_commandscript()

ticket_commandscript::ticket_commandscript ( )
inline
32: CommandScript("ticket_commandscript") { }
Definition CommandScript.h:25

Member Function Documentation

◆ GetCommands()

ChatCommandTable ticket_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

35 {
36 static ChatCommandTable ticketResponseCommandTable =
37 {
42 };
43 static ChatCommandTable ticketCommandTable =
44 {
56
57 { "response", ticketResponseCommandTable },
62 };
63 static ChatCommandTable commandTable =
64 {
65 { "ticket", ticketCommandTable }
66 };
67 return commandTable;
68 }
static bool HandleGMTicketEscalateCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:269
static bool HandleGMTicketCloseByIdCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:121
static bool HandleGMTicketResponseAppendLnCommand(ChatHandler *handler, uint32 ticketId, Tail res)
Definition cs_ticket.cpp:477
static bool HandleGMTicketAssignToCommand(ChatHandler *handler, uint32 ticketId, std::string target)
Definition cs_ticket.cpp:70
static bool HandleGMTicketResponseAppendCommand(ChatHandler *handler, uint32 ticketId, Tail res)
Definition cs_ticket.cpp:469
static bool HandleGMTicketListClosedCommand(ChatHandler *handler)
Definition cs_ticket.cpp:190
static bool HandleGMTicketDeleteByIdCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:237
static bool HandleToggleGMTicketSystem(ChatHandler *handler)
Definition cs_ticket.cpp:321
static bool HandleGMTicketCommentCommand(ChatHandler *handler, uint32 ticketId, Tail comment)
Definition cs_ticket.cpp:156
static bool HandleGMTicketResetCommand(ChatHandler *handler)
Definition cs_ticket.cpp:305
static bool HandleGMTicketCompleteCommand(ChatHandler *handler, uint32 ticketId, std::optional< std::string > response)
Definition cs_ticket.cpp:196
static bool HandleGMTicketListOnlineCommand(ChatHandler *handler)
Definition cs_ticket.cpp:299
static bool HandleGMTicketListEscalatedCommand(ChatHandler *handler)
Definition cs_ticket.cpp:287
static bool HandleGMTicketResponseShowCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:516
static bool HandleGMTicketListCommand(ChatHandler *handler)
Definition cs_ticket.cpp:293
static bool HandleGMTicketResponseDeleteCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:485
static bool HandleGMTicketGetByIdCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:378
static bool HandleGMTicketGetByNameCommand(ChatHandler *handler, std::string name)
Definition cs_ticket.cpp:395
static bool HandleGMTicketUnAssignCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:329
std::vector< ChatCommandBuilder > ChatCommandTable
Definition ChatCommand.h:46
@ RBAC_PERM_COMMAND_TICKET_ESCALATEDLIST
Definition RBAC.h:577
@ RBAC_PERM_COMMAND_TICKET_ONLINELIST
Definition RBAC.h:579
@ RBAC_PERM_COMMAND_TICKET_RESPONSE_APPENDLN
Definition RBAC.h:583
@ RBAC_PERM_COMMAND_TICKET_RESPONSE_APPEND
Definition RBAC.h:582
@ RBAC_PERM_COMMAND_TICKET_RESPONSE
Definition RBAC.h:581
@ RBAC_PERM_COMMAND_TICKET_COMMENT
Definition RBAC.h:573
@ RBAC_PERM_COMMAND_TICKET_LIST
Definition RBAC.h:578
@ RBAC_PERM_COMMAND_TICKET_TOGGLESYSTEM
Definition RBAC.h:584
@ RBAC_PERM_COMMAND_TICKET_CLOSEDLIST
Definition RBAC.h:572
@ RBAC_PERM_COMMAND_TICKET_UNASSIGN
Definition RBAC.h:585
@ RBAC_PERM_COMMAND_TICKET_DELETE
Definition RBAC.h:575
@ RBAC_PERM_COMMAND_TICKET_ESCALATE
Definition RBAC.h:576
@ RBAC_PERM_COMMAND_TICKET_COMPLETE
Definition RBAC.h:574
@ RBAC_PERM_COMMAND_TICKET_RESET
Definition RBAC.h:580
@ RBAC_PERM_COMMAND_TICKET_VIEWNAME
Definition RBAC.h:587
@ RBAC_PERM_COMMAND_TICKET_VIEWID
Definition RBAC.h:586
@ RBAC_PERM_COMMAND_TICKET_ASSIGN
Definition RBAC.h:570
@ RBAC_PERM_COMMAND_TICKET_CLOSE
Definition RBAC.h:571

References HandleGMTicketAssignToCommand(), HandleGMTicketCloseByIdCommand(), HandleGMTicketCommentCommand(), HandleGMTicketCompleteCommand(), HandleGMTicketDeleteByIdCommand(), HandleGMTicketEscalateCommand(), HandleGMTicketGetByIdCommand(), HandleGMTicketGetByNameCommand(), HandleGMTicketListClosedCommand(), HandleGMTicketListCommand(), HandleGMTicketListEscalatedCommand(), HandleGMTicketListOnlineCommand(), HandleGMTicketResetCommand(), HandleGMTicketResponseAppendCommand(), HandleGMTicketResponseAppendLnCommand(), HandleGMTicketResponseDeleteCommand(), HandleGMTicketResponseShowCommand(), HandleGMTicketUnAssignCommand(), HandleToggleGMTicketSystem(), rbac::RBAC_PERM_COMMAND_TICKET_ASSIGN, rbac::RBAC_PERM_COMMAND_TICKET_CLOSE, rbac::RBAC_PERM_COMMAND_TICKET_CLOSEDLIST, rbac::RBAC_PERM_COMMAND_TICKET_COMMENT, rbac::RBAC_PERM_COMMAND_TICKET_COMPLETE, rbac::RBAC_PERM_COMMAND_TICKET_DELETE, rbac::RBAC_PERM_COMMAND_TICKET_ESCALATE, rbac::RBAC_PERM_COMMAND_TICKET_ESCALATEDLIST, rbac::RBAC_PERM_COMMAND_TICKET_LIST, rbac::RBAC_PERM_COMMAND_TICKET_ONLINELIST, rbac::RBAC_PERM_COMMAND_TICKET_RESET, rbac::RBAC_PERM_COMMAND_TICKET_RESPONSE, rbac::RBAC_PERM_COMMAND_TICKET_RESPONSE_APPEND, rbac::RBAC_PERM_COMMAND_TICKET_RESPONSE_APPENDLN, rbac::RBAC_PERM_COMMAND_TICKET_TOGGLESYSTEM, rbac::RBAC_PERM_COMMAND_TICKET_UNASSIGN, rbac::RBAC_PERM_COMMAND_TICKET_VIEWID, and rbac::RBAC_PERM_COMMAND_TICKET_VIEWNAME.

◆ HandleGMTicketAssignToCommand()

static bool ticket_commandscript::HandleGMTicketAssignToCommand ( ChatHandler handler,
uint32  ticketId,
std::string  target 
)
inlinestatic

Console can override though

71 {
72 if (!normalizePlayerName(target))
73 return false;
74
75 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
76 if (!ticket || ticket->IsClosed())
77 {
79 return true;
80 }
81
82 // Get target information
83 ObjectGuid targetGuid = sCharacterCache->GetCharacterGuidByName(target);
84 uint32 targetAccountId = sCharacterCache->GetCharacterAccountIdByGuid(targetGuid);
85 uint32 targetGmLevel = AccountMgr::GetSecurity(targetAccountId, realm.Id.Realm);
86
87 // Target must exist and have administrative rights
88 if (!targetGuid || AccountMgr::IsPlayerAccount(targetGmLevel))
89 {
91 return true;
92 }
93
94 // If already assigned, leave
95 if (ticket->IsAssignedTo(targetGuid))
96 {
98 return true;
99 }
100
101 // If assigned to different player other than current, leave
103 Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
104 if (player && ticket->IsAssignedNotTo(player->GetGUID()))
105 {
106 handler->PSendSysMessage(LANG_COMMAND_TICKETALREADYASSIGNED, ticket->GetId(), target);
107 return true;
108 }
109
110 // Assign ticket
112 ticket->SetAssignedTo(targetGuid, AccountMgr::IsAdminAccount(targetGmLevel));
113 ticket->SaveToDB(trans);
114 sTicketMgr->UpdateLastChange(ticket);
115
116 std::string msg = ticket->FormatMessageString(*handler, nullptr, target.c_str(), nullptr, nullptr);
117 handler->SendGlobalGMSysMessage(msg.c_str());
118 return true;
119 }
#define sCharacterCache
Definition CharacterCache.h:83
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
Definition DatabaseEnvFwd.h:69
std::uint32_t uint32
Definition Define.h:107
@ LANG_COMMAND_TICKETALREADYASSIGNED
Definition Language.h:1033
@ LANG_COMMAND_TICKETASSIGNERROR_B
Definition Language.h:1039
@ LANG_COMMAND_TICKETASSIGNERROR_A
Definition Language.h:1038
@ LANG_COMMAND_TICKETNOTEXIST
Definition Language.h:1031
bool normalizePlayerName(std::string &name)
Definition ObjectMgr.cpp:209
#define sTicketMgr
Definition TicketMgr.h:260
static bool IsPlayerAccount(uint32 gmlevel)
Definition AccountMgr.cpp:324
static uint32 GetSecurity(uint32 accountId)
Definition AccountMgr.cpp:257
static bool IsAdminAccount(uint32 gmlevel)
Definition AccountMgr.cpp:334
void PSendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:219
void SendGlobalGMSysMessage(const char *str)
Definition Chat.cpp:204
WorldSession * GetSession()
Definition Chat.h:242
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:168
Definition TicketMgr.h:88
bool IsAssignedTo(ObjectGuid guid) const
Definition TicketMgr.h:98
bool IsClosed() const
Definition TicketMgr.h:94
void SaveToDB(CharacterDatabaseTransaction trans) const
Definition TicketMgr.cpp:79
void SetAssignedTo(ObjectGuid guid, bool isAdmin)
Definition TicketMgr.h:122
uint32 GetId() const
Definition TicketMgr.h:101
std::string FormatMessageString(ChatHandler &handler, bool detailed=false) const
Definition TicketMgr.cpp:162
bool IsAssignedNotTo(ObjectGuid guid) const
Definition TicketMgr.h:99
Definition ObjectGuid.h:118
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114
Definition Player.h:1084
Player * GetPlayer() const
Definition WorldSession.h:454
Realm realm
Definition World.cpp:111
uint32 Realm
Definition Realm.h:43
RealmHandle Id
Definition Realm.h:69

References GmTicket::FormatMessageString(), Object::GetGUID(), GmTicket::GetId(), WorldSession::GetPlayer(), AccountMgr::GetSecurity(), ChatHandler::GetSession(), Realm::Id, AccountMgr::IsAdminAccount(), GmTicket::IsAssignedNotTo(), GmTicket::IsAssignedTo(), GmTicket::IsClosed(), AccountMgr::IsPlayerAccount(), LANG_COMMAND_TICKETALREADYASSIGNED, LANG_COMMAND_TICKETASSIGNERROR_A, LANG_COMMAND_TICKETASSIGNERROR_B, LANG_COMMAND_TICKETNOTEXIST, normalizePlayerName(), ChatHandler::PSendSysMessage(), realm, RealmHandle::Realm, GmTicket::SaveToDB(), sCharacterCache, ChatHandler::SendGlobalGMSysMessage(), ChatHandler::SendSysMessage(), GmTicket::SetAssignedTo(), and sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketCloseByIdCommand()

static bool ticket_commandscript::HandleGMTicketCloseByIdCommand ( ChatHandler handler,
uint32  ticketId 
)
inlinestatic
122 {
123 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
124 if (!ticket || ticket->IsClosed() || ticket->IsCompleted())
125 {
127 return true;
128 }
129
130 // Ticket should be assigned to the player who tries to close it.
131 // Console can override though
132 Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
133 if (player && ticket->IsAssignedNotTo(player->GetGUID()))
134 {
136 return true;
137 }
138
139 sTicketMgr->ResolveAndCloseTicket(ticket->GetId(), player ? player->GetGUID() : ObjectGuid::Empty);
140 sTicketMgr->UpdateLastChange(ticket);
141
142 std::string msg = ticket->FormatMessageString(*handler, player ? player->GetName().c_str() : "Console", nullptr, nullptr, nullptr);
143 handler->SendGlobalGMSysMessage(msg.c_str());
144
145 // Inform player, who submitted this ticket, that it is closed
146 if (Player* submitter = ticket->GetPlayer())
147 {
150 submitter->SendDirectMessage(&data);
151 ChatHandler(submitter->GetSession()).SendSysMessage(LANG_TICKET_CLOSED);
152 }
153 return true;
154 }
@ LANG_COMMAND_TICKETCANNOTCLOSE
Definition Language.h:1042
@ LANG_TICKET_CLOSED
Definition Language.h:1001
@ GMTICKET_RESPONSE_TICKET_DELETED
Definition TicketMgr.h:47
Definition Chat.h:37
Player * GetPlayer() const
Definition TicketMgr.h:102
bool IsCompleted() const
Definition TicketMgr.h:95
std::string const & GetName() const
Definition Object.h:528
Definition WorldPacket.h:26
@ SMSG_GMTICKET_DELETETICKET
Definition Opcodes.h:566

References ObjectGuid::Empty, GmTicket::FormatMessageString(), Object::GetGUID(), GmTicket::GetId(), WorldObject::GetName(), WorldSession::GetPlayer(), GmTicket::GetPlayer(), ChatHandler::GetSession(), GMTICKET_RESPONSE_TICKET_DELETED, GmTicket::IsAssignedNotTo(), GmTicket::IsClosed(), GmTicket::IsCompleted(), LANG_COMMAND_TICKETCANNOTCLOSE, LANG_COMMAND_TICKETNOTEXIST, LANG_TICKET_CLOSED, ChatHandler::PSendSysMessage(), ChatHandler::SendGlobalGMSysMessage(), ChatHandler::SendSysMessage(), SMSG_GMTICKET_DELETETICKET, and sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketCommentCommand()

static bool ticket_commandscript::HandleGMTicketCommentCommand ( ChatHandler handler,
uint32  ticketId,
Tail  comment 
)
inlinestatic
157 {
158 if (comment.empty())
159 return false;
160
161 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
162 if (!ticket)
163 {
165 return true;
166 }
167
168 // Cannot comment ticket assigned to someone else (unless done from the Console)
169 Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
170 if (player && ticket->IsAssignedNotTo(player->GetGUID()))
171 {
173 return true;
174 }
175
177 ticket->SetComment(comment.data());
178 ticket->SaveToDB(trans);
179 sTicketMgr->UpdateLastChange(ticket);
180
181 std::string const assignedName = ticket->GetAssignedToName();
182 std::string msg = ticket->FormatMessageString(*handler, assignedName.empty() ? nullptr : assignedName.c_str(), nullptr, nullptr, nullptr);
183
184 msg += handler->PGetParseString(LANG_COMMAND_TICKETLISTADDCOMMENT, player ? player->GetName().c_str() : "Console", comment.data());
185 handler->SendGlobalGMSysMessage(msg.c_str());
186
187 return true;
188 }
@ LANG_COMMAND_TICKETLISTADDCOMMENT
Definition Language.h:1050
std::string PGetParseString(uint32 entry, Args &&... args) const
Definition Chat.h:154
void SetComment(std::string const &comment)
Definition TicketMgr.h:134
std::string GetAssignedToName() const
Definition TicketMgr.h:107

References GmTicket::FormatMessageString(), GmTicket::GetAssignedToName(), Object::GetGUID(), GmTicket::GetId(), WorldObject::GetName(), WorldSession::GetPlayer(), ChatHandler::GetSession(), GmTicket::IsAssignedNotTo(), LANG_COMMAND_TICKETALREADYASSIGNED, LANG_COMMAND_TICKETLISTADDCOMMENT, LANG_COMMAND_TICKETNOTEXIST, ChatHandler::PGetParseString(), ChatHandler::PSendSysMessage(), GmTicket::SaveToDB(), ChatHandler::SendGlobalGMSysMessage(), GmTicket::SetComment(), and sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketCompleteCommand()

static bool ticket_commandscript::HandleGMTicketCompleteCommand ( ChatHandler handler,
uint32  ticketId,
std::optional< std::string >  response 
)
inlinestatic
197 {
198 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
199 if (!ticket || ticket->IsClosed() || ticket->IsCompleted())
200 {
202 return true;
203 }
204
205 // Check if handler is not assignee in which case return
206 Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
207
208 if (player && ticket->IsAssignedNotTo(player->GetGUID()))
209 {
211 return true;
212 }
213
214 if (response)
215 ticket->AppendResponse(response.value());
216
217 if (Player* player2 = ticket->GetPlayer())
218 {
219 ticket->SendResponse(player2->GetSession());
220 ChatHandler(player2->GetSession()).SendSysMessage(LANG_TICKET_COMPLETED);
221 }
222
223 Player* gm = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
224
226 ticket->SetCompleted();
227 ticket->SetResolvedBy(gm ? gm->GetGUID() : ObjectGuid::Empty);
228 ticket->SaveToDB(trans);
229
230 std::string msg = ticket->FormatMessageString(*handler, nullptr, nullptr, nullptr, nullptr);
231 msg += handler->PGetParseString(LANG_COMMAND_TICKETCOMPLETED, gm ? gm->GetName().c_str() : "Console");
232 handler->SendGlobalGMSysMessage(msg.c_str());
233 sTicketMgr->UpdateLastChange(ticket);
234 return true;
235 }
@ LANG_COMMAND_TICKETCOMPLETED
Definition Language.h:1056
@ LANG_TICKET_COMPLETED
Definition Language.h:1002
void SetResolvedBy(ObjectGuid value)
Definition TicketMgr.h:131
void AppendResponse(std::string const &response)
Definition TicketMgr.h:140
void SetCompleted()
Definition TicketMgr.h:132
void SendResponse(WorldSession *session) const
Definition TicketMgr.cpp:135

References GmTicket::AppendResponse(), ObjectGuid::Empty, GmTicket::FormatMessageString(), Object::GetGUID(), GmTicket::GetId(), WorldObject::GetName(), WorldSession::GetPlayer(), GmTicket::GetPlayer(), ChatHandler::GetSession(), GmTicket::IsAssignedNotTo(), GmTicket::IsClosed(), GmTicket::IsCompleted(), LANG_COMMAND_TICKETALREADYASSIGNED, LANG_COMMAND_TICKETCOMPLETED, LANG_COMMAND_TICKETNOTEXIST, LANG_TICKET_COMPLETED, ChatHandler::PGetParseString(), ChatHandler::PSendSysMessage(), GmTicket::SaveToDB(), ChatHandler::SendGlobalGMSysMessage(), GmTicket::SendResponse(), ChatHandler::SendSysMessage(), GmTicket::SetCompleted(), GmTicket::SetResolvedBy(), and sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketDeleteByIdCommand()

static bool ticket_commandscript::HandleGMTicketDeleteByIdCommand ( ChatHandler handler,
uint32  ticketId 
)
inlinestatic
238 {
239 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
240 if (!ticket)
241 {
243 return true;
244 }
245
246 if (!ticket->IsClosed())
247 {
249 return true;
250 }
251
252 std::string msg = ticket->FormatMessageString(*handler, nullptr, nullptr, nullptr, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console");
253 handler->SendGlobalGMSysMessage(msg.c_str());
254
255 sTicketMgr->RemoveTicket(ticket->GetId());
256 sTicketMgr->UpdateLastChange(ticket);
257
258 if (Player* player = ticket->GetPlayer())
259 {
260 // Force abandon ticket
263 player->SendDirectMessage(&data);
264 }
265
266 return true;
267 }
@ LANG_COMMAND_TICKETCLOSEFIRST
Definition Language.h:1032

References GmTicket::FormatMessageString(), GmTicket::GetId(), WorldObject::GetName(), WorldSession::GetPlayer(), GmTicket::GetPlayer(), ChatHandler::GetSession(), GMTICKET_RESPONSE_TICKET_DELETED, GmTicket::IsClosed(), LANG_COMMAND_TICKETCLOSEFIRST, LANG_COMMAND_TICKETNOTEXIST, ChatHandler::SendGlobalGMSysMessage(), ChatHandler::SendSysMessage(), SMSG_GMTICKET_DELETETICKET, and sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketEscalateCommand()

static bool ticket_commandscript::HandleGMTicketEscalateCommand ( ChatHandler handler,
uint32  ticketId 
)
inlinestatic
270 {
271 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
272 if (!ticket || ticket->IsClosed() || ticket->IsCompleted() || ticket->GetEscalatedStatus() != TICKET_UNASSIGNED)
273 {
275 return true;
276 }
277
279
280 if (Player* player = ticket->GetPlayer())
281 sTicketMgr->SendTicket(player->GetSession(), ticket);
282
283 sTicketMgr->UpdateLastChange(ticket);
284 return true;
285 }
@ TICKET_IN_ESCALATION_QUEUE
Definition TicketMgr.h:59
@ TICKET_UNASSIGNED
Definition TicketMgr.h:57
GMTicketEscalationStatus GetEscalatedStatus() const
Definition TicketMgr.h:119
void SetEscalatedStatus(GMTicketEscalationStatus escalatedStatus)
Definition TicketMgr.h:121

References GmTicket::GetEscalatedStatus(), GmTicket::GetPlayer(), GmTicket::IsClosed(), GmTicket::IsCompleted(), LANG_COMMAND_TICKETNOTEXIST, ChatHandler::SendSysMessage(), GmTicket::SetEscalatedStatus(), sTicketMgr, TICKET_IN_ESCALATION_QUEUE, and TICKET_UNASSIGNED.

Referenced by GetCommands().

◆ HandleGMTicketGetByIdCommand()

static bool ticket_commandscript::HandleGMTicketGetByIdCommand ( ChatHandler handler,
uint32  ticketId 
)
inlinestatic
379 {
380 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
381 if (!ticket || ticket->IsClosed() || ticket->IsCompleted())
382 {
384 return true;
385 }
386
388 ticket->SetViewed();
389 ticket->SaveToDB(trans);
390
391 handler->SendSysMessage(ticket->FormatMessageString(*handler, true));
392 return true;
393 }
void SetViewed()
Definition TicketMgr.h:135

References GmTicket::FormatMessageString(), GmTicket::IsClosed(), GmTicket::IsCompleted(), LANG_COMMAND_TICKETNOTEXIST, GmTicket::SaveToDB(), ChatHandler::SendSysMessage(), GmTicket::SetViewed(), and sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketGetByNameCommand()

static bool ticket_commandscript::HandleGMTicketGetByNameCommand ( ChatHandler handler,
std::string  name 
)
inlinestatic
396 {
397 if (!normalizePlayerName(name))
398 return false;
399
400 // Detect target's GUID
401 ObjectGuid guid;
402 if (Player* player = ObjectAccessor::FindPlayerByName(name, false))
403 {
404 guid = player->GetGUID();
405 }
406 else
407 {
408 guid = sCharacterCache->GetCharacterGuidByName(name);
409 }
410
411 // Target must exist
412 if (!guid)
413 {
415 return true;
416 }
417
418 // Ticket must exist
419 GmTicket* ticket = sTicketMgr->GetTicketByPlayer(guid);
420 if (!ticket)
421 {
423 return true;
424 }
425
427 ticket->SetViewed();
428 ticket->SaveToDB(trans);
429
430 handler->SendSysMessage(ticket->FormatMessageString(*handler, true));
431 return true;
432 }
@ LANG_NO_PLAYERS_FOUND
Definition Language.h:380
Player * FindPlayerByName(std::string const &name, bool checkInWorld=true)
Definition ObjectAccessor.cpp:271

References ObjectAccessor::FindPlayerByName(), GmTicket::FormatMessageString(), LANG_COMMAND_TICKETNOTEXIST, LANG_NO_PLAYERS_FOUND, normalizePlayerName(), GmTicket::SaveToDB(), sCharacterCache, ChatHandler::SendSysMessage(), GmTicket::SetViewed(), and sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketListClosedCommand()

static bool ticket_commandscript::HandleGMTicketListClosedCommand ( ChatHandler handler)
inlinestatic
191 {
192 sTicketMgr->ShowClosedList(*handler);
193 return true;
194 }

References sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketListCommand()

static bool ticket_commandscript::HandleGMTicketListCommand ( ChatHandler handler)
inlinestatic
294 {
295 sTicketMgr->ShowList(*handler, false);
296 return true;
297 }

References sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketListEscalatedCommand()

static bool ticket_commandscript::HandleGMTicketListEscalatedCommand ( ChatHandler handler)
inlinestatic
288 {
289 sTicketMgr->ShowEscalatedList(*handler);
290 return true;
291 }

References sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketListOnlineCommand()

static bool ticket_commandscript::HandleGMTicketListOnlineCommand ( ChatHandler handler)
inlinestatic
300 {
301 sTicketMgr->ShowList(*handler, true);
302 return true;
303 }

References sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketResetCommand()

static bool ticket_commandscript::HandleGMTicketResetCommand ( ChatHandler handler)
inlinestatic
306 {
307 if (sTicketMgr->GetOpenTicketCount())
308 {
310 return true;
311 }
312 else
313 {
314 sTicketMgr->ResetTickets();
316 }
317
318 return true;
319 }
@ LANG_COMMAND_TICKETRESET
Definition Language.h:1054
@ LANG_COMMAND_TICKETPENDING
Definition Language.h:1053

References LANG_COMMAND_TICKETPENDING, LANG_COMMAND_TICKETRESET, ChatHandler::SendSysMessage(), and sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketResponseAppendCommand()

static bool ticket_commandscript::HandleGMTicketResponseAppendCommand ( ChatHandler handler,
uint32  ticketId,
Tail  res 
)
inlinestatic
470 {
471 if (res.empty())
472 return false;
473 else
474 return TicketResponseAppend(ticketId, false, handler, res.data());
475 }
static bool TicketResponseAppend(uint32 ticketId, bool newLine, ChatHandler *handler, std::string response)
Definition cs_ticket.cpp:434

References TicketResponseAppend().

Referenced by GetCommands().

◆ HandleGMTicketResponseAppendLnCommand()

static bool ticket_commandscript::HandleGMTicketResponseAppendLnCommand ( ChatHandler handler,
uint32  ticketId,
Tail  res 
)
inlinestatic
478 {
479 if (res.empty())
480 return false;
481 else
482 return TicketResponseAppend(ticketId, true, handler, res.data());
483 }

References TicketResponseAppend().

Referenced by GetCommands().

◆ HandleGMTicketResponseDeleteCommand()

static bool ticket_commandscript::HandleGMTicketResponseDeleteCommand ( ChatHandler handler,
uint32  ticketId 
)
inlinestatic

Console excluded

486 {
487 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
488 // Don't allow deleting response for a closed ticket.
489 if (!ticket || ticket->IsClosed())
490 {
492 return true;
493 }
494
495 // Cannot delete response for a ticket that is assigned to someone else.
497 Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
498 if (player && ticket->IsAssignedNotTo(player->GetGUID()))
499 {
501 return true;
502 }
503
505 ticket->DeleteResponse();
506 ticket->SaveToDB(trans);
507 sTicketMgr->UpdateLastChange(ticket);
508
509 std::string msg = ticket->FormatMessageString(*handler, nullptr, nullptr, nullptr, nullptr);
510 msg += handler->PGetParseString(LANG_COMMAND_TICKETRESPONSEDELETED, player ? player->GetName() : "Console");
511
512 handler->SendGlobalGMSysMessage(msg.c_str());
513 return true;
514 }
@ LANG_COMMAND_TICKETRESPONSEDELETED
Definition Language.h:1058
void DeleteResponse()
Definition TicketMgr.h:142

References GmTicket::DeleteResponse(), GmTicket::FormatMessageString(), Object::GetGUID(), GmTicket::GetId(), WorldObject::GetName(), WorldSession::GetPlayer(), ChatHandler::GetSession(), GmTicket::IsAssignedNotTo(), GmTicket::IsClosed(), LANG_COMMAND_TICKETALREADYASSIGNED, LANG_COMMAND_TICKETNOTEXIST, LANG_COMMAND_TICKETRESPONSEDELETED, ChatHandler::PGetParseString(), ChatHandler::PSendSysMessage(), GmTicket::SaveToDB(), ChatHandler::SendGlobalGMSysMessage(), ChatHandler::SendSysMessage(), and sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketResponseShowCommand()

static bool ticket_commandscript::HandleGMTicketResponseShowCommand ( ChatHandler handler,
uint32  ticketId 
)
inlinestatic
517 {
518 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
519 if (!ticket)
520 {
522 return true;
523 }
524
525 std::string msg = ticket->FormatMessageString(*handler, nullptr, nullptr, nullptr, nullptr);
527
528 handler->PSendSysMessage(msg);
529 return true;
530 }
@ LANG_COMMAND_TICKETLISTRESPONSE
Definition Language.h:1055
std::string GetResponse()
Definition TicketMgr.h:141

References GmTicket::FormatMessageString(), GmTicket::GetResponse(), LANG_COMMAND_TICKETLISTRESPONSE, LANG_COMMAND_TICKETNOTEXIST, ChatHandler::PGetParseString(), ChatHandler::PSendSysMessage(), ChatHandler::SendSysMessage(), and sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketUnAssignCommand()

static bool ticket_commandscript::HandleGMTicketUnAssignCommand ( ChatHandler handler,
uint32  ticketId 
)
inlinestatic

If no m_session present it means we're issuing this command from the console

330 {
331 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
332 if (!ticket || ticket->IsClosed())
333 {
335 return true;
336 }
337 // Ticket must be assigned
338 if (!ticket->IsAssigned())
339 {
341 return true;
342 }
343
344 // Get security level of player, whom this ticket is assigned to
345 uint32 security = SEC_PLAYER;
346 Player* assignedPlayer = ticket->GetAssignedPlayer();
347 if (assignedPlayer)
348 security = assignedPlayer->GetSession()->GetSecurity();
349 else
350 {
351 ObjectGuid guid = ticket->GetAssignedToGUID();
352 uint32 accountId = sCharacterCache->GetCharacterAccountIdByGuid(guid);
353 security = AccountMgr::GetSecurity(accountId, realm.Id.Realm);
354 }
355
356 // Check security
358 uint32 mySecurity = handler->GetSession() ? handler->GetSession()->GetSecurity() : SEC_CONSOLE;
359 if (security > mySecurity)
360 {
362 return true;
363 }
364
365 std::string assignedTo = ticket->GetAssignedToName(); // copy assignedto name because we need it after the ticket has been unnassigned
367 ticket->SetUnassigned();
368 ticket->SaveToDB(trans);
369 sTicketMgr->UpdateLastChange(ticket);
370
371 std::string msg = ticket->FormatMessageString(*handler, nullptr, assignedTo.c_str(),
372 handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console", nullptr);
373 handler->SendGlobalGMSysMessage(msg.c_str());
374
375 return true;
376 }
@ SEC_PLAYER
Definition Common.h:57
@ SEC_CONSOLE
Definition Common.h:61
@ LANG_COMMAND_TICKETUNASSIGNSECURITY
Definition Language.h:1041
@ LANG_COMMAND_TICKETNOTASSIGNED
Definition Language.h:1040
ObjectGuid GetAssignedToGUID() const
Definition TicketMgr.h:106
bool IsAssigned() const
Definition TicketMgr.h:97
void SetUnassigned()
Definition TicketMgr.cpp:205
Player * GetAssignedPlayer() const
Definition TicketMgr.h:105
WorldSession * GetSession() const
Definition Player.h:2020
AccountTypes GetSecurity() const
Definition WorldSession.h:441

References GmTicket::FormatMessageString(), GmTicket::GetAssignedPlayer(), GmTicket::GetAssignedToGUID(), GmTicket::GetAssignedToName(), GmTicket::GetId(), WorldObject::GetName(), WorldSession::GetPlayer(), WorldSession::GetSecurity(), AccountMgr::GetSecurity(), ChatHandler::GetSession(), Player::GetSession(), Realm::Id, GmTicket::IsAssigned(), GmTicket::IsClosed(), LANG_COMMAND_TICKETNOTASSIGNED, LANG_COMMAND_TICKETNOTEXIST, LANG_COMMAND_TICKETUNASSIGNSECURITY, ChatHandler::PSendSysMessage(), realm, RealmHandle::Realm, GmTicket::SaveToDB(), sCharacterCache, SEC_CONSOLE, SEC_PLAYER, ChatHandler::SendGlobalGMSysMessage(), ChatHandler::SendSysMessage(), GmTicket::SetUnassigned(), and sTicketMgr.

Referenced by GetCommands().

◆ HandleToggleGMTicketSystem()

static bool ticket_commandscript::HandleToggleGMTicketSystem ( ChatHandler handler)
inlinestatic
322 {
323 bool status = !sTicketMgr->GetStatus();
324 sTicketMgr->SetStatus(status);
326 return true;
327 }
@ LANG_ALLOW_TICKETS
Definition Language.h:935
@ LANG_DISALLOW_TICKETS
Definition Language.h:936

References LANG_ALLOW_TICKETS, LANG_DISALLOW_TICKETS, ChatHandler::PSendSysMessage(), and sTicketMgr.

Referenced by GetCommands().

◆ TicketResponseAppend()

static bool ticket_commandscript::TicketResponseAppend ( uint32  ticketId,
bool  newLine,
ChatHandler handler,
std::string  response 
)
inlinestatic

Console excluded

435 {
436 if (response.empty())
437 return false;
438
439 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
440 if (!ticket || ticket->IsClosed())
441 {
443 return true;
444 }
445
446 // Cannot add response to ticket, assigned to someone else
448 Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
449 if (player && ticket->IsAssignedNotTo(player->GetGUID()))
450 {
452 return true;
453 }
454
456 if (newLine)
457 ticket->AppendResponse("\n");
458 ticket->AppendResponse(response);
459 ticket->SaveToDB(trans);
460 sTicketMgr->UpdateLastChange(ticket);
461
462 std::string msg = ticket->FormatMessageString(*handler, nullptr, nullptr, nullptr, nullptr);
463 msg += handler->PGetParseString(LANG_COMMAND_TICKETRESPONSEAPPENDED, response);
464
465 handler->PSendSysMessage(msg);
466 return true;
467 }
@ LANG_COMMAND_TICKETRESPONSEAPPENDED
Definition Language.h:1057

References GmTicket::AppendResponse(), GmTicket::FormatMessageString(), Object::GetGUID(), GmTicket::GetId(), WorldSession::GetPlayer(), ChatHandler::GetSession(), GmTicket::IsAssignedNotTo(), GmTicket::IsClosed(), LANG_COMMAND_TICKETALREADYASSIGNED, LANG_COMMAND_TICKETNOTEXIST, LANG_COMMAND_TICKETRESPONSEAPPENDED, ChatHandler::PGetParseString(), ChatHandler::PSendSysMessage(), GmTicket::SaveToDB(), and sTicketMgr.

Referenced by HandleGMTicketResponseAppendCommand(), and HandleGMTicketResponseAppendLnCommand().


The documentation for this class was generated from the following file: