diff options
author | click <none@none> | 2010-11-14 00:29:34 +0100 |
---|---|---|
committer | click <none@none> | 2010-11-14 00:29:34 +0100 |
commit | c0536f374abcd64d3e7e5b68fb570edffc2f23df (patch) | |
tree | d5fc3f02ed4fed987b59594d03cbae03e96f0e63 /src | |
parent | 9ba52c474bc236406c8f8562c7db3f3316bcfabc (diff) |
Core: Allow toggling ticketsystem on/off by config-setting (patch by leak)
Closes issue 4744.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Chat/Commands/TicketCommands.cpp | 5 | ||||
-rwxr-xr-x | src/server/game/Miscellaneous/Language.h | 4 | ||||
-rwxr-xr-x | src/server/game/Server/Protocol/Handlers/TicketHandler.cpp | 5 | ||||
-rwxr-xr-x | src/server/game/Tickets/TicketMgr.h | 7 | ||||
-rwxr-xr-x | src/server/game/World/World.cpp | 5 | ||||
-rwxr-xr-x | src/server/game/World/World.h | 1 | ||||
-rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 6 |
7 files changed, 31 insertions, 2 deletions
diff --git a/src/server/game/Chat/Commands/TicketCommands.cpp b/src/server/game/Chat/Commands/TicketCommands.cpp index 81b4a475ab4..018e4da0ad6 100755 --- a/src/server/game/Chat/Commands/TicketCommands.cpp +++ b/src/server/game/Chat/Commands/TicketCommands.cpp @@ -436,6 +436,11 @@ bool ChatHandler::HandleGMTicketReloadCommand(const char* /* args */) bool ChatHandler::HandleToggleGMTicketSystem(const char* /* args */) { sTicketMgr.SetStatus(!sTicketMgr.GetStatus()); + if(sTicketMgr.GetStatus()) + PSendSysMessage(LANG_ALLOW_TICKETS); + else + PSendSysMessage(LANG_DISALLOW_TICKETS); + return true; } diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h index 876cef6cfbd..12e5bff8d47 100755 --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -797,7 +797,9 @@ enum TrinityStrings LANG_BANLIST_MATCHINGCHARACTER = 1131, LANG_BANLIST_CHARACTERS = 1132, LANG_BANLIST_CHARACTERS_HEADER = 1133, - // Room for more level 3 1134-1199 not used + LANG_ALLOW_TICKETS = 1134, + LANG_DISALLOW_TICKETS = 1135, + // Room for more level 3 1136-1199 not used // Debug commands LANG_CINEMATIC_NOT_EXIST = 1200, diff --git a/src/server/game/Server/Protocol/Handlers/TicketHandler.cpp b/src/server/game/Server/Protocol/Handlers/TicketHandler.cpp index 8a42be87f4a..2e05078f51d 100755 --- a/src/server/game/Server/Protocol/Handlers/TicketHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/TicketHandler.cpp @@ -28,6 +28,10 @@ void WorldSession::HandleGMTicketCreateOpcode(WorldPacket & recv_data) { + // Don't accept tickets if the ticket queue is disabled. (Ticket UI is greyed out but not fully dependable) + if (sTicketMgr.GetStatus() == GMTICKET_QUEUE_STATUS_DISABLED) + return; + if (GetPlayer()->getLevel() < sWorld.getIntConfig(CONFIG_TICKET_LEVEL_REQ)) { SendNotification(GetTrinityString(LANG_TICKET_REQ), sWorld.getIntConfig(CONFIG_TICKET_LEVEL_REQ)); @@ -144,6 +148,7 @@ void WorldSession::HandleGMTicketGetTicketOpcode(WorldPacket & /*recv_data*/) void WorldSession::HandleGMTicketSystemStatusOpcode(WorldPacket & /*recv_data*/) { WorldPacket data(SMSG_GMTICKET_SYSTEMSTATUS, 4); + // Note: This only disables the ticket UI at client side and is not fully reliable // are we sure this is a uint32? Should ask Zor data << uint32(sTicketMgr.GetStatus() ? GMTICKET_QUEUE_STATUS_ENABLED : GMTICKET_QUEUE_STATUS_DISABLED); SendPacket(&data); diff --git a/src/server/game/Tickets/TicketMgr.h b/src/server/game/Tickets/TicketMgr.h index e91c0763ae6..9ff32616dc2 100755 --- a/src/server/game/Tickets/TicketMgr.h +++ b/src/server/game/Tickets/TicketMgr.h @@ -28,7 +28,7 @@ // from blizzard lua enum GMTicketSystemStatus { - GMTICKET_QUEUE_STATUS_DISABLED = -1, + GMTICKET_QUEUE_STATUS_DISABLED = 0, GMTICKET_QUEUE_STATUS_ENABLED = 1, }; @@ -134,6 +134,11 @@ public: uint64 GetOpenTicketCount() { return m_openTickets; } uint64 GetNextSurveyID() { return ++m_GMSurveyID; } + void Initialize() + { + SetStatus(sWorld.getBoolConfig(CONFIG_ALLOW_TICKETS)); + } + GM_Ticket *GetOldestOpenGMTicket() { for (GmTicketList::const_iterator i = m_GMTicketList.begin(); i != m_GMTicketList.end(); ++i) diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 30fd869def1..a0199a4d2d4 100755 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -400,6 +400,9 @@ void World::LoadConfigSettings(bool reload) SetPlayerAmountLimit(sConfig.GetIntDefault("PlayerLimit", 100)); SetMotd(sConfig.GetStringDefault("Motd", "Welcome to a Trinity Core Server.")); + ///- Read ticket system setting from the config file + m_bool_configs[CONFIG_ALLOW_TICKETS] = sConfig.GetBoolDefault("AllowTickets", true); + ///- Get string for new logins (newly created characters) SetNewCharString(sConfig.GetStringDefault("PlayerStart.String", "")); @@ -1670,6 +1673,8 @@ void World::SetInitialWorldSettings() sLog.outString("Starting Arena Season..."); sGameEventMgr.StartArenaSeason(); + sTicketMgr.Initialize(); + sLog.outString("Loading World States..."); // must be loaded before battleground and outdoor PvP LoadWorldStates(); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 92e53e7ef82..d442ad18442 100755 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -161,6 +161,7 @@ enum WorldBoolConfigs CONFIG_CHATLOG_BGROUND, CONFIG_DUNGEON_FINDER_ENABLE, CONFIG_AUTOBROADCAST, + CONFIG_ALLOW_TICKETS, BOOL_CONFIG_VALUE_COUNT }; diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 3f6f6d75636..814e7073deb 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -957,6 +957,11 @@ ChatLogTimestamp = 0 # The maximum number of results a .lookup command can return # Default: 0 - unlimited # +# AllowTickets +# Allow/disallow sending new tickets. +# Default: 1 (true) +# 0 (false) +# ############################################################################### GameType = 0 @@ -1020,6 +1025,7 @@ BeepAtStart = 1 Motd = "Welcome to a Trinity Core server." Server.LoginInfo = 0 Command.LookupMaxResults = 0 +AllowTickets = 1 ############################################################################### # PLAYER INTERACTION |