From df81c814068a156ff92d36df02439c0d3a85bd47 Mon Sep 17 00:00:00 2001 From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Sat, 2 Nov 2024 22:23:13 -0400 Subject: [PATCH] EMC: Don't use snapshots for TileEntity::getOwner --- ...se-snapshots-for-TileEntity-getOwner.patch | 47 +++++++++++++++++++ ...fault-don-t-use-blockstate-snapshots.patch | 34 ++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 patches/server/0132-EMC-Don-t-use-snapshots-for-TileEntity-getOwner.patch create mode 100644 patches/server/0133-EMC-Default-don-t-use-blockstate-snapshots.patch diff --git a/patches/server/0132-EMC-Don-t-use-snapshots-for-TileEntity-getOwner.patch b/patches/server/0132-EMC-Don-t-use-snapshots-for-TileEntity-getOwner.patch new file mode 100644 index 00000000..71b573c3 --- /dev/null +++ b/patches/server/0132-EMC-Don-t-use-snapshots-for-TileEntity-getOwner.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Tue, 7 Nov 2017 00:01:04 -0500 +Subject: [PATCH] EMC: Don't use snapshots for TileEntity::getOwner + +Original license: MIT +Original project: https://github.com/starlis/empirecraft + +Also see EMC-Default-don-t-use-blockstate-snapshots.patch + +diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +index 73c9f91457683e8e6bd8293b4393ccbd984eddb7..7b38835bdac33dce9ed7ca1c0b3d43fdc2224d0c 100644 +--- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java ++++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +@@ -398,7 +398,7 @@ public abstract class BlockEntity { + // CraftBukkit start - add method + public InventoryHolder getOwner() { + // Paper start +- return getOwner(true); ++ return getOwner(org.dreeam.leaf.config.modules.opt.TileEntitySnapshotCreation.enabled); // Leaf - EMC - don't use snapshots + } + public InventoryHolder getOwner(boolean useSnapshot) { + // Paper end +diff --git a/src/main/java/org/dreeam/leaf/config/modules/opt/TileEntitySnapshotCreation.java b/src/main/java/org/dreeam/leaf/config/modules/opt/TileEntitySnapshotCreation.java +new file mode 100644 +index 0000000000000000000000000000000000000000..1c0d34c15c12f9587f518de17e3a3d5289e21f9c +--- /dev/null ++++ b/src/main/java/org/dreeam/leaf/config/modules/opt/TileEntitySnapshotCreation.java +@@ -0,0 +1,18 @@ ++package org.dreeam.leaf.config.modules.opt; ++ ++import org.dreeam.leaf.config.ConfigModules; ++import org.dreeam.leaf.config.EnumConfigCategory; ++ ++public class TileEntitySnapshotCreation extends ConfigModules { ++ ++ public String getBasePath() { ++ return EnumConfigCategory.PERF.getBaseKeyName(); ++ } ++ ++ public static boolean enabled = true; ++ ++ @Override ++ public void onLoaded() { ++ enabled = config.getBoolean(getBasePath() + ".create-snapshot-on-retrieving-blockstate", enabled); ++ } ++} diff --git a/patches/server/0133-EMC-Default-don-t-use-blockstate-snapshots.patch b/patches/server/0133-EMC-Default-don-t-use-blockstate-snapshots.patch new file mode 100644 index 00000000..826020a3 --- /dev/null +++ b/patches/server/0133-EMC-Default-don-t-use-blockstate-snapshots.patch @@ -0,0 +1,34 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Thu, 28 Jun 2018 22:13:44 -0400 +Subject: [PATCH] EMC: Default don't use blockstate snapshots + +Original license: MIT +Original project: https://github.com/starlis/empirecraft + +diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +index ac11f18690434922179b61ffcc3036dea025b0cb..72d30afa4c03aa82329f321a3a3ddd507cf94502 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +@@ -331,7 +331,7 @@ public class CraftBlock implements Block { + + @Override + public BlockState getState() { +- return CraftBlockStates.getBlockState(this); ++ return CraftBlockStates.getBlockState(this, org.dreeam.leaf.config.modules.opt.TileEntitySnapshotCreation.enabled); // Leaf - EMC - default to not use snapshots + } + + // Paper start +diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java +index b7ff7af2513204b151340538d50a65c850bdb75f..836fe576a0250a3b002e91b8587935f3e83e5fd6 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java +@@ -236,7 +236,7 @@ public final class CraftBlockStates { + + public static BlockState getBlockState(Block block) { + // Paper start +- return CraftBlockStates.getBlockState(block, true); ++ return CraftBlockStates.getBlockState(block, org.dreeam.leaf.config.modules.opt.TileEntitySnapshotCreation.enabled); // Leaf - default to not use snapshots + } + public static BlockState getBlockState(Block block, boolean useSnapshot) { + // Paper end