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
31: CommandScript("ticket_commandscript") { }
Definition CommandScript.h:25

Member Function Documentation

◆ GetCommands()

ChatCommandTable ticket_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

34 {
35 static ChatCommandTable ticketResponseCommandTable =
36 {
37 { "append", HandleGMTicketResponseAppendCommand, SEC_GAMEMASTER, Console::Yes },
38 { "appendln", HandleGMTicketResponseAppendLnCommand, SEC_GAMEMASTER, Console::Yes },
39 { "delete", HandleGMTicketResponseDeleteCommand, SEC_GAMEMASTER, Console::Yes },
40 { "show", HandleGMTicketResponseShowCommand, SEC_GAMEMASTER, Console::Yes }
41 };
42 static ChatCommandTable ticketCommandTable =
43 {
44 { "assign", HandleGMTicketAssignToCommand, SEC_GAMEMASTER, Console::Yes },
45 { "close", HandleGMTicketCloseByIdCommand, SEC_GAMEMASTER, Console::Yes },
46 { "closedlist", HandleGMTicketListClosedCommand, SEC_GAMEMASTER, Console::Yes },
47 { "comment", HandleGMTicketCommentCommand, SEC_GAMEMASTER, Console::Yes },
48 { "complete", HandleGMTicketCompleteCommand, SEC_GAMEMASTER, Console::Yes },
49 { "delete", HandleGMTicketDeleteByIdCommand, SEC_ADMINISTRATOR, Console::Yes },
50 { "escalate", HandleGMTicketEscalateCommand, SEC_GAMEMASTER, Console::Yes },
51 { "escalatedlist", HandleGMTicketListEscalatedCommand, SEC_GAMEMASTER, Console::Yes },
52 { "list", HandleGMTicketListCommand, SEC_GAMEMASTER, Console::Yes },
53 { "onlinelist", HandleGMTicketListOnlineCommand, SEC_GAMEMASTER, Console::Yes },
54 { "reset", HandleGMTicketResetCommand, SEC_CONSOLE, Console::Yes },
55
56 { "response", ticketResponseCommandTable },
57 { "togglesystem", HandleToggleGMTicketSystem, SEC_ADMINISTRATOR, Console::Yes },
58 { "unassign", HandleGMTicketUnAssignCommand, SEC_GAMEMASTER, Console::Yes },
59 { "viewid", HandleGMTicketGetByIdCommand, SEC_GAMEMASTER, Console::Yes },
60 { "viewname", HandleGMTicketGetByNameCommand, SEC_GAMEMASTER, Console::Yes }
61 };
62 static ChatCommandTable commandTable =
63 {
64 { "ticket", ticketCommandTable }
65 };
66 return commandTable;
67 }
@ SEC_ADMINISTRATOR
Definition Common.h:60
@ SEC_GAMEMASTER
Definition Common.h:59
@ SEC_CONSOLE
Definition Common.h:61
static bool HandleGMTicketEscalateCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:268
static bool HandleGMTicketCloseByIdCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:120
static bool HandleGMTicketResponseAppendLnCommand(ChatHandler *handler, uint32 ticketId, Tail res)
Definition cs_ticket.cpp:473
static bool HandleGMTicketAssignToCommand(ChatHandler *handler, uint32 ticketId, std::string target)
Definition cs_ticket.cpp:69
static bool HandleGMTicketResponseAppendCommand(ChatHandler *handler, uint32 ticketId, Tail res)
Definition cs_ticket.cpp:468
static bool HandleGMTicketListClosedCommand(ChatHandler *handler)
Definition cs_ticket.cpp:189
static bool HandleGMTicketDeleteByIdCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:236
static bool HandleToggleGMTicketSystem(ChatHandler *handler)
Definition cs_ticket.cpp:320
static bool HandleGMTicketCommentCommand(ChatHandler *handler, uint32 ticketId, Tail comment)
Definition cs_ticket.cpp:155
static bool HandleGMTicketResetCommand(ChatHandler *handler)
Definition cs_ticket.cpp:304
static bool HandleGMTicketCompleteCommand(ChatHandler *handler, uint32 ticketId, std::optional< std::string > response)
Definition cs_ticket.cpp:195
static bool HandleGMTicketListOnlineCommand(ChatHandler *handler)
Definition cs_ticket.cpp:298
static bool HandleGMTicketListEscalatedCommand(ChatHandler *handler)
Definition cs_ticket.cpp:286
static bool HandleGMTicketResponseShowCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:509
static bool HandleGMTicketListCommand(ChatHandler *handler)
Definition cs_ticket.cpp:292
static bool HandleGMTicketResponseDeleteCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:478
static bool HandleGMTicketGetByIdCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:377
static bool HandleGMTicketGetByNameCommand(ChatHandler *handler, std::string name)
Definition cs_ticket.cpp:394
static bool HandleGMTicketUnAssignCommand(ChatHandler *handler, uint32 ticketId)
Definition cs_ticket.cpp:328
std::vector< ChatCommandBuilder > ChatCommandTable
Definition ChatCommand.h:46

