Server Banner and Status redone

This commit is contained in:
Antz 2017-02-13 22:12:00 +00:00
parent cf04a9518e
commit fcbc6e77c2
6 changed files with 209 additions and 22 deletions

View File

@ -2576,6 +2576,7 @@ enum TrackedAuraType
// will only support 1.12.1 client (build 5875), 1.12.2 client (build 6005) and 1.12.3 client (build 6141)..
#define EXPECTED_MANGOSD_CLIENT_BUILD {5875, 6005, 6141, 0}
#define EXPECTED_MANGOSD_CLIENT_VERSION {"1.12.x"}
// Max creature level (included some bosses and elite)
#define DEFAULT_MAX_CREATURE_LEVEL 65

View File

@ -71,6 +71,7 @@
#include "LFGMgr.h"
#include "DisableMgr.h"
#include "Language.h"
#include "revision.h"
#ifdef ENABLE_ELUNA
#include "LuaEngine.h"
@ -1491,16 +1492,99 @@ void World::SetInitialWorldSettings()
sPlayerbotAIConfig.Initialize();
#endif
sLog.outString("------------------------");
sLog.outString("WORLD: World initialized");
sLog.outString("------------------------");
sLog.outString();
showFooter();
uint32 uStartInterval = WorldTimer::getMSTimeDiff(uStartTime, WorldTimer::getMSTime());
sLog.outString("SERVER STARTUP TIME: %i minutes %i seconds", uStartInterval / 60000, (uStartInterval % 60000) / 1000);
sLog.outString();
}
void World::showFooter()
{
std::set<std::string> modules_;
// ELUNA is either included or disabled
#ifdef ENABLE_ELUNA
modules_.insert(" Eluna : Enabled");
#endif
// SD3 is either included or disabled
#ifdef ENABLE_SD3
modules_.insert(" ScriptDev3 (SD3) : Enabled");
#endif
// PLAYERBOTS can be included or excluded but also disabled via mangos.conf
#ifdef ENABLE_PLAYERBOTS
bool playerBotActive = sConfig.GetBoolDefault("PlayerbotAI.DisableBots", true);
if (playerBotActive)
{
modules_.insert(" PlayerBots : Disabled");
}
else
{
modules_.insert(" PlayerBots : Enabled");
}
#endif
// Remote Access can be activated / deactivated via mangos.conf
bool raActive = sConfig.GetBoolDefault("Ra.Enable", false);
if (raActive)
{
modules_.insert(" Remote Access (RA) : Enabled");
}
else
{
modules_.insert(" Remote Access (RA) : Disabled");
}
// SOAP can be included or excluded but also disabled via mangos.conf
#ifdef ENABLE_SOAP
bool soapActive = sConfig.GetBoolDefault("SOAP.Enabled", false);
if (soapActive)
{
modules_.insert(" SOAP : Enabled");
}
else
{
modules_.insert(" SOAP : Disabled");
}
#endif
// Warden is always included, set active or disabled via mangos.conf
bool wardenActive = (sWorld.getConfig(CONFIG_BOOL_WARDEN_WIN_ENABLED) || sWorld.getConfig(CONFIG_BOOL_WARDEN_OSX_ENABLED));
if (wardenActive)
{
modules_.insert(" Warden : Enabled");
}
else
{
modules_.insert(" Warden : Disabled");
}
std::string thisClientVersion = EXPECTED_MANGOSD_CLIENT_VERSION;
std::string thisClientBuilds = AcceptableClientBuildsListStr();
std::string sModules;
for (std::set<std::string>::const_iterator it = modules_.begin(); it != modules_.end(); ++it)
sModules = sModules + " \n" + *it;
sLog.outString("\n"
"_______________________________________________________\n"
"\n"
" MaNGOS Server: World Initialization Complete\n"
"_______________________________________________________\n"
"\n"
" Server Version : %s\n"
" Database Version : Rel%i.%i.%i\n"
"\n"
" Supporting Clients : %s\n"
" Builds : %s\n"
"\n"
" Module Status -\n%s\n"
"_______________________________________________________\n"
, REVISION_NR, WORLD_DB_VERSION_NR, WORLD_DB_STRUCTURE_NR, WORLD_DB_CONTENT_NR, thisClientVersion.c_str(), thisClientBuilds.c_str(), sModules.c_str());
}
void World::DetectDBCLang()
{
uint32 m_lang_confid = sConfig.GetIntDefault("DBC.Locale", 255);

View File

@ -489,6 +489,7 @@ class World
void SetMotd(const std::string& motd) { m_motd = motd; }
/// Get the current Message of the Day
const char* GetMotd() const { return m_motd.c_str(); }
void showFooter();
LocaleConstant GetDefaultDbcLocale() const { return m_defaultDbcLocale; }

View File

@ -272,24 +272,6 @@ static void usage(const char* prog)
, prog);
}
/// Print out the core banner
static void print_banner()
{
sLog.outString("<Ctrl-C> to stop.\n"
" __ __ _ _ ___ ___ ___ \n"
" | \\/ |__ _| \\| |/ __|/ _ \\/ __| We Love \n"
" | |\\/| / _` | .` | (_ | (_) \\__ \\ Vanilla Wow \n"
" |_| |_\\__,_|_|\\_|\\___|\\___/|___/ \n"
" ____ \n"
" For help and support please visit: /_ /___ _ _ ___ \n"
" Website: https://getmangos.eu / // -_) '_/ _ \\ \n"
" Forum / Wiki: https://getmangos.eu /___\\___|_| \\___/\n"
);
}
/// Launch the mangos server
int main(int argc, char** argv)
{

View File

@ -29,6 +29,7 @@
#include <mersennetwister/MersenneTwister.h>
#include <ace/TSS_T.h>
#include <ace/INET_Addr.h>
#include "Log/Log.h"
typedef ACE_TSS<MTRand> MTRandTSS;
static MTRandTSS *mtRand;
@ -587,3 +588,109 @@ void utf8printf(FILE* out, const char* str, ...)
va_end(ap);
}
int return_iCoreNumber()
{
#if defined(CLASSIC)
return 0;
#elif defined(TBC)
return 1;
#elif defined(WOTLK)
return 2;
#elif defined(CATA)
return 3;
#elif defined(MOP)
return 4;
#elif defined(WOD)
return 5;
#elif defined(LEGION)
return 6;
#else
return -1;
#endif
}
/// Print out the core banner
void print_banner()
{
int iCoreNumber = return_iCoreNumber();
switch (iCoreNumber)
{
case 0: // CLASSIC
sLog.outString("<Ctrl-C> to stop.\n"
" __ __ _ _ ___ ___ ___ ____ \n"
" | \\/ |__ _| \\| |/ __|/ _ \\/ __| /_ /___ _ _ ___ \n"
" | |\\/| / _` | .` | (_ | (_) \\__ \\ / // -_) '_/ _ \\ \n"
" |_| |_\\__,_|_|\\_|\\___|\\___/|___/ /___\\___|_| \\___/\n"
" Powered By MaNGOS Core\n"
"__________________________________________________________\n"
"\n"
"Website/Forum/Wiki/Issue Tracker: https://www.getmangos.eu\n"
"__________________________________________________________\n"
"\n");
break;
case 1: // TBC
sLog.outString("<Ctrl-C> to stop.\n"
" __ __ _ _ ___ ___ ___ ___ \n"
" | \\/ |__ _| \\| |/ __|/ _ \\/ __| / _ \\ ___ ___ \n"
" | |\\/| / _` | .` | (_ | (_) \\__ \\ | (_) | \\/ -_) \n"
" |_| |_\\__,_|_|\\_|\\___|\\___/|___/ \\___/|_||_\\___|\n"
" Powered By MaNGOS Core\n"
" __________________________________________________________\n"
"\n"
" Website/Forum/Wiki/Issue Tracker: https://www.getmangos.eu\n"
" __________________________________________________________\n"
"\n");
break;
case 2: // WOTLK
sLog.outString("<Ctrl-C> to stop.\n"
" __ __ _ _ ___ ___ ___ _____ \n"
" | \\/ |__ _| \\| |/ __|/ _ \\/ __| |_ _|_ __ _____\n"
" | |\\/| / _` | .` | (_ | (_) \\__ \\ | | \\ V V / _ \\\n"
" |_| |_\\__,_|_|\\_|\\___|\\___/|___/ |_| \\_/\\_/\\___/ \n"
" Powered By MaNGOS Core\n"
" __________________________________________________________\n"
"\n"
" Website/Forum/Wiki/Issue Tracker: https://www.getmangos.eu\n"
" __________________________________________________________\n"
"\n");
break;
case 3: // CATA
sLog.outString("<Ctrl-C> to stop.\n"
" __ __ _ _ ___ ___ ___ _____ _ \n"
" | \\/ |__ _| \\| |/ __|/ _ \\/ __| |_ _| |_ _ _ ___ ___ \n"
" | |\\/| / _` | .` | (_ | (_) \\__ \\ | | | ' \\| '_/ -_) -_) \n"
" |_| |_\\__,_|_|\\_|\\___|\\___/|___/ |_| |_||_|_| \\___\\___| \n"
" Powered By MaNGOS Core\n"
" __________________________________________________________\n"
"\n"
" Website/Forum/Wiki/Issue Tracker: https://www.getmangos.eu\n"
" __________________________________________________________\n"
"\n");
break;
case 4: // MOP
sLog.outString("<Ctrl-C> to stop.\n"
" __ __ _ _ ___ ___ ___ _____ \n"
" | \\/ |__ _| \\| |/ __|/ _ \\/ __| | __|__ _ _ _ _ \n"
" | |\\/| / _` | .` | (_ | (_) \\__ \\ | _/ _ \\ || | '_|\n"
" |_| |_\\__,_|_|\\_|\\___|\\___/|___/ |_|\\___/\\_,_|_| \n"
" Powered By MaNGOS Core\n"
" __________________________________________________________\n"
"\n"
" Website/Forum/Wiki/Issue Tracker: https://www.getmangos.eu\n"
" __________________________________________________________\n"
"\n");
break;
default:
sLog.outString("<Ctrl-C> to stop.\n"
" __ __ _ _ ___ ___ ___ \n"
" | \\/ |__ _| \\| |/ __|/ _ \\/ __| We have a problem ! \n"
" | |\\/| / _` | .` | (_ | (_) \\__ \\ Your version of MaNGOS \n"
" |_| |_\\__,_|_|\\_|\\___|\\___/|___/ could not be detected \n"
" __________________________________________________________\n"
"\n"
" Website/Forum/Wiki/Issue Tracker: https://www.getmangos.eu\n"
" __________________________________________________________\n"
"\n");
break;
}
}

View File

@ -748,4 +748,16 @@ void hexEncodeByteArray(uint8* bytes, uint32 arrayLen, std::string& result);
std::string ByteArrayToHexStr(uint8 const* bytes, uint32 length, bool reverse = false);
void HexStrToByteArray(std::string const& str, uint8* out, bool reverse = false);
/**
* @brief Define iCoreNumber to be set for the currently defined core
*
* @return int
*/
int return_iCoreNumber();
/**
* @brief Display the startup banner
*/
void print_banner();
#endif