diff options
author | Bizzy <bizzymail67@googlemail.com> | 2011-10-04 17:14:04 +0200 |
---|---|---|
committer | Bizzy <bizzymail67@googlemail.com> | 2011-10-04 17:41:55 +0200 |
commit | 4112a0d087aa14654c487433edb95b5d7fceeb0c (patch) | |
tree | b2ff46329793366d3a364960b036c5b4c93a5757 | |
parent | 5db7bf9cc33ee30b5201ab46a2fc788bbad2ab35 (diff) |
Core/Commands: Added '.ticket reset' for resetting ticket-id counter. Author: Bizzy
-rw-r--r-- | sql/updates/world/2011_10_04_00_world_trinity_string.sql | 4 | ||||
-rw-r--r-- | sql/updates/world/2011_10_04_01_world_command.sql | 3 | ||||
-rwxr-xr-x | src/server/game/Chat/Chat.cpp | 1 | ||||
-rwxr-xr-x | src/server/game/Chat/Chat.h | 1 | ||||
-rwxr-xr-x | src/server/game/Chat/Commands/TicketCommands.cpp | 16 | ||||
-rwxr-xr-x | src/server/game/Miscellaneous/Language.h | 2 | ||||
-rwxr-xr-x | src/server/game/Tickets/TicketMgr.cpp | 10 | ||||
-rwxr-xr-x | src/server/game/Tickets/TicketMgr.h | 1 |
8 files changed, 38 insertions, 0 deletions
diff --git a/sql/updates/world/2011_10_04_00_world_trinity_string.sql b/sql/updates/world/2011_10_04_00_world_trinity_string.sql new file mode 100644 index 00000000000..2dff16050e4 --- /dev/null +++ b/sql/updates/world/2011_10_04_00_world_trinity_string.sql @@ -0,0 +1,4 @@ +DELETE FROM `trinity_string` WHERE `entry` IN(2027,2028); +INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES +('2027', 'There are pending open tickets, please close them first!'), +('2028', 'All closed tickets were deleted and counter is reseted to |cffff00ff 1|r');
\ No newline at end of file diff --git a/sql/updates/world/2011_10_04_01_world_command.sql b/sql/updates/world/2011_10_04_01_world_command.sql new file mode 100644 index 00000000000..c3767c7dc00 --- /dev/null +++ b/sql/updates/world/2011_10_04_01_world_command.sql @@ -0,0 +1,3 @@ +DELETE FROM `command` WHERE `name` = 'ticket reset'; +INSERT INTO `command` (`name`, `security`, `help`) VALUES +('ticket reset', 3, 'Syntax: .ticket reset\nRemoves all closed tickets and resets the counter, if no pending open tickets are existing.');
\ No newline at end of file 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; |