39 _needResponse(false), _needMoreHelp(false) { }
43 _needResponse(false), _needMoreHelp(false)
71 _playerGuid = ObjectGuid::Create<HighGuid::Player>(fields[++index].GetUInt32());
136 data <<
GetAge(ticket->GetLastModifiedTime());
157 for (
int i = 0; i < 4; i++)
161 size_t writeLen = std::min<size_t>(len, 3999);
178 std::stringstream ss;
201 std::stringstream ss;
206 if (szAssignedToName)
208 if (szUnassignedName)
258 std::stringstream ss(log);
259 std::stringstream newss;
261 while (std::getline(ss, line) && !time.empty())
273 _lastChange(
GameTime::GetGameTime()) { }
290 if (itr->second->IsClosed())
292 uint32 ticketId = itr->second->GetId();
328 TC_LOG_INFO(
"server.loading",
">> Loaded 0 GM tickets. DB table `gm_ticket` is empty!");
336 Field* fields = result->Fetch();
353 }
while (result->NextRow());
386 ticket->SetClosedBy(source);
389 ticket->SaveToDB(trans);
398 ticket->SetClosedBy(source);
399 ticket->SetResolvedBy(source);
402 ticket->SaveToDB(trans);
410 ticket->DeleteFromDB();
425 if (!itr->second->IsClosed() && !itr->second->IsCompleted())
426 if (!onlineOnly || itr->second->GetPlayer())
427 handler.
SendSysMessage(itr->second->FormatMessageString(handler).c_str());
434 if (itr->second->IsClosed())
435 handler.
SendSysMessage(itr->second->FormatMessageString(handler).c_str());
443 handler.
SendSysMessage(itr->second->FormatMessageString(handler).c_str());
@ CHAR_DEL_ALL_GM_TICKETS
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
std::shared_ptr< ResultSet > QueryResult
std::shared_ptr< PreparedResultSet > PreparedQueryResult
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
@ LANG_COMMAND_TICKETSHOWONLINELIST
@ LANG_COMMAND_TICKETSHOWESCALATEDLIST
@ LANG_COMMAND_TICKETLISTGUID
@ LANG_COMMAND_TICKETSHOWLIST
@ LANG_COMMAND_TICKETCLOSED
@ LANG_COMMAND_TICKETDELETED
@ LANG_COMMAND_TICKETLISTCOMMENT
@ LANG_COMMAND_TICKETLISTAGE
@ LANG_COMMAND_TICKETCOMPLETED
@ LANG_COMMAND_TICKETLISTRESPONSE
@ LANG_COMMAND_TICKETLISTASSIGNEDTO
@ LANG_COMMAND_TICKETLISTAGECREATE
@ LANG_COMMAND_TICKETLISTUNASSIGNED
@ LANG_COMMAND_TICKETSHOWCLOSEDLIST
@ LANG_COMMAND_TICKETLISTMESSAGE
@ LANG_COMMAND_TICKETLISTNAME
#define TC_LOG_INFO(filterType__,...)
@ TICKET_ESCALATED_ASSIGNED
@ TICKET_IN_ESCALATION_QUEUE
@ GMTICKET_STATUS_DEFAULT
@ GMTICKET_STATUS_HASTEXT
@ GMTICKET_OPENEDBYGM_STATUS_NOT_OPENED
@ GMTICKET_OPENEDBYGM_STATUS_OPENED
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
std::string secsToTimeString(uint64 timeInSecs, TimeFormat timeFormat, bool hoursOnly)
static std::string PGetParseString(std::string_view fmt, Args &&... args)
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
Class used to access individual fields of database query result.
std::string GetString() const
Player * GetPlayer() const
GMTicketEscalationStatus _escalatedStatus
void SetPosition(uint32 mapId, float x, float y, float z)
void WritePacket(WorldPacket &data) const
void SetMessage(std::string const &message)
void SaveToDB(CharacterDatabaseTransaction trans) const
void SetGmAction(uint32 needResponse, bool needMoreHelp)
void TeleportTo(Player *player) const
bool LoadFromDB(Field *fields)
void SendResponse(WorldSession *session) const
std::string FormatMessageString(ChatHandler &handler, bool detailed=false) const
void SetChatLog(std::list< uint32 > time, std::string const &log)
std::string GetAssignedToName() const
Player * GetAssignedPlayer() const
LowType GetCounter() const
static ObjectGuid const Empty
static ObjectGuid GetGUID(Object const *o)
bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, uint32 options=0)
void setUInt16(uint8 index, uint16 value)
void setUInt32(uint8 index, uint32 value)
void setBool(uint8 index, bool value)
void setFloat(uint8 index, float value)
void setInt32(uint8 index, int32 value)
void setUInt8(uint8 index, uint8 value)
void setString(uint8 index, std::string const &value)
void RemoveTicket(uint32 ticketId)
void CloseTicket(uint32 ticketId, ObjectGuid source)
void ShowClosedList(ChatHandler &handler) const
void AddTicket(GmTicket *ticket)
void SetStatus(bool status)
void ShowEscalatedList(ChatHandler &handler) const
void ResolveAndCloseTicket(uint32 ticketId, ObjectGuid source)
GmTicket * GetTicket(uint32 ticketId)
static TicketMgr * instance()
void SendTicket(WorldSession *session, GmTicket *ticket) const
void ShowList(ChatHandler &handler, bool onlineOnly) const
std::string const & GetName() const
Player session in the World.
void SendPacket(WorldPacket const *packet)
Send a packet to the client.
@ SMSG_GMRESPONSE_RECEIVED
@ SMSG_GMTICKET_GETTICKET
TC_GAME_API Player * FindPlayer(ObjectGuid const &)