From b5d1b1c0569564884364040d64875b020c464c62 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 1 Jan 2018 15:41:59 -0500
Subject: [PATCH] Configurable Chunks Sends per Tick setting

Vanilla already had this limited, make it configurable.

Limit how much exploration lags the server

diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 535a8d3ed..e3ff78180 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -463,4 +463,13 @@ public class PaperWorldConfig {
         expMergeMaxValue = getInt("experience-merge-max-value", -1);
         log("Experience Merge Max Value: " + expMergeMaxValue);
     }
+
+    public int maxChunkSendsPerTick = 81;
+    private void maxChunkSendsPerTick() {
+        maxChunkSendsPerTick = getInt("max-chunk-sends-per-tick", maxChunkSendsPerTick);
+        if (maxChunkSendsPerTick <= 0) {
+            maxChunkSendsPerTick = 81;
+        }
+        log("Max Chunk Sends Per Tick: " + maxChunkSendsPerTick);
+    }
 }
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index 4af557321..6ee9f6cfb 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -198,7 +198,7 @@ public class PlayerChunkMap {
         }
 
         if (!this.g.isEmpty()) {
-            j = 81;
+            j = world.paperConfig.maxChunkSendsPerTick; // Paper
             try (Timing ignored = world.timings.doChunkMapPendingSendToPlayers.startTiming()) { // Paper
             Iterator iterator2 = this.g.iterator();
 
-- 
2.18.0