mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-20 18:07:43 +01:00
PaperMC - Buffer joins
This commit is contained in:
49
patches/server/0120-PaperMC-Buffer-joins.patch
Normal file
49
patches/server/0120-PaperMC-Buffer-joins.patch
Normal file
@@ -0,0 +1,49 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Shane Freeder <theboyetronic@gmail.com>
|
||||
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<Packet<?>> {
|
||||
}
|
||||
// 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
|
||||
Reference in New Issue
Block a user