From 7b05942bccb86336885c395a7ed8f2ead6474afd Mon Sep 17 00:00:00 2001
From: Warrior <50800980+Warriorrrr@users.noreply.github.com>
Date: Fri, 13 Aug 2021 21:14:44 +0200
Subject: [PATCH] Configurable item frame map cursor interval (#6385)

---
 ...tem-frame-map-cursor-update-interval.patch | 35 +++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 patches/server/Configurable-item-frame-map-cursor-update-interval.patch

diff --git a/patches/server/Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/Configurable-item-frame-map-cursor-update-interval.patch
new file mode 100644
index 0000000000..b94a678e3e
--- /dev/null
+++ b/patches/server/Configurable-item-frame-map-cursor-update-interval.patch
@@ -0,0 +1,35 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Warrior <50800980+Warriorrrr@users.noreply.github.com>
+Date: Fri, 13 Aug 2021 01:14:38 +0200
+Subject: [PATCH] Configurable item frame map cursor update interval
+
+
+diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
++++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+@@ -0,0 +0,0 @@ public class PaperWorldConfig {
+         mapItemFrameCursorLimit = getInt("map-item-frame-cursor-limit", mapItemFrameCursorLimit);
+     }
+ 
++    public int mapItemFrameCursorUpdateInterval = 10;
++    private void itemFrameCursorUpdateInterval() {
++        mapItemFrameCursorUpdateInterval = getInt("map-item-frame-cursor-update-interval", mapItemFrameCursorUpdateInterval);
++    }
++
+     public boolean fixItemsMergingThroughWalls;
+     private void fixItemsMergingThroughWalls() {
+         fixItemsMergingThroughWalls = getBoolean("fix-items-merging-through-walls", fixItemsMergingThroughWalls);
+diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
++++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
+@@ -0,0 +0,0 @@ public class ServerEntity {
+             ItemFrame entityitemframe = (ItemFrame) this.entity;
+             ItemStack itemstack = entityitemframe.getItem();
+ 
+-            if (this.tickCount % 10 == 0 && itemstack.getItem() instanceof MapItem) { // CraftBukkit - Moved this.tickCounter % 10 logic here so item frames do not enter the other blocks
++            if (this.level.paperConfig.mapItemFrameCursorUpdateInterval >= 0 && this.tickCount % this.level.paperConfig.mapItemFrameCursorUpdateInterval == 0 && itemstack.getItem() instanceof MapItem) { // CraftBukkit - Moved this.tickCounter % 10 logic here so item frames do not enter the other blocks // Paper - Make item frame map cursor update interval configurable
+                 Integer integer = MapItem.getMapId(itemstack);
+                 MapItemSavedData worldmap = MapItem.getSavedData(integer, (Level) this.level);
+