Merge remote-tracking branch 'itsRevela/main'

# Conflicts:
#	.github/workflows/nightly.yml
#	.gitignore
#	Minecraft.Client/ChatScreen.cpp
#	Minecraft.Client/ClientConnection.cpp
#	Minecraft.Client/Common/Audio/SoundEngine.cpp
#	Minecraft.Client/Common/Audio/SoundEngine.h
#	Minecraft.Client/Common/Media/MediaWindows64.arc
#	Minecraft.Client/Common/UI/IUIScene_HUD.cpp
#	Minecraft.Client/Common/UI/UIControl_Base.cpp
#	Minecraft.Client/Common/UI/UIScene_DeathMenu.cpp
#	Minecraft.Client/Common/UI/UIScene_JoinMenu.cpp
#	Minecraft.Client/Common/XUI/XUI_Chat.cpp
#	Minecraft.Client/Common/XUI/XUI_Death.cpp
#	Minecraft.Client/Font.cpp
#	Minecraft.Client/Gui.cpp
#	Minecraft.Client/PendingConnection.cpp
#	Minecraft.Client/PlayerConnection.cpp
#	Minecraft.Client/PlayerConnection.h
#	Minecraft.Client/PlayerList.cpp
#	Minecraft.Client/Windows64/Network/WinsockNetLayer.cpp
#	Minecraft.Client/Windows64/Network/WinsockNetLayer.h
#	Minecraft.Client/Windows64Media/strings.h
#	Minecraft.Client/cmake/sources/Common.cmake
#	Minecraft.Server/Console/ServerCliEngine.cpp
#	Minecraft.Server/Console/commands/whitelist/CliCommandWhitelist.cpp
#	Minecraft.Server/Windows64/ServerMain.cpp
#	Minecraft.World/WitherBoss.h
#	Minecraft.World/cmake/sources/Common.cmake
#	README.md
This commit is contained in:
George V.
2026-04-09 15:21:43 +03:00
220 changed files with 13703 additions and 1209 deletions
+15
View File
@@ -10,6 +10,10 @@
#include "../Minecraft.World/Socket.h"
#include "../Minecraft.World/net.minecraft.world.level.h"
#include "MultiPlayerLevel.h"
#if defined(_WINDOWS64) && defined(MINECRAFT_SERVER_BUILD)
#include "..\Minecraft.Server\Security\SecurityConfig.h"
#include "..\Minecraft.Server\ServerLogManager.h"
#endif
ServerConnection::ServerConnection(MinecraftServer *server)
{
@@ -40,6 +44,17 @@ void ServerConnection::addPlayerConnection(shared_ptr<PlayerConnection> uc)
void ServerConnection::handleConnection(shared_ptr<PendingConnection> uc)
{
EnterCriticalSection(&pending_cs);
#if defined(_WINDOWS64) && defined(MINECRAFT_SERVER_BUILD)
int maxPending = ServerRuntime::Security::GetSettings().maxPendingConnections;
if (maxPending > 0 && static_cast<int>(pending.size()) >= maxPending)
{
LeaveCriticalSection(&pending_cs);
app.DebugPrintf("SECURITY: Rejecting connection, too many pending (%d/%d)\n",
static_cast<int>(pending.size()), maxPending);
uc->disconnect(DisconnectPacket::eDisconnect_ServerFull);
return;
}
#endif
pending.push_back(uc);
LeaveCriticalSection(&pending_cs);
}