Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
TicketMgr.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef SF_TICKETMGR_H
7#define SF_TICKETMGR_H
8
9#include <string>
10
11#include "ObjectMgr.h"
12#include "Platform/Singleton.h"
13#include "TicketInfo.h"
14
15typedef std::map<uint32, BugTicket*> BugTicketList;
16typedef std::map<uint32, GmTicket*> GmTicketList;
17typedef std::map<uint32, SuggestTicket*> SuggestTicketList;
18
20{
21 friend class Skyfire::Singleton<TicketMgr, Skyfire::NullMutex>;
22
23private:
24 TicketMgr();
25 ~TicketMgr();
26
27public:
29 {
30 static TicketMgr instance;
31 return &instance;
32 }
33
34 void Initialize();
35
36 template<typename T> T* GetTicket(uint32 ticketId);
37 template<typename T> uint32 GetOpenTicketCount() const;
38
40 {
41 for (GmTicketList::const_iterator itr = _gmTicketList.begin(); itr != _gmTicketList.end(); ++itr)
42 if (itr->second->GetPlayerGuid() == playerGuid && !itr->second->IsClosed())
43 return itr->second;
44
45 return NULL;
46 }
47
49 {
50 GmTicketList::iterator itr = _gmTicketList.find(ticketId);
51 if (itr != _gmTicketList.end())
52 return itr->second;
53
54 return NULL;
55 }
56
58 {
59 for (GmTicketList::const_iterator itr = _gmTicketList.begin(); itr != _gmTicketList.end(); ++itr)
60 if (itr->second && !itr->second->IsClosed() && !itr->second->IsCompleted())
61 return itr->second;
62
63 return NULL;
64 }
65
68
69 uint64 GetLastChange() const { return _lastChange; }
70
71 void SetFeedBackSystemStatus(bool status) { _feedbackSystemStatus = status; }
72 void SetGmTicketSystemStatus(bool status) { _gmTicketSystemStatus = status; }
73
74 void LoadGmTickets();
75 void LoadBugTickets();
76 void LoadSuggestTickets();
77 void LoadSurveys();
78
79 void AddTicket(GmTicket* ticket);
80 void AddTicket(BugTicket* ticket);
81 void AddTicket(SuggestTicket* ticket);
82
83 template<typename T> void RemoveTicket(uint32 ticketId);
84 template<typename T> void CloseTicket(uint32 ticketId, int64 closedBy);
85 template<typename T> void ResetTickets();
86 template<typename T> void ShowList(ChatHandler& handler) const;
87 template<typename T> void ShowList(ChatHandler& handler, bool onlineOnly) const;
88 template<typename T> void ShowClosedList(ChatHandler& handler) const;
89
90 void ShowGmEscalatedList(ChatHandler& handler) const;
91 void SendGmTicket(WorldSession* session, GmTicket* ticket) const;
92 void SendGmTicketUpdate(Opcodes opcode, GMTicketResponse response, Player* player) const;
93 void SendGmResponsee(WorldSession* session, GmTicket* ticket) const;
94 void UpdateLastChange() { _lastChange = uint64(time(NULL)); }
95
100
101private:
115};
116
117#define sTicketMgr Skyfire::Singleton<TicketMgr, Skyfire::NullMutex>::instance()
118
119#endif // SF_TICKETMGR_H
std::uint32_t uint32
Definition Define.h:77
std::uint64_t uint64
Definition Define.h:76
std::int64_t int64
Definition Define.h:72
GMTicketResponse
Definition TicketInfo.h:27
std::map< uint32, SuggestTicket * > SuggestTicketList
Definition TicketMgr.h:17
std::map< uint32, GmTicket * > GmTicketList
Definition TicketMgr.h:16
std::map< uint32, BugTicket * > BugTicketList
Definition TicketMgr.h:15
uint32 GenerateGmTicketId()
Definition TicketMgr.h:96
void SendGmResponsee(WorldSession *session, GmTicket *ticket) const
SuggestTicketList _suggestTicketList
Definition TicketMgr.h:106
GmTicketList _gmTicketList
Definition TicketMgr.h:104
GmTicket * GetGmTicketByPlayerGuid(ObjectGuid playerGuid) const
Definition TicketMgr.h:39
bool _gmTicketSystemStatus
Definition TicketMgr.h:103
GmTicket * GetOldestOpenTicket()
Definition TicketMgr.h:57
uint32 _lastSuggestId
Definition TicketMgr.h:110
void LoadSuggestTickets()
bool _feedbackSystemStatus
Definition TicketMgr.h:102
uint32 GenerateBugId()
Definition TicketMgr.h:97
void SetGmTicketSystemStatus(bool status)
Definition TicketMgr.h:72
void SendGmTicketUpdate(Opcodes opcode, GMTicketResponse response, Player *player) const
void LoadSurveys()
uint32 _openGmTicketCount
Definition TicketMgr.h:112
void LoadBugTickets()
Definition TicketMgr.cpp:83
void ShowClosedList(ChatHandler &handler) const
void AddTicket(GmTicket *ticket)
void CloseTicket(uint32 ticketId, int64 closedBy)
BugTicketList _bugTicketList
Definition TicketMgr.h:105
uint32 GetOpenTicketCount() const
uint32 _lastBugId
Definition TicketMgr.h:109
uint32 _lastSurveyId
Definition TicketMgr.h:108
T * GetTicket(uint32 ticketId)
static TicketMgr * instance()
Definition TicketMgr.h:28
uint32 GetNextSurveyID()
Definition TicketMgr.h:99
void UpdateLastChange()
Definition TicketMgr.h:94
GmTicket * GetTicket(uint32 ticketId)
Definition TicketMgr.h:48
uint64 _lastChange
Definition TicketMgr.h:111
void ShowGmEscalatedList(ChatHandler &handler) const
void Initialize()
Definition TicketMgr.cpp:36
void ShowList(ChatHandler &handler, bool onlineOnly) const
uint64 GetLastChange() const
Definition TicketMgr.h:69
void SendGmTicket(WorldSession *session, GmTicket *ticket) const
@ response Packets
uint32 _openSuggestTicketCount
Definition TicketMgr.h:114
void SetFeedBackSystemStatus(bool status)
Definition TicketMgr.h:71
uint32 _lastGmTicketId
Definition TicketMgr.h:107
uint32 GenerateSuggestId()
Definition TicketMgr.h:98
uint32 _openBugTicketCount
Definition TicketMgr.h:113
void LoadGmTickets()
Definition TicketMgr.cpp:42
bool GetGmTicketSystemStatus() const
Definition TicketMgr.h:67
void ResetTickets()
bool GetFeedBackSystemStatus() const
Definition TicketMgr.h:66
void RemoveTicket(uint32 ticketId)
void ShowList(ChatHandler &handler) const
Player session in the World.
Opcodes
List of Opcodes.
Definition Opcodes.h:21