aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Chat/Chat.cpp1
-rwxr-xr-xsrc/server/game/Chat/Chat.h1
-rwxr-xr-xsrc/server/game/Chat/Commands/TicketCommands.cpp16
-rwxr-xr-xsrc/server/game/Miscellaneous/Language.h2
-rwxr-xr-xsrc/server/game/Tickets/TicketMgr.cpp10
-rwxr-xr-xsrc/server/game/Tickets/TicketMgr.h1
6 files changed, 31 insertions, 0 deletions
diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp
index cd62d93c242..8d03530c7f9 100755
--- a/src/server/game/Chat/Chat.cpp
+++ b/src/server/game/Chat/Chat.cpp
@@ -318,6 +318,7 @@ ChatCommand* ChatHandler::getCommandTable()
{ "closedlist", SEC_MODERATOR, false, OldHandler<&ChatHandler::HandleGMTicketListClosedCommand>, "", NULL },
{ "escalatedlist", SEC_GAMEMASTER, false, OldHandler<&ChatHandler::HandleGMTicketListEscalatedCommand>, "", NULL },
{ "delete", SEC_ADMINISTRATOR, false, OldHandler<&ChatHandler::HandleGMTicketDeleteByIdCommand>, "", NULL },
+ { "reset", SEC_ADMINISTRATOR, false, OldHandler<&ChatHandler::HandleGMTicketResetCommand>, "", NULL },
{ "assign", SEC_GAMEMASTER, false, OldHandler<&ChatHandler::HandleGMTicketAssignToCommand>, "", NULL },
{ "unassign", SEC_GAMEMASTER, false, OldHandler<&ChatHandler::HandleGMTicketUnAssignCommand>, "", NULL },
{ "comment", SEC_MODERATOR, false, OldHandler<&ChatHandler::HandleGMTicketCommentCommand>, "", NULL },
diff --git a/src/server/game/Chat/Chat.h b/src/server/game/Chat/Chat.h
index b33a4944e6b..6e34e39af5a 100755
--- a/src/server/game/Chat/Chat.h
+++ b/src/server/game/Chat/Chat.h
@@ -317,6 +317,7 @@ class ChatHandler
bool HandleGMTicketUnAssignCommand(const char* args);
bool HandleGMTicketCommentCommand(const char* args);
bool HandleGMTicketDeleteByIdCommand(const char* args);
+ bool HandleGMTicketResetCommand(const char* /* args */);
bool HandleGMTicketReloadCommand(const char*);
bool HandleToggleGMTicketSystem(const char* args);
bool HandleGMTicketEscalateCommand(const char* args);
diff --git a/src/server/game/Chat/Commands/TicketCommands.cpp b/src/server/game/Chat/Commands/TicketCommands.cpp
index 2ae4632d172..7caf63aac2b 100755
--- a/src/server/game/Chat/Commands/TicketCommands.cpp
+++ b/src/server/game/Chat/Commands/TicketCommands.cpp
@@ -320,6 +320,22 @@ bool ChatHandler::HandleGMTicketDeleteByIdCommand(const char* args)
return true;
}
+bool ChatHandler::HandleGMTicketResetCommand(const char* /* args */)
+{
+ if (sTicketMgr->GetOpenTicketCount() > 0)
+ {
+ SendSysMessage(LANG_COMMAND_TICKETPENDING);
+ return true;
+ }
+ else
+ {
+ sTicketMgr->ResetTickets();
+ SendSysMessage(LANG_COMMAND_TICKETRESET);
+ }
+
+ return true;
+}
+
bool ChatHandler::HandleToggleGMTicketSystem(const char* /* args */)
{
bool status = !sTicketMgr->GetStatus();
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index ce6d66c4026..ffdf0131143 100755
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -911,6 +911,8 @@ enum TrinityStrings
LANG_COMMAND_TICKETLISTADDCOMMENT = 2024,
LANG_COMMAND_TICKETLISTAGECREATE = 2025,
LANG_COMMAND_TICKETSHOWESCALATEDLIST = 2026,
+ LANG_COMMAND_TICKETPENDING = 2027,
+ LANG_COMMAND_TICKETRESET = 2028,
// Trinity strings 5000-9999
LANG_COMMAND_FREEZE = 5000,
diff --git a/src/server/game/Tickets/TicketMgr.cpp b/src/server/game/Tickets/TicketMgr.cpp
index cbfea3b81bd..10c1f4a1dfd 100755
--- a/src/server/game/Tickets/TicketMgr.cpp
+++ b/src/server/game/Tickets/TicketMgr.cpp
@@ -200,6 +200,16 @@ TicketMgr::TicketMgr() : _status(true), _lastTicketId(0), _lastSurveyId(0), _ope
void TicketMgr::Initialize() { SetStatus(sWorld->getBoolConfig(CONFIG_ALLOW_TICKETS)); }
+void TicketMgr::ResetTickets()
+{
+ for (GmTicketList::const_iterator itr = _ticketList.begin(); itr != _ticketList.end(); ++itr)
+ if (itr->second->IsClosed())
+ sTicketMgr->RemoveTicket(itr->second->GetId());
+
+ _lastTicketId = 0;
+ CharacterDatabase.PExecute("TRUNCATE TABLE gm_tickets");
+}
+
void TicketMgr::LoadTickets()
{
uint32 oldMSTime = getMSTime();
diff --git a/src/server/game/Tickets/TicketMgr.h b/src/server/game/Tickets/TicketMgr.h
index 73ff869c0d6..04fb7101ff7 100755
--- a/src/server/game/Tickets/TicketMgr.h
+++ b/src/server/game/Tickets/TicketMgr.h
@@ -213,6 +213,7 @@ public:
uint32 GetNextSurveyID() { return ++_lastSurveyId; }
void Initialize();
+ void ResetTickets();
void ShowList(ChatHandler& handler, bool onlineOnly) const;
void ShowClosedList(ChatHandler& handler) const;