9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2026-01-06 15:51:31 +00:00

Skip-MapItem-update-if-the-map-does-not-have-the-Cra

This commit is contained in:
lilingfengdev
2024-01-17 19:58:44 +08:00
parent f04568eece
commit e2710aec1b

View File

@@ -0,0 +1,51 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: lilingfengdev <145678359+lilingfengdev@users.noreply.github.com>
Date: Wed, 17 Jan 2024 19:57:53 +0800
Subject: [PATCH]
SparklyPaper-Skip-MapItem-update-if-the-map-does-not-have-the-Cra
diff --git a/src/main/java/net/minecraft/world/item/MapItem.java b/src/main/java/net/minecraft/world/item/MapItem.java
index 6cfd169c2c32b644d70907358c2d4a2087c00a68..62aa1717eee90032c2ddf848424e903cc952a913 100644
--- a/src/main/java/net/minecraft/world/item/MapItem.java
+++ b/src/main/java/net/minecraft/world/item/MapItem.java
@@ -32,6 +32,9 @@ import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.level.material.MapColor;
import net.minecraft.world.level.saveddata.maps.MapItemSavedData;
+// Leaf Start
+import org.dreeam.leaf.LeafConfig;
+// Leaf end
public class MapItem extends ComplexItem {
@@ -314,6 +317,7 @@ public class MapItem extends ComplexItem {
}
@Override
+
public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) {
if (!world.isClientSide) {
MapItemSavedData worldmap = MapItem.getSavedData(stack, world);
@@ -325,7 +329,7 @@ public class MapItem extends ComplexItem {
worldmap.tickCarriedBy(entityhuman, stack);
}
- if (!worldmap.locked && (selected || entity instanceof Player && ((Player) entity).getOffhandItem() == stack)) {
+ if (!worldmap.locked && (!LeafConfig.skipMapItemDataUpdatesIfMapDoesNotHaveCraftMapRenderer || worldmap.mapView.getRenderers().stream().anyMatch(mapRenderer -> mapRenderer.getClass() == org.bukkit.craftbukkit.map.CraftMapRenderer.class)) && (selected || entity instanceof Player && ((Player) entity).getOffhandItem() == stack)) { // SparklyPaper - don't update maps if they don't have the CraftMapRenderer in the render list
this.update(world, entity, worldmap);
}
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
index 728082120af5a7afe20078b3fa6d80605f5ff6c7..db12eb7e81307cc3fd4fe0602697e32e71289f7e 100644
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
@@ -321,4 +321,8 @@ public class LeafConfig {
private static void getVanillaTeleport() {
vanillaEndTeleport = getBoolean("vanillaEndTeleport",vanillaEndTeleport,"Vanilla End Gateway Teleport");
}
+ public static boolean skipMapItemDataUpdatesIfMapDoesNotHaveCraftMapRenderer=true;
+ private static void getSkipMapItemDataUpdatesIfMapDoesNotHaveCraftMapRenderer() {
+ skipMapItemDataUpdatesIfMapDoesNotHaveCraftMapRenderer = getBoolean("skipMapItemDataUpdatesIfMapDoesNotHaveCraftMapRenderer",skipMapItemDataUpdatesIfMapDoesNotHaveCraftMapRenderer);
+ }
}