aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/mixin
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-08-09 20:01:18 -0400
committerAaron <51387595+AzureAaron@users.noreply.github.com>2023-08-09 20:01:18 -0400
commita629801cc3ffa5913bc07af173e8a01673a70681 (patch)
tree37fa4fd6c9983277fb728cb27f2e256015fb81c1 /src/main/java/me/xmrvizzy/skyblocker/mixin
parent79ba1ed6fc133bacf64ee8e3a5d1454d1eadde2f (diff)
downloadSkyblocker-a629801cc3ffa5913bc07af173e8a01673a70681.tar.gz
Skyblocker-a629801cc3ffa5913bc07af173e8a01673a70681.tar.bz2
Skyblocker-a629801cc3ffa5913bc07af173e8a01673a70681.zip
Custom Armour Dye Colours
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/DyeableItemMixin.java31
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/ItemStackMixin.java5
2 files changed, 32 insertions, 4 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/DyeableItemMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/DyeableItemMixin.java
new file mode 100644
index 00000000..4d0b6bae
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/DyeableItemMixin.java
@@ -0,0 +1,31 @@
+package me.xmrvizzy.skyblocker.mixin;
+
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+
+import com.llamalad7.mixinextras.injector.ModifyReturnValue;
+import com.llamalad7.mixinextras.sugar.Local;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.Utils;
+import net.minecraft.item.DyeableItem;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NbtCompound;
+
+@Mixin(DyeableItem.class)
+public interface DyeableItemMixin {
+
+ @ModifyReturnValue(method = "getColor", at = @At("RETURN"))
+ default public int skyblocker$customDyeColor(int originalColor, @Local 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;
+
+ return SkyblockerConfig.get().general.customDyeColors.getOrDefault(itemUuid, originalColor);
+ }
+
+ return originalColor;
+ }
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemStackMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemStackMixin.java
index 08e7b5ea..640bce9b 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemStackMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemStackMixin.java
@@ -1,7 +1,5 @@
package me.xmrvizzy.skyblocker.mixin;
-import java.util.Map;
-
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
@@ -24,11 +22,10 @@ public class ItemStackMixin {
@ModifyReturnValue(method = "getName", at = @At("RETURN"))
public Text skyblocker$customItemNames(Text original) {
if (Utils.isOnSkyblock() && nbt != null && nbt.contains("ExtraAttributes")) {
- Map<String, Text> customItemNames = SkyblockerConfig.get().general.customItemNames;
NbtCompound extraAttributes = nbt.getCompound("ExtraAttributes");
String itemUuid = extraAttributes.contains("uuid") ? extraAttributes.getString("uuid") : null;
- if (itemUuid != null && customItemNames.containsKey(itemUuid)) return customItemNames.get(itemUuid);
+ return SkyblockerConfig.get().general.customItemNames.getOrDefault(itemUuid, original);
}
return original;