From 521fc55e8789510389527ea987d96b5e75fd9dad Mon Sep 17 00:00:00 2001 From: NOTPIES Date: Mon, 16 Mar 2026 00:02:49 -0300 Subject: [PATCH] fix: lan max players --- Minecraft.Client/PlayerList.cpp | 9 +++++---- Minecraft.Client/Windows64/Network/WinsockNetLayer.cpp | 4 ++++ Minecraft.Server | 2 +- Minecraft.World/x64headers/extraX64.h | 4 ++++ 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Minecraft.Client/PlayerList.cpp b/Minecraft.Client/PlayerList.cpp index c5fc245..c4e0d70 100644 --- a/Minecraft.Client/PlayerList.cpp +++ b/Minecraft.Client/PlayerList.cpp @@ -57,7 +57,8 @@ PlayerList::PlayerList(MinecraftServer *server) //int viewDistance = server->settings->getInt(L"view-distance", 10); #ifdef _DEDICATED_SERVER - maxPlayers = server->settings->getInt(L"max-players", 8); + extern int g_ServerMaxPlayers; + maxPlayers = g_ServerMaxPlayers; #elif defined(_WINDOWS64) maxPlayers = MINECRAFT_NET_MAX_PLAYERS; #else @@ -132,13 +133,13 @@ void PlayerList::placeNewPlayer(Connection *connection, shared_ptr DWORD playerIndex = 0; { - bool usedIndexes[MINECRAFT_NET_MAX_PLAYERS]; - ZeroMemory( &usedIndexes, MINECRAFT_NET_MAX_PLAYERS * sizeof(bool) ); + bool usedIndexes[32]; + ZeroMemory( &usedIndexes, 32 * sizeof(bool) ); for(AUTO_VAR(it, players.begin()); it < players.end(); ++it) { usedIndexes[ (int)(*it)->getPlayerIndex() ] = true; } - for(unsigned int i = 0; i < MINECRAFT_NET_MAX_PLAYERS; ++i) + for(unsigned int i = 0; i < (unsigned int)maxPlayers; ++i) { if(!usedIndexes[i]) { diff --git a/Minecraft.Client/Windows64/Network/WinsockNetLayer.cpp b/Minecraft.Client/Windows64/Network/WinsockNetLayer.cpp index 29d6ac8..a4a71c2 100644 --- a/Minecraft.Client/Windows64/Network/WinsockNetLayer.cpp +++ b/Minecraft.Client/Windows64/Network/WinsockNetLayer.cpp @@ -59,7 +59,11 @@ char g_Win64MultiplayerIP[256] = "127.0.0.1"; bool g_ServerAdvertiseLAN = true; char g_ServerBindAddress[256] = ""; +#ifdef _DEDICATED_SERVER int g_ServerMaxPlayers = MINECRAFT_NET_MAX_PLAYERS; +#else +int g_ServerMaxPlayers = 8; +#endif bool WinsockNetLayer::Initialize() { diff --git a/Minecraft.Server b/Minecraft.Server index db5a8c9..d611a6f 160000 --- a/Minecraft.Server +++ b/Minecraft.Server @@ -1 +1 @@ -Subproject commit db5a8c90898c094e04ba85aeea12028ccf76b088 +Subproject commit d611a6fdba2d64107faf33d03b223d14055e8a08 diff --git a/Minecraft.World/x64headers/extraX64.h b/Minecraft.World/x64headers/extraX64.h index 0053b22..133eb52 100644 --- a/Minecraft.World/x64headers/extraX64.h +++ b/Minecraft.World/x64headers/extraX64.h @@ -29,8 +29,12 @@ const int MINECRAFT_NET_MAX_PLAYERS = 4; #ifndef XUSER_MAX_COUNT const int XUSER_MAX_COUNT = 4; #endif +#if defined(_DEDICATED_SERVER) || defined(_WINDOWS64) +const int MINECRAFT_NET_MAX_PLAYERS = 32; +#else const int MINECRAFT_NET_MAX_PLAYERS = 8; #endif +#endif