From 84ffcfcdea4c83c302a47b67a24a597d99ea78b2 Mon Sep 17 00:00:00 2001 From: DoctaEnkoda Date: Sun, 12 Jan 2025 11:52:16 -0800 Subject: [PATCH] Add Option for disable observer clocks Allow to disable observer clocks: https://www.spigotmc.org/attachments/observerclock-gif.365936/ --- ...d-Option-for-disable-observer-clocks.patch | 35 ------------------- .../level/block/ObserverBlock.java.patch | 10 ++++++ .../purpurmc/purpur/PurpurWorldConfig.java | 5 +++ 3 files changed, 15 insertions(+), 35 deletions(-) delete mode 100644 patches/server/0189-Add-Option-for-disable-observer-clocks.patch create mode 100644 purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/ObserverBlock.java.patch diff --git a/patches/server/0189-Add-Option-for-disable-observer-clocks.patch b/patches/server/0189-Add-Option-for-disable-observer-clocks.patch deleted file mode 100644 index 1669a7b34..000000000 --- a/patches/server/0189-Add-Option-for-disable-observer-clocks.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: DoctaEnkoda -Date: Mon, 5 Jul 2021 06:00:17 +0200 -Subject: [PATCH] Add Option for disable observer clocks - -Allow to disable observer clocks: https://www.spigotmc.org/attachments/observerclock-gif.365936/ - -diff --git a/net/minecraft/world/level/block/ObserverBlock.java b/net/minecraft/world/level/block/ObserverBlock.java -index 93ed9406c34804831b86d006dbd6087db9948f08..26cb9990b91991e0a2eadc2dcbbf229e2e88fb2d 100644 ---- a/net/minecraft/world/level/block/ObserverBlock.java -+++ b/net/minecraft/world/level/block/ObserverBlock.java -@@ -75,6 +75,7 @@ public class ObserverBlock extends DirectionalBlock { - @Override - protected BlockState updateShape(BlockState state, LevelReader world, ScheduledTickAccess tickView, BlockPos pos, Direction direction, BlockPos neighborPos, BlockState neighborState, RandomSource random) { - if (state.getValue(ObserverBlock.FACING) == direction && !(Boolean) state.getValue(ObserverBlock.POWERED)) { -+ if (!world.getWorldBorder().world.purpurConfig.disableObserverClocks || !(neighborState.getBlock() instanceof ObserverBlock) || neighborState.getValue(ObserverBlock.FACING).getOpposite() != direction) // Purpur - this.startSignal(world, tickView, pos); - } - -diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3837d3857f92bf90d2e5abbd0ccbecff7c796e4e..683ae285004e1a6e3f58e0c2c16d5cb31f56a0d8 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -364,6 +364,11 @@ public class PurpurWorldConfig { - villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); - } - -+ public boolean disableObserverClocks = false; -+ private void observerSettings() { -+ disableObserverClocks = getBoolean("blocks.observer.disable-clock", disableObserverClocks); -+ } -+ - public int playerNetheriteFireResistanceDuration = 0; - public int playerNetheriteFireResistanceAmplifier = 0; - public boolean playerNetheriteFireResistanceAmbient = false; diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/ObserverBlock.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/ObserverBlock.java.patch new file mode 100644 index 000000000..3202a8cee --- /dev/null +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/ObserverBlock.java.patch @@ -0,0 +1,10 @@ +--- a/net/minecraft/world/level/block/ObserverBlock.java ++++ b/net/minecraft/world/level/block/ObserverBlock.java +@@ -81,6 +_,7 @@ + RandomSource random + ) { + if (state.getValue(FACING) == direction && !state.getValue(POWERED)) { ++ if (!level.getWorldBorder().world.purpurConfig.disableObserverClocks || !(neighborState.getBlock() instanceof ObserverBlock) || neighborState.getValue(ObserverBlock.FACING).getOpposite() != direction) // Purpur - Add Option for disable observer clocks + this.startSignal(level, scheduledTickAccess, pos); + } + diff --git a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index d63c84b2e..0988f3d86 100644 --- a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -363,6 +363,11 @@ public class PurpurWorldConfig { villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); } + public boolean disableObserverClocks = false; + private void observerSettings() { + disableObserverClocks = getBoolean("blocks.observer.disable-clock", disableObserverClocks); + } + public int playerNetheriteFireResistanceDuration = 0; public int playerNetheriteFireResistanceAmplifier = 0; public boolean playerNetheriteFireResistanceAmbient = false;