aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/World
diff options
context:
space:
mode:
authortreeston <treeston.mmoc@gmail.com>2016-08-06 14:33:29 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-02-11 22:35:00 +0100
commitaf6041740cd3fc3fe4120155377d523bdc5d2b75 (patch)
treea6baa450c3bf7933c474efcdd7105445a69f55d1 /src/server/game/World
parentdb668cde4689aae48c4698625709c0ee9c44f674 (diff)
Scripts/Commands: Some adjustments to make shutdown commands more user-friendly.
- New error message if a shutdown is delayed due to force threshold. - New status message indicating that a server shutdown was successfully cancelled. (cherry picked from commit d7602190623153c8f211ad120e22c6e63371f3db)
Diffstat (limited to 'src/server/game/World')
-rw-r--r--src/server/game/World/World.cpp8
-rw-r--r--src/server/game/World/World.h2
2 files changed, 6 insertions, 4 deletions
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index 8aaa8b144c8..d381a7aa029 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -2935,22 +2935,24 @@ void World::ShutdownMsg(bool show, Player* player, const std::string& reason)
}
/// Cancel a planned server shutdown
-void World::ShutdownCancel()
+uint32 World::ShutdownCancel()
{
// nothing cancel or too later
if (!m_ShutdownTimer || m_stopEvent)
- return;
+ return 0;
ServerMessageType msgid = (m_ShutdownMask & SHUTDOWN_MASK_RESTART) ? SERVER_MSG_RESTART_CANCELLED : SERVER_MSG_SHUTDOWN_CANCELLED;
+ uint32 oldTimer = m_ShutdownTimer;
m_ShutdownMask = 0;
m_ShutdownTimer = 0;
m_ExitCode = SHUTDOWN_EXIT_CODE; // to default value
SendServerMessage(msgid);
- TC_LOG_DEBUG("misc", "Server %s cancelled.", (m_ShutdownMask & SHUTDOWN_MASK_RESTART ? "restart" : "shuttingdown"));
+ TC_LOG_DEBUG("misc", "Server %s cancelled.", (m_ShutdownMask & SHUTDOWN_MASK_RESTART ? "restart" : "shutdown"));
sScriptMgr->OnShutdownCancel();
+ return oldTimer;
}
/// Send a server message to the user(s)
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index 2b7ab63b36a..49624b42e55 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -696,7 +696,7 @@ class TC_GAME_API World
bool IsShuttingDown() const { return m_ShutdownTimer > 0; }
uint32 GetShutDownTimeLeft() const { return m_ShutdownTimer; }
void ShutdownServ(uint32 time, uint32 options, uint8 exitcode, const std::string& reason = std::string());
- void ShutdownCancel();
+ uint32 ShutdownCancel();
void ShutdownMsg(bool show = false, Player* player = NULL, const std::string& reason = std::string());
static uint8 GetExitCode() { return m_ExitCode; }
static void StopNow(uint8 exitcode) { m_stopEvent = true; m_ExitCode = exitcode; }