References HandleGMTicketAssignToCommand(), HandleGMTicketCloseByIdCommand(), HandleGMTicketCommentCommand(), HandleGMTicketCompleteCommand(), HandleGMTicketDeleteByIdCommand(), HandleGMTicketEscalateCommand(), HandleGMTicketGetByIdCommand(), HandleGMTicketGetByNameCommand(), HandleGMTicketListClosedCommand(), HandleGMTicketListCommand(), HandleGMTicketListEscalatedCommand(), HandleGMTicketListOnlineCommand(), HandleGMTicketResetCommand(), HandleGMTicketResponseAppendCommand(), HandleGMTicketResponseAppendLnCommand(), HandleGMTicketResponseDeleteCommand(), HandleGMTicketResponseShowCommand(), HandleGMTicketUnAssignCommand(), HandleToggleGMTicketSystem(), SEC_ADMINISTRATOR, SEC_CONSOLE, and SEC_GAMEMASTER.

◆ HandleGMTicketAssignToCommand()

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

Console can override though

70 {
71 if (!normalizePlayerName(target))
72 return false;
73
74 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
75 if (!ticket || ticket->IsClosed())
76 {
78 return true;
79 }
80
81 // Get target information
82 ObjectGuid targetGuid = sCharacterCache->GetCharacterGuidByName(target);
83 uint32 targetAccountId = sCharacterCache->GetCharacterAccountIdByGuid(targetGuid);
84 uint32 targetGmLevel = AccountMgr::GetSecurity(targetAccountId, realm.Id.Realm);
85
86 // Target must exist and have administrative rights
87 if (!targetGuid || AccountMgr::IsPlayerAccount(targetGmLevel))
88 {
90 return true;
91 }
92
93 // If already assigned, leave
94 if (ticket->IsAssignedTo(targetGuid))
95 {
97 return true;
98 }
99
100 // If assigned to different player other than current, leave
102 Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
103 if (player && ticket->IsAssignedNotTo(player->GetGUID()))
104 {
105 handler->PSendSysMessage(LANG_COMMAND_TICKETALREADYASSIGNED, ticket->GetId(), target);
106 return true;
107 }
108
109 // Assign ticket
111 ticket->SetAssignedTo(targetGuid, AccountMgr::IsAdminAccount(targetGmLevel));
112 ticket->SaveToDB(trans);
113 sTicketMgr->UpdateLastChange(ticket);
114
115 std::string msg = ticket->FormatMessageString(*handler, nullptr, target.c_str(), nullptr, nullptr);
116 handler->SendGlobalGMSysMessage(msg.c_str());
117 return true;
118 }
#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:1019
@ LANG_COMMAND_TICKETASSIGNERROR_B
Definition Language.h:1025
@ LANG_COMMAND_TICKETASSIGNERROR_A
Definition Language.h:1024
@ LANG_COMMAND_TICKETNOTEXIST
Definition Language.h:1017
bool normalizePlayerName(std::string &name)
Definition ObjectMgr.cpp:208
#define sTicketMgr
Definition TicketMgr.h:260
void PSendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:211
void SendGlobalGMSysMessage(const char *str)
Definition Chat.cpp:196
WorldSession * GetSession()
Definition Chat.h:242
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:160
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:113
Definition Player.h:1082
Player * GetPlayer() const
Definition WorldSession.h:376
Realm realm
Definition World.cpp:111
bool IsPlayerAccount(uint32 gmlevel)
Definition AccountMgr.cpp:305
uint32 GetSecurity(uint32 accountId)
Definition AccountMgr.cpp:238
bool IsAdminAccount(uint32 gmlevel)
Definition AccountMgr.cpp:310
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
121 {
122 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
123 if (!ticket || ticket->IsClosed() || ticket->IsCompleted())
124 {
126 return true;
127 }
128
129 // Ticket should be assigned to the player who tries to close it.
130 // Console can override though
131 Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
132 if (player && ticket->IsAssignedNotTo(player->GetGUID()))
133 {
135 return true;
136 }
137
138 sTicketMgr->ResolveAndCloseTicket(ticket->GetId(), player ? player->GetGUID() : ObjectGuid::Empty);
139 sTicketMgr->UpdateLastChange(ticket);
140
141 std::string msg = ticket->FormatMessageString(*handler, player ? player->GetName().c_str() : "Console", nullptr, nullptr, nullptr);
142 handler->SendGlobalGMSysMessage(msg.c_str());
143
144 // Inform player, who submitted this ticket, that it is closed
145 if (Player* submitter = ticket->GetPlayer())
146 {
149 submitter->GetSession()->SendPacket(&data);
150 ChatHandler(submitter->GetSession()).SendSysMessage(LANG_TICKET_CLOSED);
151 }
152 return true;
153 }
@ LANG_COMMAND_TICKETCANNOTCLOSE
Definition Language.h:1028
@ LANG_TICKET_CLOSED
Definition Language.h:987
@ 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:464
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
156 {
157 if (comment.empty())
158 return false;
159
160 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
161 if (!ticket)
162 {
164 return true;
165 }
166
167 // Cannot comment ticket assigned to someone else (unless done from the Console)
168 Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
169 if (player && ticket->IsAssignedNotTo(player->GetGUID()))
170 {
172 return true;
173 }
174
176 ticket->SetComment(comment.data());
177 ticket->SaveToDB(trans);
178 sTicketMgr->UpdateLastChange(ticket);
179
180 std::string const assignedName = ticket->GetAssignedToName();
181 std::string msg = ticket->FormatMessageString(*handler, assignedName.empty() ? nullptr : assignedName.c_str(), nullptr, nullptr, nullptr);
182
183 msg += handler->PGetParseString(LANG_COMMAND_TICKETLISTADDCOMMENT, player ? player->GetName().c_str() : "Console", comment.data());
184 handler->SendGlobalGMSysMessage(msg.c_str());
185
186 return true;
187 }
@ LANG_COMMAND_TICKETLISTADDCOMMENT
Definition Language.h:1036
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
196 {
197 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
198 if (!ticket || ticket->IsClosed() || ticket->IsCompleted())
199 {
201 return true;
202 }
203
204 // Check if handler is not assignee in which case return
205 Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
206
207 if (player && ticket->IsAssignedNotTo(player->GetGUID()))
208 {
210 return true;
211 }
212
213 if (response)
214 ticket->AppendResponse(response.value());
215
216 if (Player* player2 = ticket->GetPlayer())
217 {
218 ticket->SendResponse(player2->GetSession());
219 ChatHandler(player2->GetSession()).SendSysMessage(LANG_TICKET_COMPLETED);
220 }
221
222 Player* gm = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
223
225 ticket->SetCompleted();
226 ticket->SetResolvedBy(gm ? gm->GetGUID() : ObjectGuid::Empty);
227 ticket->SaveToDB(trans);
228
229 std::string msg = ticket->FormatMessageString(*handler, nullptr, nullptr, nullptr, nullptr);
230 msg += handler->PGetParseString(LANG_COMMAND_TICKETCOMPLETED, gm ? gm->GetName().c_str() : "Console");
231 handler->SendGlobalGMSysMessage(msg.c_str());
232 sTicketMgr->UpdateLastChange(ticket);
233 return true;
234 }
@ LANG_COMMAND_TICKETCOMPLETED
Definition Language.h:1042
@ LANG_TICKET_COMPLETED
Definition Language.h:988
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
237 {
238 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
239 if (!ticket)
240 {
242 return true;
243 }
244
245 if (!ticket->IsClosed())
246 {
248 return true;
249 }
250
251 std::string msg = ticket->FormatMessageString(*handler, nullptr, nullptr, nullptr, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console");
252 handler->SendGlobalGMSysMessage(msg.c_str());
253
254 sTicketMgr->RemoveTicket(ticket->GetId());
255 sTicketMgr->UpdateLastChange(ticket);
256
257 if (Player* player = ticket->GetPlayer())
258 {
259 // Force abandon ticket
262 player->GetSession()->SendPacket(&data);
263 }
264
265 return true;
266 }
@ LANG_COMMAND_TICKETCLOSEFIRST
Definition Language.h:1018

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
269 {
270 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
271 if (!ticket || ticket->IsClosed() || ticket->IsCompleted() || ticket->GetEscalatedStatus() != TICKET_UNASSIGNED)
272 {
274 return true;
275 }
276
278
279 if (Player* player = ticket->GetPlayer())
280 sTicketMgr->SendTicket(player->GetSession(), ticket);
281
282 sTicketMgr->UpdateLastChange(ticket);
283 return true;
284 }
@ 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
378 {
379 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
380 if (!ticket || ticket->IsClosed() || ticket->IsCompleted())
381 {
383 return true;
384 }
385
387 ticket->SetViewed();
388 ticket->SaveToDB(trans);
389
390 handler->SendSysMessage(ticket->FormatMessageString(*handler, true));
391 return true;
392 }
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
395 {
396 if (!normalizePlayerName(name))
397 return false;
398
399 // Detect target's GUID
400 ObjectGuid guid;
401 if (Player* player = ObjectAccessor::FindPlayerByName(name, false))
402 {
403 guid = player->GetGUID();
404 }
405 else
406 {
407 guid = sCharacterCache->GetCharacterGuidByName(name);
408 }
409
410 // Target must exist
411 if (!guid)
412 {
414 return true;
415 }
416
417 // Ticket must exist
418 GmTicket* ticket = sTicketMgr->GetTicketByPlayer(guid);
419 if (!ticket)
420 {
422 return true;
423 }
424
426 ticket->SetViewed();
427 ticket->SaveToDB(trans);
428
429 handler->SendSysMessage(ticket->FormatMessageString(*handler, true));
430 return true;
431 }
@ LANG_NO_PLAYERS_FOUND
Definition Language.h:372
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
190 {
191 sTicketMgr->ShowClosedList(*handler);
192 return true;
193 }

References sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketListCommand()

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

References sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketListEscalatedCommand()

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

References sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketListOnlineCommand()

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

References sTicketMgr.

Referenced by GetCommands().

◆ HandleGMTicketResetCommand()

static bool ticket_commandscript::HandleGMTicketResetCommand ( ChatHandler handler)
inlinestatic
305 {
306 if (sTicketMgr->GetOpenTicketCount())
307 {
309 return true;
310 }
311 else
312 {
313 sTicketMgr->ResetTickets();
315 }
316
317 return true;
318 }
@ LANG_COMMAND_TICKETRESET
Definition Language.h:1040
@ LANG_COMMAND_TICKETPENDING
Definition Language.h:1039

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
469 {
470 return TicketResponseAppend(ticketId, false, handler, res.data());
471 }
static bool TicketResponseAppend(uint32 ticketId, bool newLine, ChatHandler *handler, std::string response)
Definition cs_ticket.cpp:433

References TicketResponseAppend().

Referenced by GetCommands().

◆ HandleGMTicketResponseAppendLnCommand()

static bool ticket_commandscript::HandleGMTicketResponseAppendLnCommand ( ChatHandler handler,
uint32  ticketId,
Tail  res 
)
inlinestatic
474 {
475 return TicketResponseAppend(ticketId, true, handler, res.data());
476 }

References TicketResponseAppend().

Referenced by GetCommands().

◆ HandleGMTicketResponseDeleteCommand()

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

Console excluded

479 {
480 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
481 // Don't allow deleting response for a closed ticket.
482 if (!ticket || ticket->IsClosed())
483 {
485 return true;
486 }
487
488 // Cannot delete response for a ticket that is assigned to someone else.
490 Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
491 if (player && ticket->IsAssignedNotTo(player->GetGUID()))
492 {
494 return true;
495 }
496
498 ticket->DeleteResponse();
499 ticket->SaveToDB(trans);
500 sTicketMgr->UpdateLastChange(ticket);
501
502 std::string msg = ticket->FormatMessageString(*handler, nullptr, nullptr, nullptr, nullptr);
503 msg += handler->PGetParseString(LANG_COMMAND_TICKETRESPONSEDELETED, player ? player->GetName() : "Console");
504
505 handler->SendGlobalGMSysMessage(msg.c_str());
506 return true;
507 }
@ LANG_COMMAND_TICKETRESPONSEDELETED
Definition Language.h:1044
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
510 {
511 GmTicket* ticket = sTicketMgr->GetTicket(ticketId);
512 if (!ticket)
513 {
515 return true;
516 }
517
518 std::string msg = ticket->FormatMessageString(*handler, nullptr, nullptr, nullptr, nullptr);
520
521 handler->PSendSysMessage(msg);
522 return true;
523 }
@ LANG_COMMAND_TICKETLISTRESPONSE
Definition Language.h:1041
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

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

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
321 {
322 bool status = !sTicketMgr->GetStatus();
323 sTicketMgr->SetStatus(status);
325 return true;
326 }
@ LANG_ALLOW_TICKETS
Definition Language.h:924
@ LANG_DISALLOW_TICKETS
Definition Language.h:925

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

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

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: