diff options
| author | treeston <treeston.mmoc@gmail.com> | 2016-08-06 14:33:29 +0200 |
|---|---|---|
| committer | joschiwald <joschiwald.trinity@gmail.com> | 2017-02-11 22:35:00 +0100 |
| commit | af6041740cd3fc3fe4120155377d523bdc5d2b75 (patch) | |
| tree | a6baa450c3bf7933c474efcdd7105445a69f55d1 /src/server/scripts/Commands | |
| parent | db668cde4689aae48c4698625709c0ee9c44f674 (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/scripts/Commands')
| -rw-r--r-- | src/server/scripts/Commands/cs_server.cpp | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/src/server/scripts/Commands/cs_server.cpp b/src/server/scripts/Commands/cs_server.cpp index b75cdb2f4fd..45d958462fc 100644 --- a/src/server/scripts/Commands/cs_server.cpp +++ b/src/server/scripts/Commands/cs_server.cpp @@ -191,9 +191,10 @@ public: return true; } - static bool HandleServerShutDownCancelCommand(ChatHandler* /*handler*/, char const* /*args*/) + static bool HandleServerShutDownCancelCommand(ChatHandler* handler, char const* /*args*/) { - sWorld->ShutdownCancel(); + if (uint32 timer = sWorld->ShutdownCancel()) + handler->PSendSysMessage(LANG_SHUTDOWN_CANCELLED, timer); return true; } @@ -210,32 +211,32 @@ public: } static bool HandleServerShutDownCommand(ChatHandler* handler, char const* args) { - return ShutdownServer(args, IsOnlyUser(handler->GetSession()) ? SHUTDOWN_MASK_FORCE : 0, SHUTDOWN_EXIT_CODE); + return ShutdownServer(handler, args, 0, SHUTDOWN_EXIT_CODE); } static bool HandleServerRestartCommand(ChatHandler* handler, char const* args) { - return ShutdownServer(args, IsOnlyUser(handler->GetSession()) ? (SHUTDOWN_MASK_FORCE | SHUTDOWN_MASK_RESTART) : SHUTDOWN_MASK_RESTART, RESTART_EXIT_CODE); + return ShutdownServer(handler, args, SHUTDOWN_MASK_RESTART, RESTART_EXIT_CODE); } - static bool HandleServerForceShutDownCommand(ChatHandler* /*handler*/, char const* args) + static bool HandleServerForceShutDownCommand(ChatHandler* handler, char const* args) { - return ShutdownServer(args, SHUTDOWN_MASK_FORCE, SHUTDOWN_EXIT_CODE); + return ShutdownServer(handler, args, SHUTDOWN_MASK_FORCE, SHUTDOWN_EXIT_CODE); } - static bool HandleServerForceRestartCommand(ChatHandler* /*handler*/, char const* args) + static bool HandleServerForceRestartCommand(ChatHandler* handler, char const* args) { - return ShutdownServer(args, SHUTDOWN_MASK_FORCE | SHUTDOWN_MASK_RESTART, RESTART_EXIT_CODE); + return ShutdownServer(handler, args, SHUTDOWN_MASK_FORCE | SHUTDOWN_MASK_RESTART, RESTART_EXIT_CODE); } - static bool HandleServerIdleShutDownCommand(ChatHandler* /*handler*/, char const* args) + static bool HandleServerIdleShutDownCommand(ChatHandler* handler, char const* args) { - return ShutdownServer(args, SHUTDOWN_MASK_IDLE, SHUTDOWN_EXIT_CODE); + return ShutdownServer(handler, args, SHUTDOWN_MASK_IDLE, SHUTDOWN_EXIT_CODE); } - static bool HandleServerIdleRestartCommand(ChatHandler* /*handler*/, char const* args) + static bool HandleServerIdleRestartCommand(ChatHandler* handler, char const* args) { - return ShutdownServer(args, SHUTDOWN_MASK_RESTART | SHUTDOWN_MASK_IDLE, RESTART_EXIT_CODE); + return ShutdownServer(handler, args, SHUTDOWN_MASK_RESTART | SHUTDOWN_MASK_IDLE, RESTART_EXIT_CODE); } // Exit the realm @@ -330,7 +331,7 @@ private: return true; } - static bool ShutdownServer(char const* args, uint32 shutdownMask, int32 defaultExitCode) + static bool ShutdownServer(ChatHandler* handler, char const* args, uint32 shutdownMask, int32 defaultExitCode) { if (!*args) return false; @@ -385,8 +386,11 @@ private: return false; // Override parameter "delay" with the configuration value if there are still players connected and "force" parameter was not specified - if (delay < (int32)sWorld->getIntConfig(CONFIG_FORCE_SHUTDOWN_THRESHOLD) && !(shutdownMask & SHUTDOWN_MASK_FORCE)) + if (delay < (int32)sWorld->getIntConfig(CONFIG_FORCE_SHUTDOWN_THRESHOLD) && !(shutdownMask & SHUTDOWN_MASK_FORCE) && !IsOnlyUser(handler->GetSession())) + { delay = (int32)sWorld->getIntConfig(CONFIG_FORCE_SHUTDOWN_THRESHOLD); + handler->PSendSysMessage(LANG_SHUTDOWN_DELAYED, delay); + } sWorld->ShutdownServ(delay, shutdownMask, static_cast<uint8>(exitCode), std::string(reason)); |
