summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattes D <github@xoft.cz>2014-01-07 17:41:13 +0100
committerMattes D <github@xoft.cz>2014-01-07 17:41:13 +0100
commita87daa969e01ee3f27048ced3864c82c4e80af22 (patch)
tree5f58b341730fba9e456e7ae8d456f5de53b7aedd
parentDisabled an unneeded MSVC warning. (diff)
parentAvoid making copies of favicon string (diff)
downloadcuberite-a87daa969e01ee3f27048ced3864c82c4e80af22.tar
cuberite-a87daa969e01ee3f27048ced3864c82c4e80af22.tar.gz
cuberite-a87daa969e01ee3f27048ced3864c82c4e80af22.tar.bz2
cuberite-a87daa969e01ee3f27048ced3864c82c4e80af22.tar.lz
cuberite-a87daa969e01ee3f27048ced3864c82c4e80af22.tar.xz
cuberite-a87daa969e01ee3f27048ced3864c82c4e80af22.tar.zst
cuberite-a87daa969e01ee3f27048ced3864c82c4e80af22.zip
-rw-r--r--src/Protocol/Protocol17x.cpp3
-rw-r--r--src/Server.cpp14
-rw-r--r--src/Server.h3
3 files changed, 20 insertions, 0 deletions
diff --git a/src/Protocol/Protocol17x.cpp b/src/Protocol/Protocol17x.cpp
index 7d1f723a3..4d08df2d9 100644
--- a/src/Protocol/Protocol17x.cpp
+++ b/src/Protocol/Protocol17x.cpp
@@ -1115,6 +1115,9 @@ void cProtocol172::HandlePacketStatusRequest(cByteBuffer & a_ByteBuffer)
AppendPrintf(Response, "\"description\":{\"text\":\"%s\"}",
cRoot::Get()->GetServer()->GetDescription().c_str()
);
+ AppendPrintf(Response, "\"favicon\":\"data:image/png;base64,%s\"",
+ cRoot::Get()->GetServer()->GetFaviconData().c_str()
+ );
Response.append("}");
cPacketizer Pkt(*this, 0x00); // Response packet
diff --git a/src/Server.cpp b/src/Server.cpp
index e707235a8..b0439391c 100644
--- a/src/Server.cpp
+++ b/src/Server.cpp
@@ -203,6 +203,11 @@ bool cServer::InitServer(cIniFile & a_SettingsIni)
m_PlayerCount = 0;
m_PlayerCountDiff = 0;
+ if (cFile::Exists("favicon.png"))
+ {
+ m_FaviconData = Base64Encode(cFile::ReadWholeFile("favicon.png"));
+ }
+
if (m_bIsConnected)
{
LOGERROR("ERROR: Trying to initialize server while server is already running!");
@@ -289,6 +294,15 @@ int cServer::GetNumPlayers(void)
+const AString & cServer::GetFaviconData(void) const
+{
+ return m_FaviconData;
+}
+
+
+
+
+
void cServer::PrepareKeys(void)
{
// TODO: Save and load key for persistence across sessions
diff --git a/src/Server.h b/src/Server.h
index e62c4c7b7..2609b6874 100644
--- a/src/Server.h
+++ b/src/Server.h
@@ -106,6 +106,8 @@ public: // tolua_export
/// Notifies the server that a player is being destroyed; the server uses this to adjust the number of players
void PlayerDestroying(const cPlayer * a_Player);
+
+ const AString & GetFaviconData(void) const;
CryptoPP::RSA::PrivateKey & GetPrivateKey(void) { return m_PrivateKey; }
CryptoPP::RSA::PublicKey & GetPublicKey (void) { return m_PublicKey; }
@@ -183,6 +185,7 @@ private:
cRCONServer m_RCONServer;
AString m_Description;
+ AString m_FaviconData;
int m_MaxPlayers;
bool m_bIsHardcore;