From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 2 Aug 2020 18:27:13 +0100 Subject: [PATCH] PaperMC - Buffer joins diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java index 54e374cc94..8bcba67e6b 100644 --- a/src/main/java/net/minecraft/server/NetworkManager.java +++ b/src/main/java/net/minecraft/server/NetworkManager.java @@ -412,10 +412,24 @@ public class NetworkManager extends SimpleChannelInboundHandler> { } // Paper end + private static final int MAX_PER_TICK = 3; // max joins per tick + private static int lastHit = 0; // unused for now + public static int thisTick; // current tick counter + private static int loginsThisTick = 0; + private static int currTick; public void a() { + if (currTick != thisTick) { + currTick = thisTick; + loginsThisTick = 0; + } + this.o(); if (this.packetListener instanceof LoginListener) { - ((LoginListener) this.packetListener).tick(); + if ( ((LoginListener) this.packetListener).getLoginState() != LoginListener.EnumProtocolState.READY_TO_ACCEPT + || (thisTick > lastHit + 10 || loginsThisTick++ < MAX_PER_TICK) + ) { + ((LoginListener) this.packetListener).tick(); + } } if (this.packetListener instanceof PlayerConnection) { diff --git a/src/main/java/net/minecraft/server/ServerConnection.java b/src/main/java/net/minecraft/server/ServerConnection.java index 0438126662..bb69477c41 100644 --- a/src/main/java/net/minecraft/server/ServerConnection.java +++ b/src/main/java/net/minecraft/server/ServerConnection.java @@ -121,7 +121,7 @@ public class ServerConnection { public void c() { List list = this.connectedChannels; - + NetworkManager.thisTick++; //Paper synchronized (this.connectedChannels) { // Spigot Start this.addPending(); // Paper