summaryrefslogtreecommitdiffstats
path: root/source/cClientHandle.cpp
diff options
context:
space:
mode:
authorlapayo94@gmail.com <lapayo94@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2011-12-24 00:58:54 +0100
committerlapayo94@gmail.com <lapayo94@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2011-12-24 00:58:54 +0100
commitad610e63ba6ff21b84b455d310052985ecb78585 (patch)
treeaa371ec6f4895d48fb828bf28e1111aaf7b5d9d5 /source/cClientHandle.cpp
parentAdded thread names to cThread so when debugging in Visual Studio you actually know what thread you're looking at (diff)
downloadcuberite-ad610e63ba6ff21b84b455d310052985ecb78585.tar
cuberite-ad610e63ba6ff21b84b455d310052985ecb78585.tar.gz
cuberite-ad610e63ba6ff21b84b455d310052985ecb78585.tar.bz2
cuberite-ad610e63ba6ff21b84b455d310052985ecb78585.tar.lz
cuberite-ad610e63ba6ff21b84b455d310052985ecb78585.tar.xz
cuberite-ad610e63ba6ff21b84b455d310052985ecb78585.tar.zst
cuberite-ad610e63ba6ff21b84b455d310052985ecb78585.zip
Diffstat (limited to '')
-rw-r--r--source/cClientHandle.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/source/cClientHandle.cpp b/source/cClientHandle.cpp
index 8374a8045..548dafeb6 100644
--- a/source/cClientHandle.cpp
+++ b/source/cClientHandle.cpp
@@ -395,9 +395,10 @@ void cClientHandle::HandlePacket( cPacket* a_Packet )
case E_PING: // Somebody tries to retreive information about the server
{
LOGINFO("Got ping");
- char NumPlayers[8];
- sprintf_s(NumPlayers, 8, "%i", cRoot::Get()->GetWorld()->GetNumPlayers() );
- std::string response = std::string("MCServer! - It's OVER 9000!" + cChatColor::Delimiter + NumPlayers + cChatColor::Delimiter + "9001" );
+ char NumPlayers[8], cMaxPlayers[8];
+ sprintf_s(NumPlayers, 8, "%i", cRoot::Get()->GetWorld()->GetNumPlayers());
+ sprintf_s(cMaxPlayers, 8, "%i", cRoot::Get()->GetWorld()->GetMaxPlayers());
+ std::string response = std::string(cRoot::Get()->GetWorld()->GetDescription() + cChatColor::Delimiter + NumPlayers + cChatColor::Delimiter + cMaxPlayers );
Kick( response.c_str() );
}
break;
@@ -407,6 +408,11 @@ void cClientHandle::HandlePacket( cPacket* a_Packet )
m_pState->Username = PacketData->m_Username;
LOG("HANDSHAKE %s", GetUsername() );
cPacket_Chat Connecting(m_pState->Username + " is connecting.");
+
+ if (cRoot::Get()->GetWorld()->GetNumPlayers() == cRoot::Get()->GetWorld()->GetMaxPlayers()) {
+ Kick("The server is currently full :( -- Try again later");
+ break;
+ }
cRoot::Get()->GetServer()->Broadcast( Connecting, this );
// Give a server handshake thingy back