From 2bbd63e049e902c97abd13d6394f9b0087bbd3a9 Mon Sep 17 00:00:00 2001 From: patience Date: Tue, 10 Mar 2026 13:40:39 +0000 Subject: [PATCH] Added a brief cooldown for throwing potions 1.5 seconds for splash, 2.25 for lingering --- .../mixin/LingeringCooldownTweak.java | 21 +++++++++++++++++++ .../mixin/SplashCooldownTweak.java | 20 ++++++++++++++++++ src/main/resources/mc_rebalance.mixins.json | 10 +++++---- 3 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/LingeringCooldownTweak.java create mode 100644 src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/SplashCooldownTweak.java diff --git a/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/LingeringCooldownTweak.java b/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/LingeringCooldownTweak.java new file mode 100644 index 0000000..aa9d49f --- /dev/null +++ b/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/LingeringCooldownTweak.java @@ -0,0 +1,21 @@ +package xyz.nearmisses.patience.mc_rebalance.mixin; + +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.LingeringPotionItem; +import net.minecraft.world.level.Level; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +// Clone of SplashPotionTweak. +@Mixin(LingeringPotionItem.class) +public class LingeringCooldownTweak { + @Inject(method="use", at=@At("HEAD")) + void use(Level level, Player player, InteractionHand interactionHand, CallbackInfoReturnable> cir){ + player.getCooldowns().addCooldown(player.getItemInHand(interactionHand).getItem(), 45); + } +} diff --git a/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/SplashCooldownTweak.java b/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/SplashCooldownTweak.java new file mode 100644 index 0000000..b8c2163 --- /dev/null +++ b/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/SplashCooldownTweak.java @@ -0,0 +1,20 @@ +package xyz.nearmisses.patience.mc_rebalance.mixin; + +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.SplashPotionItem; +import net.minecraft.world.level.Level; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(SplashPotionItem.class) +public class SplashCooldownTweak { + @Inject(method="use", at=@At("HEAD")) + void use(Level level, Player player, InteractionHand interactionHand, CallbackInfoReturnable> cir){ + player.getCooldowns().addCooldown(player.getItemInHand(interactionHand).getItem(), 30); + } +} diff --git a/src/main/resources/mc_rebalance.mixins.json b/src/main/resources/mc_rebalance.mixins.json index 9a102bf..87844ce 100644 --- a/src/main/resources/mc_rebalance.mixins.json +++ b/src/main/resources/mc_rebalance.mixins.json @@ -3,12 +3,14 @@ "package": "xyz.nearmisses.patience.mc_rebalance.mixin", "compatibilityLevel": "JAVA_21", "mixins": [ - "mob.BlazeAIRework", - "mob.BlazeRework", - "PlayerTweaks", - "mob.CreakingRework", "ExperienceOrbRework", "GrowRateTweak", + "LingeringCooldownTweak", + "PlayerTweaks", + "SplashCooldownTweak", + "mob.BlazeAIRework", + "mob.BlazeRework", + "mob.CreakingRework", "mob.HappyGhastTweak", "mob.WardenRework", "mob.WitherSkeletonRework"