Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}
Esempio n. 4
0
bool ChatHandler::HandleAccountCommand(const char* /*args*/)
{
    AccountTypes gmlevel = GetAccessLevel();
    PSendSysMessage(LANG_ACCOUNT_LEVEL, uint32(gmlevel));
    return true;
}