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 66f239040..fe9a770cb 100644 --- a/src/main/java/net/minecraft/server/NetworkManager.java +++ b/src/main/java/net/minecraft/server/NetworkManager.java @@ -412,10 +412,23 @@ 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.p(); 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 5f4dacf9c..9b2f93a4b 100644 --- a/src/main/java/net/minecraft/server/ServerConnection.java +++ b/src/main/java/net/minecraft/server/ServerConnection.java @@ -124,7 +124,7 @@ public class ServerConnection { public void c() { List list = this.connectedChannels; - + NetworkManager.thisTick++; //Paper synchronized (this.connectedChannels) { // Spigot Start this.addPending(); // Paper