bool ChatHandler::HandleAccountCommand(char* args) { // let show subcommands at unexpected data in args if (*args) return false; AccountTypes gmlevel = GetAccessLevel(); PSendSysMessage(LANG_ACCOUNT_LEVEL, uint32(gmlevel)); return true; }
bool ChatHandler::HandleServerInfoCommand(const char* /*args*/) { uint32 activeClientsNum = sWorld.GetActiveSessionCount(); //uint32 queuedClientsNum = sWorld.GetQueuedSessionCount(); uint32 maxActiveClientsNum = sWorld.GetMaxActiveSessionCount(); //uint32 maxQueuedClientsNum = sWorld.GetMaxQueuedSessionCount(); std::string str = secsToTimeString(sWorld.GetUptime()); char const* valhalla_rev = REVISION_VP; char const* valhalla_rev_date = REVISION_VP_DATE; char const* full; if(m_session) full = _FULLVERSION(REVISION_DATE,REVISION_TIME,REVISION_NR,"|cffffffff|Hurl:" REVISION_ID "|h" REVISION_ID "|h|r"); else full = _FULLVERSION(REVISION_DATE,REVISION_TIME,REVISION_NR,REVISION_ID); SendSysMessage(full); if(GetAccessLevel() > SEC_PLAYER) { PSendSysMessage(LANG_USING_SCRIPT_LIB,sWorld.GetScriptsVersion()); PSendSysMessage(LANG_USING_WORLD_DB,sWorld.GetDBVersion()); PSendSysMessage(LANG_USING_EVENT_AI,sWorld.GetCreatureEventAIVersion()); } PSendSysMessage("Revision [%s][%s] - MaNGOS modified for Valhalla Server", valhalla_rev_date, valhalla_rev); SendSysMessage("Changelog: http://valhalla-team.com/web/changelog.php"); PSendSysMessage(LANG_CONNECTED_USERS, activeClientsNum, maxActiveClientsNum); PSendSysMessage(LANG_UPTIME, str.c_str()); PSendSysMessage("World diff time: %u", sWorld.GetDiffTime()); if(sWorld.IsShutdowning()) { const char *type = (sWorld.GetShutdownMask() & SHUTDOWN_MASK_RESTART) ? "Restart" : "Shutdown"; uint32 shutdownTimer = sWorld.GetShutdownTimer(); if(shutdownTimer > 60*60) //Hours { uint8 hours = shutdownTimer / (60*60); uint8 mins = (shutdownTimer - hours*60*60) / 60; uint8 secs = (shutdownTimer - hours*60*60 - mins*60); PSendSysMessage("[SERVER] %s in %u hours, %u minutes and %u seconds", type, hours, mins, secs); } else if(shutdownTimer > 60) // Minutes { uint8 mins = shutdownTimer / 60; uint8 secs = (shutdownTimer - mins*60); PSendSysMessage("[SERVER] %s in %u minutes and %u seconds", type, mins, secs); } else //Only seconds PSendSysMessage("[SERVER] %s in %u seconds", type, shutdownTimer); } return true; }
bool ChatHandler::HandleSaveCommand(char* /*args*/) { Player *player=m_session->GetPlayer(); // save GM account without delay and output message (testing, etc) if(GetAccessLevel() > SEC_PLAYER) { player->SaveToDB(); SendSysMessage(LANG_PLAYER_SAVED); return true; } // save or plan save after 20 sec (logout delay) if current next save time more this value and _not_ output any messages to prevent cheat planning uint32 save_interval = sWorld.getConfig(CONFIG_UINT32_INTERVAL_SAVE); if (save_interval==0 || (save_interval > 20*IN_MILLISECONDS && player->GetSaveTimer() <= save_interval - 20*IN_MILLISECONDS)) player->SaveToDB(); return true; }
bool ChatHandler::HandleAccountCommand(const char* /*args*/) { AccountTypes gmlevel = GetAccessLevel(); PSendSysMessage(LANG_ACCOUNT_LEVEL, uint32(gmlevel)); return true; }