aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/mixin
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/mixin')
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/ArmorTrimMixin.java11
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/DrawContextMixin.java49
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/DyeableItemMixin.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/ItemStackMixin.java20
5 files changed, 38 insertions, 61 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixin/ArmorTrimMixin.java b/src/main/java/de/hysky/skyblocker/mixin/ArmorTrimMixin.java
index 02d75409..b9bdb523 100644
--- a/src/main/java/de/hysky/skyblocker/mixin/ArmorTrimMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixin/ArmorTrimMixin.java
@@ -2,13 +2,13 @@ package de.hysky.skyblocker.mixin;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import com.llamalad7.mixinextras.sugar.Local;
-import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.item.CustomArmorTrims;
+import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.Utils;
+import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import net.minecraft.item.ItemStack;
import net.minecraft.item.trim.ArmorTrim;
-import net.minecraft.nbt.NbtCompound;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -19,12 +19,9 @@ public class ArmorTrimMixin {
@ModifyReturnValue(method = "getTrim", at = @At("RETURN"))
private static Optional<ArmorTrim> skyblocker$customArmorTrims(@SuppressWarnings("OptionalUsedAsFieldOrParameterType") Optional<ArmorTrim> original, @Local ItemStack stack) {
- NbtCompound nbt = stack.getNbt();
-
- if (Utils.isOnSkyblock() && nbt != null && nbt.contains("ExtraAttributes")) {
+ if (Utils.isOnSkyblock()) {
Object2ObjectOpenHashMap<String, CustomArmorTrims.ArmorTrimId> customTrims = SkyblockerConfigManager.get().general.customArmorTrims;
- NbtCompound extraAttributes = nbt.getCompound("ExtraAttributes");
- String itemUuid = extraAttributes.contains("uuid") ? extraAttributes.getString("uuid") : null;
+ String itemUuid = ItemUtils.getItemUuid(stack);
if (customTrims.containsKey(itemUuid)) {
CustomArmorTrims.ArmorTrimId trimKey = customTrims.get(itemUuid);
diff --git a/src/main/java/de/hysky/skyblocker/mixin/DrawContextMixin.java b/src/main/java/de/hysky/skyblocker/mixin/DrawContextMixin.java
index 41b8e985..10666874 100644
--- a/src/main/java/de/hysky/skyblocker/mixin/DrawContextMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixin/DrawContextMixin.java
@@ -3,12 +3,13 @@ package de.hysky.skyblocker.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.sugar.Local;
import com.llamalad7.mixinextras.sugar.ref.LocalRef;
-import dev.cbyrne.betterinject.annotations.Arg;
-import dev.cbyrne.betterinject.annotations.Inject;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.item.AttributeShards;
import de.hysky.skyblocker.skyblock.item.ItemCooldowns;
+import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.Utils;
+import dev.cbyrne.betterinject.annotations.Arg;
+import dev.cbyrne.betterinject.annotations.Inject;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
@@ -32,40 +33,38 @@ public abstract class DrawContextMixin {
@Inject(method = "drawItemInSlot(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V", at = @At("HEAD"))
private void skyblocker$renderAttributeShardDisplay(@Arg TextRenderer textRenderer, @Arg ItemStack stack, @Arg(ordinal = 0) int x, @Arg(ordinal = 1) int y, @Local(argsOnly = true) LocalRef<String> countOverride) {
- if (!SkyblockerConfigManager.get().general.itemInfoDisplay.attributeShardInfo) return;
-
- NbtCompound nbt = stack.getNbt();
+ if (!SkyblockerConfigManager.get().general.itemInfoDisplay.attributeShardInfo) return;
- if (Utils.isOnSkyblock() && nbt != null && nbt.contains("ExtraAttributes")) {
- NbtCompound extraAttributes = nbt.getCompound("ExtraAttributes");
+ if (Utils.isOnSkyblock()) {
+ NbtCompound extraAttributes = ItemUtils.getExtraAttributes(stack);
- if (extraAttributes.getString("id").equals("ATTRIBUTE_SHARD")) {
- NbtCompound attributesTag = extraAttributes.getCompound("attributes");
- String[] attributes = attributesTag.getKeys().toArray(String[]::new);
+ if (extraAttributes != null && extraAttributes.getString(ItemUtils.ID).equals("ATTRIBUTE_SHARD")) {
+ NbtCompound attributesTag = extraAttributes.getCompound("attributes");
+ String[] attributes = attributesTag.getKeys().toArray(String[]::new);
- if (attributes.length != 0) {
- String attributeId = attributes[0];
- int attributeLevel = attributesTag.getInt(attributeId);
+ if (attributes.length != 0) {
+ String attributeId = attributes[0];
+ int attributeLevel = attributesTag.getInt(attributeId);
- //Set item count
- countOverride.set(Integer.toString(attributeLevel));
+ //Set item count
+ countOverride.set(Integer.toString(attributeLevel));
- //Draw the attribute name
- this.matrices.push();
- this.matrices.translate(0f, 0f, 200f);
+ //Draw the attribute name
+ this.matrices.push();
+ this.matrices.translate(0f, 0f, 200f);
- String attributeInitials = AttributeShards.getShortName(attributeId);
+ String attributeInitials = AttributeShards.getShortName(attributeId);
- this.drawText(textRenderer, attributeInitials, x, y, Formatting.AQUA.getColorValue(), true);
+ this.drawText(textRenderer, attributeInitials, x, y, Formatting.AQUA.getColorValue(), true);
- this.matrices.pop();
- }
- }
- }
+ this.matrices.pop();
+ }
+ }
+ }
}
@ModifyExpressionValue(method = "drawItemInSlot(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V",
- at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/ItemCooldownManager;getCooldownProgress(Lnet/minecraft/item/Item;F)F"))
+ at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/ItemCooldownManager;getCooldownProgress(Lnet/minecraft/item/Item;F)F"))
private float skyblocker$modifyItemCooldown(float cooldownProgress, @Local ItemStack stack) {
return Utils.isOnSkyblock() && ItemCooldowns.isOnCooldown(stack) ? ItemCooldowns.getItemCooldownEntry(stack).getRemainingCooldownPercent() : cooldownProgress;
}
diff --git a/src/main/java/de/hysky/skyblocker/mixin/DyeableItemMixin.java b/src/main/java/de/hysky/skyblocker/mixin/DyeableItemMixin.java
index 51ab3852..e5697085 100644
--- a/src/main/java/de/hysky/skyblocker/mixin/DyeableItemMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixin/DyeableItemMixin.java
@@ -2,10 +2,10 @@ 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 net.minecraft.item.DyeableItem;
import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NbtCompound;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -13,11 +13,8 @@ import org.spongepowered.asm.mixin.injection.At;
public interface DyeableItemMixin {
@ModifyReturnValue(method = "getColor", at = @At("RETURN"))
private int skyblocker$customDyeColor(int originalColor, ItemStack stack) {
- NbtCompound nbt = stack.getNbt();
-
- if (Utils.isOnSkyblock() && nbt != null && nbt.contains("ExtraAttributes")) {
- NbtCompound extraAttributes = nbt.getCompound("ExtraAttributes");
- String itemUuid = extraAttributes.contains("uuid") ? extraAttributes.getString("uuid") : null;
+ if (Utils.isOnSkyblock()) {
+ String itemUuid = ItemUtils.getItemUuid(stack);
return SkyblockerConfigManager.get().general.customDyeColors.getOrDefault(itemUuid, originalColor);
}
diff --git a/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java
index 689974c8..b037d45a 100644
--- a/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java
@@ -6,12 +6,8 @@ import de.hysky.skyblocker.skyblock.experiment.ChronomatronSolver;
import de.hysky.skyblocker.skyblock.experiment.ExperimentSolver;
import de.hysky.skyblocker.skyblock.experiment.SuperpairsSolver;
import de.hysky.skyblocker.skyblock.experiment.UltrasequencerSolver;
-import de.hysky.skyblocker.skyblock.item.BackpackPreview;
-import de.hysky.skyblocker.skyblock.item.CompactorDeletorPreview;
-import de.hysky.skyblocker.skyblock.item.ItemProtection;
-import de.hysky.skyblocker.skyblock.item.ItemRarityBackgrounds;
-import de.hysky.skyblocker.skyblock.item.WikiLookup;
-import de.hysky.skyblocker.skyblock.itemlist.ItemRegistry;
+import de.hysky.skyblocker.skyblock.item.*;
+import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.render.gui.ContainerSolver;
import net.minecraft.client.MinecraftClient;
@@ -89,7 +85,7 @@ public abstract class HandledScreenMixin<T extends ScreenHandler> extends Screen
// Compactor Preview
if (SkyblockerConfigManager.get().general.compactorDeletorPreview) {
ItemStack stack = focusedSlot.getStack();
- Matcher matcher = CompactorDeletorPreview.NAME.matcher(ItemRegistry.getInternalName(stack));
+ Matcher matcher = CompactorDeletorPreview.NAME.matcher(ItemUtils.getItemId(stack));
if (matcher.matches() && CompactorDeletorPreview.drawPreview(context, stack, matcher.group("type"), matcher.group("size"), x, y)) {
ci.cancel();
}
diff --git a/src/main/java/de/hysky/skyblocker/mixin/ItemStackMixin.java b/src/main/java/de/hysky/skyblocker/mixin/ItemStackMixin.java
index 76073a2c..79a37d68 100644
--- a/src/main/java/de/hysky/skyblocker/mixin/ItemStackMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixin/ItemStackMixin.java
@@ -1,34 +1,22 @@
package de.hysky.skyblocker.mixin;
-import org.jetbrains.annotations.Nullable;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
-
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.ItemUtils.Durability;
import de.hysky.skyblocker.utils.Utils;
import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NbtCompound;
import net.minecraft.text.Text;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
@Mixin(ItemStack.class)
public abstract class ItemStackMixin {
- @Shadow
- @Nullable
- private NbtCompound nbt;
-
@ModifyReturnValue(method = "getName", at = @At("RETURN"))
private Text skyblocker$customItemNames(Text original) {
- if (Utils.isOnSkyblock() && nbt != null && nbt.contains("ExtraAttributes")) {
- NbtCompound extraAttributes = nbt.getCompound("ExtraAttributes");
- String itemUuid = extraAttributes.contains("uuid") ? extraAttributes.getString("uuid") : null;
-
- return SkyblockerConfigManager.get().general.customItemNames.getOrDefault(itemUuid, original);
+ if (Utils.isOnSkyblock()) {
+ return SkyblockerConfigManager.get().general.customItemNames.getOrDefault(ItemUtils.getItemUuid((ItemStack) (Object) this), original);
}
return original;