From 67c25b8477218ec0a658f18553fff8e385df44f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Ryb=C3=A1rsky?= Date: Sun, 5 May 2024 12:27:09 +0200 Subject: [PATCH] Fix cooldowns --- .../brn/regexinghoppers/RegexingHoppers.java | 14 ++++++++++++++ .../mixin/HopperBlockEntityAccessor.java | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/systems/brn/regexinghoppers/RegexingHoppers.java b/src/main/java/systems/brn/regexinghoppers/RegexingHoppers.java index d94d01a..9425c84 100644 --- a/src/main/java/systems/brn/regexinghoppers/RegexingHoppers.java +++ b/src/main/java/systems/brn/regexinghoppers/RegexingHoppers.java @@ -1,10 +1,12 @@ package systems.brn.regexinghoppers; import net.fabricmc.api.ModInitializer; +import net.minecraft.block.entity.HopperBlockEntity; import net.minecraft.inventory.Inventory; import net.minecraft.screen.NamedScreenHandlerFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import systems.brn.regexinghoppers.mixin.HopperBlockEntityAccessor; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -37,6 +39,12 @@ public class RegexingHoppers implements ModInitializer { LOGGER.info("Custom regex pattern from hopper: {}", customName); if (customName != null && !customName.isEmpty()) { + if (hopper instanceof HopperBlockEntity) { + HopperBlockEntityAccessor hopperAccessor = (HopperBlockEntityAccessor) hopper; + if (hopperAccessor.getTransferCooldown() > 1) { + return true; + } + } try { Pattern pattern = Pattern.compile(customName); Matcher matcher = pattern.matcher(itemName); @@ -45,6 +53,12 @@ public class RegexingHoppers implements ModInitializer { boolean matches = matcher.matches(); LOGGER.info("Regex matching result: {}", matches); + if (!matches) { + if (hopper instanceof HopperBlockEntity) { + HopperBlockEntityAccessor hopperAccessor = (HopperBlockEntityAccessor) hopper; + hopperAccessor.setTransferCooldown(8); + } + } return !matches; } catch (PatternSyntaxException e) { // Log exception if regex pattern is invalid diff --git a/src/main/java/systems/brn/regexinghoppers/mixin/HopperBlockEntityAccessor.java b/src/main/java/systems/brn/regexinghoppers/mixin/HopperBlockEntityAccessor.java index 8b750d4..df7f4d4 100644 --- a/src/main/java/systems/brn/regexinghoppers/mixin/HopperBlockEntityAccessor.java +++ b/src/main/java/systems/brn/regexinghoppers/mixin/HopperBlockEntityAccessor.java @@ -6,7 +6,7 @@ import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(HopperBlockEntity.class) -interface HopperBlockEntityAccessor { +public interface HopperBlockEntityAccessor { @Accessor("transferCooldown") int getTransferCooldown();