Skip to content

Commit

Permalink
Add raise cooldown
Browse files Browse the repository at this point in the history
  • Loading branch information
Roadhog360 committed Jun 28, 2024
1 parent 4e5da78 commit cd2a834
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,10 @@ public interface ShieldCooldownSettings {
* Default value is 100.
*/
int getDisableCooldown();

/**
* How many ticks should it take between right clicking the shield, and its protection being effective?
* Default value is 5.
*/
int getRaiseCooldown();
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,31 @@

import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import com.oroarmor.multiitemlib.api.ShieldCooldownSettings;
import com.oroarmor.multiitemlib.api.UniqueItemRegistry;
import net.minecraft.entity.LivingEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;

@Mixin(LivingEntity.class)
public class LivingEntityMixin {
@Shadow protected ItemStack activeItemStack;

@WrapOperation(method = "tickFallFlying", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;isOf(Lnet/minecraft/item/Item;)Z"))
private boolean handleDisableShield(ItemStack instance, Item item, Operation<Boolean> original) {
return UniqueItemRegistry.ELYTRA.isItemInRegistry(instance.getItem());
}
private boolean handleElytra(ItemStack instance, Item item, Operation<Boolean> original) {
return UniqueItemRegistry.ELYTRA.isItemInRegistry(instance.getItem());
}

@ModifyConstant(method = "isBlocking", constant = @Constant(intValue = 5))
private int getShieldHoldDelay(int constant) {
if(activeItemStack.getItem() instanceof ShieldCooldownSettings) {
return ((ShieldCooldownSettings) activeItemStack.getItem()).getRaiseCooldown();
}
return constant;
}
}

0 comments on commit cd2a834

Please sign in to comment.