diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-05-04 19:14:06 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-04 19:14:06 -0400 |
commit | 4a4234d7c9d4f038d4fa418fb15ef24ce3fcc501 (patch) | |
tree | 6e87c6b67aabeb82dbe075d68c16b5492ff92c9b /src/main/java/de/hysky/skyblocker/mixin/ItemStackMixin.java | |
parent | ed0489539902d77595625aaa3bca4e328e1f7e88 (diff) | |
parent | f7b13895a4605e1d22e2c00e7b62c7365902d1aa (diff) | |
download | Skyblocker-4a4234d7c9d4f038d4fa418fb15ef24ce3fcc501.tar.gz Skyblocker-4a4234d7c9d4f038d4fa418fb15ef24ce3fcc501.tar.bz2 Skyblocker-4a4234d7c9d4f038d4fa418fb15ef24ce3fcc501.zip |
Merge pull request #669 from SkyblockerMod/1.20.5
1.20.5 & 1.20.6
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/mixin/ItemStackMixin.java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/mixin/ItemStackMixin.java | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixin/ItemStackMixin.java b/src/main/java/de/hysky/skyblocker/mixin/ItemStackMixin.java deleted file mode 100644 index 2a1ed125..00000000 --- a/src/main/java/de/hysky/skyblocker/mixin/ItemStackMixin.java +++ /dev/null @@ -1,93 +0,0 @@ -package de.hysky.skyblocker.mixin; - -import com.llamalad7.mixinextras.injector.ModifyReturnValue; -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.ItemUtils; -import de.hysky.skyblocker.utils.Utils; -import it.unimi.dsi.fastutil.ints.IntIntPair; -import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(ItemStack.class) -public abstract class ItemStackMixin { - - @Shadow - public abstract int getDamage(); - - @Shadow - public abstract void setDamage(int damage); - - @Unique - private int maxDamage; - - @ModifyReturnValue(method = "getName", at = @At("RETURN")) - private Text skyblocker$customItemNames(Text original) { - if (Utils.isOnSkyblock()) { - return SkyblockerConfigManager.get().general.customItemNames.getOrDefault(ItemUtils.getItemUuid((ItemStack) (Object) this), original); - } - - return original; - } - - /** - * Updates the durability of this item stack every tick when in the inventory. - */ - @Inject(method = "inventoryTick", at = @At("TAIL")) - private void skyblocker$updateDamage(CallbackInfo ci) { - if (!skyblocker$shouldProcess()) { - return; - } - skyblocker$getAndCacheDurability(); - } - - @ModifyReturnValue(method = "getDamage", at = @At("RETURN")) - private int skyblocker$handleDamage(int original) { - // If the durability is already calculated, the original value should be the damage - if (!skyblocker$shouldProcess() || maxDamage != 0) { - return original; - } - return skyblocker$getAndCacheDurability() ? getDamage() : original; - } - - @ModifyReturnValue(method = "getMaxDamage", at = @At("RETURN")) - private int skyblocker$handleMaxDamage(int original) { - if (!skyblocker$shouldProcess()) { - return original; - } - // If the max damage is already calculated, return it - if (maxDamage != 0) { - return maxDamage; - } - return skyblocker$getAndCacheDurability() ? maxDamage : original; - } - - @ModifyReturnValue(method = "isDamageable", at = @At("RETURN")) - private boolean skyblocker$handleDamageable(boolean original) { - return skyblocker$shouldProcess() || original; - } - - @Unique - private boolean skyblocker$shouldProcess() { - return Utils.isOnSkyblock() && SkyblockerConfigManager.get().locations.dwarvenMines.enableDrillFuel && ItemUtils.hasCustomDurability((ItemStack) (Object) this); - } - - @Unique - private boolean skyblocker$getAndCacheDurability() { - // Calculate the durability - IntIntPair durability = ItemUtils.getDurability((ItemStack) (Object) this); - // Return if calculating the durability failed - if (durability == null) { - return false; - } - // Saves the calculated durability - maxDamage = durability.rightInt(); - setDamage(durability.rightInt() - durability.leftInt()); - return true; - } -} |