diff --git a/paper-server/patches/sources/net/minecraft/server/network/ServerStatusPacketListenerImpl.java.patch b/paper-server/patches/sources/net/minecraft/server/network/ServerStatusPacketListenerImpl.java.patch index 244b467dfa..8acb1e18bc 100644 --- a/paper-server/patches/sources/net/minecraft/server/network/ServerStatusPacketListenerImpl.java.patch +++ b/paper-server/patches/sources/net/minecraft/server/network/ServerStatusPacketListenerImpl.java.patch @@ -20,7 +20,7 @@ public class ServerStatusPacketListenerImpl implements ServerStatusPacketListener { -@@ -36,7 +49,101 @@ +@@ -36,7 +49,108 @@ this.connection.disconnect(ServerStatusPacketListenerImpl.DISCONNECT_REASON); } else { this.hasRequestedStatus = true; @@ -108,6 +108,13 @@ + } + } + ++ // Spigot Start ++ if ( !server.hidesOnlinePlayers() && !profiles.isEmpty() ) ++ { ++ java.util.Collections.shuffle( profiles ); // This sucks, its inefficient but we have no simple way of doing it differently ++ profiles = profiles.subList( 0, Math.min( profiles.size(), org.spigotmc.SpigotConfig.playerSample ) ); // Cap the sample to n (or less) displayed players, ie: Vanilla behaviour ++ } ++ // Spigot End + ServerStatus.Players playerSample = new ServerStatus.Players(event.getMaxPlayers(), event.getNumPlayers(), (server.hidesOnlinePlayers()) ? Collections.emptyList() : profiles); + + ServerStatus ping = new ServerStatus( diff --git a/paper-server/src/main/java/org/spigotmc/SpigotConfig.java b/paper-server/src/main/java/org/spigotmc/SpigotConfig.java index 8b64ab87a2..accee68536 100644 --- a/paper-server/src/main/java/org/spigotmc/SpigotConfig.java +++ b/paper-server/src/main/java/org/spigotmc/SpigotConfig.java @@ -271,4 +271,11 @@ public class SpigotConfig { SpigotConfig.commands.put( "tps", new TicksPerSecondCommand( "tps" ) ); } + + public static int playerSample; + private static void playerSample() + { + SpigotConfig.playerSample = SpigotConfig.getInt( "settings.sample-count", 12 ); + System.out.println( "Server Ping Player Sample Count: " + SpigotConfig.playerSample ); + } }