aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-08-10 10:55:45 +0800
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-08-10 12:16:55 +0800
commit16c6debb1cc90be5815cd188264b16ddf8b76f16 (patch)
tree0e4e1e3e1d8723c7ef91b5225bf8027fd8195976 /src
parenta629801cc3ffa5913bc07af173e8a01673a70681 (diff)
downloadSkyblocker-16c6debb1cc90be5815cd188264b16ddf8b76f16.tar.gz
Skyblocker-16c6debb1cc90be5815cd188264b16ddf8b76f16.tar.bz2
Skyblocker-16c6debb1cc90be5815cd188264b16ddf8b76f16.zip
Refactor CustomArmorDyeColors and CustomItemNames
Diffstat (limited to 'src')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/DyeableItemMixin.java18
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/ItemStackMixin.java10
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomArmorDyeColors.java72
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomItemNames.java21
5 files changed, 55 insertions, 68 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
index 7d44fecb..75e6fdc5 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
@@ -551,7 +551,7 @@ public class SkyblockerConfig implements ConfigData {
.registerTypeHierarchyAdapter(Style.class, new Style.Serializer())
.create();
- ConfigSerializer.Factory<SkyblockerConfig> serializer = (cfg, cfgClass) -> new GsonConfigSerializer<SkyblockerConfig>(cfg, cfgClass, gson);
+ ConfigSerializer.Factory<SkyblockerConfig> serializer = (cfg, cfgClass) -> new GsonConfigSerializer<>(cfg, cfgClass, gson);
AutoConfig.register(SkyblockerConfig.class, serializer);
ClientCommandRegistrationCallback.EVENT.register(((dispatcher, registryAccess) -> dispatcher.register(literal(SkyblockerMod.NAMESPACE).then(optionsLiteral("config")).then(optionsLiteral("options")))));
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/DyeableItemMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/DyeableItemMixin.java
index 4d0b6bae..f04c4cdd 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/DyeableItemMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/DyeableItemMixin.java
@@ -1,31 +1,27 @@
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;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
@Mixin(DyeableItem.class)
public interface DyeableItemMixin {
-
@ModifyReturnValue(method = "getColor", at = @At("RETURN"))
- default public int skyblocker$customDyeColor(int originalColor, @Local ItemStack stack) {
+ 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;
-
+ 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 640bce9b..63dc6624 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemStackMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemStackMixin.java
@@ -14,20 +14,20 @@ import net.minecraft.nbt.NbtCompound;
import net.minecraft.text.Text;
@Mixin(ItemStack.class)
-public class ItemStackMixin {
+public abstract class ItemStackMixin {
@Shadow
@Nullable
private NbtCompound nbt;
@ModifyReturnValue(method = "getName", at = @At("RETURN"))
- public Text skyblocker$customItemNames(Text original) {
+ 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;
-
+ String itemUuid = extraAttributes.contains("uuid") ? extraAttributes.getString("uuid") : null;
+
return SkyblockerConfig.get().general.customItemNames.getOrDefault(itemUuid, original);
}
-
+
return original;
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomArmorDyeColors.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomArmorDyeColors.java
index dd5614d1..9385b4a1 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomArmorDyeColors.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomArmorDyeColors.java
@@ -3,14 +3,12 @@ package me.xmrvizzy.skyblocker.skyblock.item;
import com.mojang.brigadier.Command;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.StringArgumentType;
-
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.utils.Utils;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
-import net.minecraft.client.MinecraftClient;
import net.minecraft.command.CommandRegistryAccess;
import net.minecraft.item.DyeableArmorItem;
import net.minecraft.item.ItemStack;
@@ -18,11 +16,10 @@ import net.minecraft.nbt.NbtCompound;
import net.minecraft.text.Text;
public class CustomArmorDyeColors {
-
public static void init() {
ClientCommandRegistrationCallback.EVENT.register(CustomArmorDyeColors::registerCommands);
}
-
+
private static void registerCommands(CommandDispatcher<FabricClientCommandSource> dispatcher, CommandRegistryAccess registryAccess) {
dispatcher.register(ClientCommandManager.literal("skyblocker")
.then(ClientCommandManager.literal("dyeColor")
@@ -30,58 +27,55 @@ public class CustomArmorDyeColors {
.then(ClientCommandManager.argument("hexCode", StringArgumentType.string())
.executes(context -> customizeDyeColor(context.getSource(), StringArgumentType.getString(context, "hexCode"))))));
}
-
+
+ @SuppressWarnings("SameReturnValue")
private static int customizeDyeColor(FabricClientCommandSource source, String hex) {
- MinecraftClient client = source.getClient();
- ItemStack heldItem = client.player.getMainHandStack();
+ ItemStack heldItem = source.getPlayer().getMainHandStack();
NbtCompound nbt = (heldItem != null) ? heldItem.getNbt() : null;
-
+
if (hex != null && !isHexadecimalColor(hex)) {
source.sendError(Text.translatable("skyblocker.customDyeColors.invalidHex"));
return Command.SINGLE_SUCCESS;
}
-
- if (Utils.isOnSkyblock() && heldItem != null && heldItem.getItem() instanceof DyeableArmorItem) {
- if (nbt != null && nbt.contains("ExtraAttributes")) {
- NbtCompound extraAttributes = nbt.getCompound("ExtraAttributes");
- String itemUuid = extraAttributes.contains("uuid") ? extraAttributes.getString("uuid") : null;
-
- if (itemUuid != null) {
- Object2IntOpenHashMap<String> customDyeColors = SkyblockerConfig.get().general.customDyeColors;
-
- if (hex == null) {
- if (customDyeColors.containsKey(itemUuid)) {
- customDyeColors.removeInt(itemUuid);
- SkyblockerConfig.save();
- source.sendFeedback(Text.translatable("skyblocker.customDyeColors.removed"));
+
+ if (Utils.isOnSkyblock() && heldItem != null) {
+ if (heldItem.getItem() instanceof DyeableArmorItem) {
+ if (nbt != null && nbt.contains("ExtraAttributes")) {
+ NbtCompound extraAttributes = nbt.getCompound("ExtraAttributes");
+ String itemUuid = extraAttributes.contains("uuid") ? extraAttributes.getString("uuid") : null;
+
+ if (itemUuid != null) {
+ Object2IntOpenHashMap<String> customDyeColors = SkyblockerConfig.get().general.customDyeColors;
+
+ if (hex == null) {
+ if (customDyeColors.containsKey(itemUuid)) {
+ customDyeColors.removeInt(itemUuid);
+ SkyblockerConfig.save();
+ source.sendFeedback(Text.translatable("skyblocker.customDyeColors.removed"));
+ } else {
+ source.sendFeedback(Text.translatable("skyblocker.customDyeColors.neverHad"));
+ }
} else {
- source.sendFeedback(Text.translatable("skyblocker.customDyeColors.neverHad"));
+ customDyeColors.put(itemUuid, Integer.decode("0x" + hex.replace("#", "")).intValue());
+ SkyblockerConfig.save();
+ source.sendFeedback(Text.translatable("skyblocker.customDyeColors.added"));
}
} else {
- customDyeColors.put(itemUuid, Integer.decode("0x" + hex.replace("#", "")).intValue());
- SkyblockerConfig.save();
- source.sendFeedback(Text.translatable("skyblocker.customDyeColors.added"));
+ source.sendError(Text.translatable("skyblocker.customDyeColors.noItemUuid"));
}
- } else {
- source.sendError(Text.translatable("skyblocker.customDyeColors.noItemUuid"));
}
- }
- } else {
- if (!(heldItem.getItem() instanceof DyeableArmorItem)) {
+ } else {
source.sendError(Text.translatable("skyblocker.customDyeColors.notDyeable"));
return Command.SINGLE_SUCCESS;
- } else {
- source.sendError(Text.translatable("skyblocker.customDyeColors.unableToSetColor"));
}
+ } else {
+ source.sendError(Text.translatable("skyblocker.customDyeColors.unableToSetColor"));
}
-
+
return Command.SINGLE_SUCCESS;
}
-
+
private static boolean isHexadecimalColor(String s) {
- s = s.replace("#", "");
-
- return s.chars()
- .allMatch(c -> "0123456789ABCDEFabcdef".indexOf(c) >= 0) && s.length() == 6;
+ return s.replace("#", "").chars().allMatch(c -> "0123456789ABCDEFabcdef".indexOf(c) >= 0) && s.replace("#", "").length() == 6;
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomItemNames.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomItemNames.java
index 4ecff508..5d410947 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomItemNames.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomItemNames.java
@@ -2,14 +2,12 @@ package me.xmrvizzy.skyblocker.skyblock.item;
import com.mojang.brigadier.Command;
import com.mojang.brigadier.CommandDispatcher;
-
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.utils.Utils;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
-import net.minecraft.client.MinecraftClient;
import net.minecraft.command.CommandRegistryAccess;
import net.minecraft.command.argument.TextArgumentType;
import net.minecraft.item.ItemStack;
@@ -17,11 +15,10 @@ import net.minecraft.nbt.NbtCompound;
import net.minecraft.text.Text;
public class CustomItemNames {
-
public static void init() {
ClientCommandRegistrationCallback.EVENT.register(CustomItemNames::registerCommands);
}
-
+
private static void registerCommands(CommandDispatcher<FabricClientCommandSource> dispatcher, CommandRegistryAccess registryAccess) {
dispatcher.register(ClientCommandManager.literal("skyblocker")
.then(ClientCommandManager.literal("renameItem")
@@ -29,19 +26,19 @@ public class CustomItemNames {
.then(ClientCommandManager.argument("textComponent", TextArgumentType.text())
.executes(context -> renameItem(context.getSource(), context.getArgument("textComponent", Text.class))))));
}
-
+
+ @SuppressWarnings("SameReturnValue")
private static int renameItem(FabricClientCommandSource source, Text text) {
- MinecraftClient client = source.getClient();
- ItemStack heldItem = client.player.getMainHandStack();
+ ItemStack heldItem = source.getPlayer().getMainHandStack();
NbtCompound nbt = (heldItem != null) ? heldItem.getNbt() : null;
-
+
if (Utils.isOnSkyblock() && nbt != null && nbt.contains("ExtraAttributes")) {
NbtCompound extraAttributes = nbt.getCompound("ExtraAttributes");
- String itemUuid = extraAttributes.contains("uuid") ? extraAttributes.getString("uuid") : null;
-
+ String itemUuid = extraAttributes.contains("uuid") ? extraAttributes.getString("uuid") : null;
+
if (itemUuid != null) {
Object2ObjectOpenHashMap<String, Text> customItemNames = SkyblockerConfig.get().general.customItemNames;
-
+
if (text == null) {
if (customItemNames.containsKey(itemUuid)) {
//Remove custom item name when the text argument isn't passed
@@ -63,7 +60,7 @@ public class CustomItemNames {
} else {
source.sendError(Text.translatable("skyblocker.customItemNames.unableToSetName"));
}
-
+
return Command.SINGLE_SUCCESS;
}
}