diff --git a/PATCHES.md b/PATCHES.md index 26540867..29bbc3b0 100644 --- a/PATCHES.md +++ b/PATCHES.md @@ -43,6 +43,7 @@ This is an overview over all patches that are currently used. | server | Config migration: disable saving projectiles to disk -> | jmp | | | server | Configurable BlockPhysicsEvent | Mykyta Komarnytskyy | | | server | Configurable criterion triggers | Mykyta Komarnytskyy | | +| server | Configurable enchanting table tick | Ivan Pekov | | | server | Configurable flight checks | l_MrBoom_l | | | server | Configurable movement checks | l_MrBoom_l | | | server | Configurable villager brain ticks | William Blake Galbreath | | @@ -124,7 +125,6 @@ This is an overview over all patches that are currently used. | server | Strip raytracing for EntityLiving#hasLineOfSight | Paul Sauve | | | server | Swap priority of checks in chunk ticking | Paul Sauve | | | server | Swaps the predicate order of collision | ㄗㄠˋ ㄑㄧˊ | | -| server | Tile Entity optimizations | Mykyta Komarnytskyy | | | server | Timings stuff | William Blake Galbreath | | | server | Use faster random implementation | Mykyta Komarnytskyy | | | server | Use offline uuids if we need to | Ivan Pekov | | diff --git a/patches/server/0063-Tile-Entity-optimizations.patch b/patches/removed/server/0063-Tile-Entity-optimizations.patch similarity index 100% rename from patches/server/0063-Tile-Entity-optimizations.patch rename to patches/removed/server/0063-Tile-Entity-optimizations.patch diff --git a/patches/server/0063-Configurable-enchanting-table-tick.patch b/patches/server/0063-Configurable-enchanting-table-tick.patch new file mode 100644 index 00000000..412fb54d --- /dev/null +++ b/patches/server/0063-Configurable-enchanting-table-tick.patch @@ -0,0 +1,46 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ivan Pekov +Date: Wed, 23 Dec 2020 08:42:18 +0200 +Subject: [PATCH] Configurable enchanting table tick + +Also don't tick blockentity beehive if there are no bees in it. +This patch is a leftover from the original tile entity optimisations, which was majorly flawed. + +diff --git a/src/main/java/net/minecraft/server/TileEntityBeehive.java b/src/main/java/net/minecraft/server/TileEntityBeehive.java +index a60e0872d51aeb330bd5334e35f18ad0ed63834e..70239fa5ac05464606ad917b3c3498156c12c536 100644 +--- a/src/main/java/net/minecraft/server/TileEntityBeehive.java ++++ b/src/main/java/net/minecraft/server/TileEntityBeehive.java +@@ -286,6 +286,7 @@ public class TileEntityBeehive extends TileEntity implements ITickable { + + @Override + public void tick() { ++ if (this.bees.size() == 0) { return; } // Yatopia - TE optimizations + if (!this.world.isClientSide) { + this.y(); + BlockPosition blockposition = this.getPosition(); +diff --git a/src/main/java/net/minecraft/server/TileEntityEnchantTable.java b/src/main/java/net/minecraft/server/TileEntityEnchantTable.java +index c9066cb5f51cb2ad078aca3019e1df557062d286..46b18b6364645106b00bd4f1d721b8cd704ecabf 100644 +--- a/src/main/java/net/minecraft/server/TileEntityEnchantTable.java ++++ b/src/main/java/net/minecraft/server/TileEntityEnchantTable.java +@@ -43,6 +43,7 @@ public class TileEntityEnchantTable extends TileEntity implements INamableTileEn + + @Override + public void tick() { ++ if (!org.yatopiamc.yatopia.server.YatopiaConfig.shouldTickEnchantingTables) { return; } // Yatopia - TE optimizations + this.j = this.i; + this.l = this.k; + EntityHuman entityhuman = this.world.a((double) this.position.getX() + 0.5D, (double) this.position.getY() + 0.5D, (double) this.position.getZ() + 0.5D, 3.0D, false); +diff --git a/src/main/java/org/yatopiamc/yatopia/server/YatopiaConfig.java b/src/main/java/org/yatopiamc/yatopia/server/YatopiaConfig.java +index 34b5a087d1d5d84b193adbd756add060a2d49354..2d4fb0a4664578f8d5c23db854eb8f2764724940 100644 +--- a/src/main/java/org/yatopiamc/yatopia/server/YatopiaConfig.java ++++ b/src/main/java/org/yatopiamc/yatopia/server/YatopiaConfig.java +@@ -283,4 +283,9 @@ public class YatopiaConfig { + checkVehicleMovedQuickly = getBoolean("settings.checks.vehicle-moved-quickly", checkVehicleMovedQuickly); + checkVehicleMovedWrongly = getBoolean("settings.checks.vehicle-moved-wrongly", checkVehicleMovedWrongly); + } ++ ++ public static boolean shouldTickEnchantingTables = false; ++ private static void tickEnchantingTables() { ++ shouldTickEnchantingTables = getBoolean("settings.tick.enchanting-tables", shouldTickEnchantingTables); ++ } + }