Make /status message easier to read
This commit is contained in:
parent
02292e03e4
commit
fe7195badb
@ -3119,15 +3119,16 @@ std::string Server::getStatusString()
|
|||||||
std::ostringstream os(std::ios_base::binary);
|
std::ostringstream os(std::ios_base::binary);
|
||||||
os << "# Server: ";
|
os << "# Server: ";
|
||||||
// Version
|
// Version
|
||||||
os << "version=" << g_version_string;
|
os << "version: " << g_version_string;
|
||||||
// Uptime
|
// Uptime
|
||||||
os << ", uptime=" << m_uptime_counter->get();
|
os << " | uptime: " << duration_to_string((int) m_uptime_counter->get());
|
||||||
// Max lag estimate
|
// Max lag estimate
|
||||||
os << ", max_lag=" << (m_env ? m_env->getMaxLagEstimate() : 0);
|
os << " | max lag: " << std::setprecision(3);
|
||||||
|
os << (m_env ? m_env->getMaxLagEstimate() : 0) << "s";
|
||||||
|
|
||||||
// Information about clients
|
// Information about clients
|
||||||
bool first = true;
|
bool first = true;
|
||||||
os << ", clients={";
|
os << " | clients: ";
|
||||||
if (m_env) {
|
if (m_env) {
|
||||||
std::vector<session_t> clients = m_clients.getClientIDs();
|
std::vector<session_t> clients = m_clients.getClientIDs();
|
||||||
for (session_t client_id : clients) {
|
for (session_t client_id : clients) {
|
||||||
@ -3144,7 +3145,6 @@ std::string Server::getStatusString()
|
|||||||
os << name;
|
os << name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
os << "}";
|
|
||||||
|
|
||||||
if (m_env && !((ServerMap*)(&m_env->getMap()))->isSavingEnabled())
|
if (m_env && !((ServerMap*)(&m_env->getMap()))->isSavingEnabled())
|
||||||
os << std::endl << "# Server: " << " WARNING: Map saving is disabled.";
|
os << std::endl << "# Server: " << " WARNING: Map saving is disabled.";
|
||||||
|
@ -661,28 +661,49 @@ inline const char *bool_to_cstr(bool val)
|
|||||||
return val ? "true" : "false";
|
return val ? "true" : "false";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a duration in seconds to a pretty-printed duration in
|
||||||
|
* days, hours, minutes and seconds.
|
||||||
|
*
|
||||||
|
* @param sec duration in seconds
|
||||||
|
* @return pretty-printed duration
|
||||||
|
*/
|
||||||
inline const std::string duration_to_string(int sec)
|
inline const std::string duration_to_string(int sec)
|
||||||
{
|
{
|
||||||
|
std::ostringstream ss;
|
||||||
|
const char *neg = "";
|
||||||
|
if (sec < 0) {
|
||||||
|
sec = -sec;
|
||||||
|
neg = "-";
|
||||||
|
}
|
||||||
|
int total_sec = sec;
|
||||||
int min = sec / 60;
|
int min = sec / 60;
|
||||||
sec %= 60;
|
sec %= 60;
|
||||||
int hour = min / 60;
|
int hour = min / 60;
|
||||||
min %= 60;
|
min %= 60;
|
||||||
|
int day = hour / 24;
|
||||||
|
hour %= 24;
|
||||||
|
|
||||||
|
if (day > 0) {
|
||||||
|
ss << neg << day << "d";
|
||||||
|
if (hour > 0 || min > 0 || sec > 0)
|
||||||
|
ss << " ";
|
||||||
|
}
|
||||||
|
|
||||||
std::stringstream ss;
|
|
||||||
if (hour > 0) {
|
if (hour > 0) {
|
||||||
ss << hour << "h";
|
ss << neg << hour << "h";
|
||||||
if (min > 0 || sec > 0)
|
if (min > 0 || sec > 0)
|
||||||
ss << " ";
|
ss << " ";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (min > 0) {
|
if (min > 0) {
|
||||||
ss << min << "min";
|
ss << neg << min << "min";
|
||||||
if (sec > 0)
|
if (sec > 0)
|
||||||
ss << " ";
|
ss << " ";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sec > 0) {
|
if (sec > 0 || total_sec == 0) {
|
||||||
ss << sec << "s";
|
ss << neg << sec << "s";
|
||||||
}
|
}
|
||||||
|
|
||||||
return ss.str();
|
return ss.str();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user