From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Sun, 18 Feb 2024 16:00:43 -0500 Subject: [PATCH] Configurable fix tripwire dupe diff --git a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java index c615d528610168c4ad52730079f3525ab211b89e..89b3f124e4e77ca5c77fd9620cf6799ca3795a0d 100644 --- a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java @@ -91,7 +91,7 @@ public class TripWireBlock extends Block { public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean moved) { if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableTripwireUpdates) return; // Paper - prevent adjacent tripwires from updating if (!moved && !state.is(newState.getBlock())) { - this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), world.galeConfig().gameplayMechanics.fixes.tripwireDuping); // Paper - fix tripwire state inconsistency // Gale - Leaf - make tripwire duping fix configurable + this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), true); // Paper - fix tripwire state inconsistency // Gale - Leaf - make tripwire duping fix configurable // Leaf - Configurable fix tripwire dupe } } diff --git a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java index 7f2dcf6a9e69779e6f898284b58fb1e32902000c..60aba45e21f669aba15a8bac40b63faedd2b78b7 100644 --- a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java @@ -162,7 +162,7 @@ public class TripWireHookBlock extends Block { boolean flag7 = (Boolean) iblockdata2.getValue(TripWireBlock.POWERED); flag5 |= flag6 && flag7; - if (k != i || !tripWireBeingRemoved || !flag6) // Paper - fix tripwire state inconsistency; don't update the tripwire again if being removed and not disarmed + if (!org.dreeam.leaf.config.modules.fixes.TripwireDupe.enabled || k != i || !tripWireBeingRemoved || !flag6) // Paper - fix tripwire state inconsistency; don't update the tripwire again if being removed and not disarmed // Leaf - Configurable fix tripwire dupe aiblockdata[k] = iblockdata2; if (k == i) { world.scheduleTick(pos, block, 10); @@ -195,7 +195,7 @@ public class TripWireHookBlock extends Block { TripWireHookBlock.emitState(world, pos, flag4, flag5, flag2, flag3); if (!beingRemoved) { // Paper - fix tripwire state inconsistency - if (world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - Validate tripwire hook placement before update + if (!org.dreeam.leaf.config.modules.fixes.TripwireDupe.enabled || world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - Validate tripwire hook placement before update // Leaf - Configurable fix tripwire dupe world.setBlock(pos, (BlockState) iblockdata3.setValue(TripWireHookBlock.FACING, enumdirection), 3); if (flag1) { TripWireHookBlock.notifyNeighbors(block, world, pos, enumdirection); diff --git a/src/main/java/org/dreeam/leaf/config/modules/fixes/TripwireDupe.java b/src/main/java/org/dreeam/leaf/config/modules/fixes/TripwireDupe.java new file mode 100644 index 0000000000000000000000000000000000000000..6d4887d9a523086aabb33c6959d3821b675b2e1a --- /dev/null +++ b/src/main/java/org/dreeam/leaf/config/modules/fixes/TripwireDupe.java @@ -0,0 +1,21 @@ +package org.dreeam.leaf.config.modules.fixes; + +import org.dreeam.leaf.config.ConfigInfo; +import org.dreeam.leaf.config.EnumConfigCategory; +import org.dreeam.leaf.config.IConfigModule; + +public class TripwireDupe implements IConfigModule { + + @Override + public EnumConfigCategory getCategory() { + return EnumConfigCategory.FIXES; + } + + @Override + public String getBaseName() { + return "fix_tripwire_dupe"; + } + + @ConfigInfo(baseName = "enabled") + public static boolean enabled = true; +} diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java index 53375e9509a0871f337eefc387d1d9cbb53f5c1a..d0cef36361c579570bb69ba6a7225a533e88be79 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java @@ -107,7 +107,7 @@ public class GaleWorldConfiguration extends ConfigurationPart { public Fixes fixes; public class Fixes extends ConfigurationPart { - public boolean tripwireDuping = true; // Gale - Leaf - make tripwire duping fix configurable + //public boolean tripwireDuping = true; // Gale - Leaf - make tripwire duping fix configurable // Leaf - Move to leaf config public boolean broadcastCritAnimationsAsTheEntityBeingCritted = false; // Gale - MultiPaper - broadcast crit animations as the entity being critted public boolean keepMooshroomRotationAfterShearing = true; // Gale - Purpur - fix cow rotation when shearing mooshroom public boolean checkCanChangeDimensionsBeforeUseEndGateway = false; // Gale - Purpur - end gateway should check if entity can use portal