aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-12-06 18:49:06 -0500
committerGitHub <noreply@github.com>2024-12-06 18:49:06 -0500
commitfcf969fdae647ac117ab4d6f516c9c76bd12d69d (patch)
tree55154c52c8fc649a7a05334ee1840045d28678f3 /src/main/java/de
parentbd63e40ffa10e49354409f4f37d73b8fca667f08 (diff)
downloadSkyblocker-fcf969fdae647ac117ab4d6f516c9c76bd12d69d.tar.gz
Skyblocker-fcf969fdae647ac117ab4d6f516c9c76bd12d69d.tar.bz2
Skyblocker-fcf969fdae647ac117ab4d6f516c9c76bd12d69d.zip
Alternate Skyblock ID tooltip design (#1066)
* Alternate Skyblock ID tooltip design * Tweak injection point
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java22
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java1
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SkyblockIdTooltip.java33
3 files changed, 22 insertions, 34 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java
index 3eb924b6..2e3ac4de 100644
--- a/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java
@@ -1,6 +1,8 @@
package de.hysky.skyblocker.mixins;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
+import com.llamalad7.mixinextras.sugar.Local;
+
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.injected.SkyblockerStack;
import de.hysky.skyblocker.skyblock.item.PetInfo;
@@ -14,6 +16,10 @@ import net.minecraft.component.type.ItemEnchantmentsComponent;
import net.minecraft.item.ItemStack;
import net.minecraft.item.tooltip.TooltipAppender;
import net.minecraft.text.Text;
+import net.minecraft.util.Formatting;
+
+import java.util.List;
+
import org.jetbrains.annotations.NotNull;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
@@ -21,7 +27,9 @@ 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.ModifyVariable;
+import org.spongepowered.asm.mixin.injection.Slice;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(ItemStack.class)
public abstract class ItemStackMixin implements ComponentHolder, SkyblockerStack {
@@ -63,6 +71,20 @@ public abstract class ItemStackMixin implements ComponentHolder, SkyblockerStack
return Utils.isOnSkyblock() && original instanceof ItemEnchantmentsComponent component ? component.withShowInTooltip(false) : original;
}
+ @Inject(method = "getTooltip",
+ slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/registry/DefaultedRegistry;getId(Ljava/lang/Object;)Lnet/minecraft/util/Identifier;")),
+ at = @At(value = "INVOKE", target = "Ljava/util/List;add(Ljava/lang/Object;)Z", shift = At.Shift.AFTER, ordinal = 0)
+ )
+ private void skyblocker$skyblockIdTooltip(CallbackInfoReturnable<List<Text>> cir, @Local List<Text> lines) {
+ if (Utils.isOnSkyblock()) {
+ String skyblockId = getSkyblockId();
+
+ if (!skyblockId.isEmpty()) {
+ lines.add(Text.literal("skyblock:" + skyblockId).formatted(Formatting.DARK_GRAY));
+ }
+ }
+ }
+
/**
* Updates the durability of this item stack every tick when in the inventory.
*/
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java
index c1a994e6..684588ea 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java
@@ -29,7 +29,6 @@ public class TooltipManager {
new SupercraftReminder(),
ChocolateFactorySolver.INSTANCE,
new ReorderHelper(),
- new SkyblockIdTooltip(-1), //Would be great if it was under the minecraft id but there is limitations here...
new StackingEnchantProgressTooltip(0), //Would be best to have after the lore but the tech doesn't exist for that
new NpcPriceTooltip(1),
new BazaarPriceTooltip(2),
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SkyblockIdTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SkyblockIdTooltip.java
deleted file mode 100644
index cc4e1b77..00000000
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SkyblockIdTooltip.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package de.hysky.skyblocker.skyblock.item.tooltip.adders;
-
-import java.util.List;
-
-import org.jetbrains.annotations.Nullable;
-
-import de.hysky.skyblocker.skyblock.item.tooltip.SimpleTooltipAdder;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.item.ItemStack;
-import net.minecraft.screen.slot.Slot;
-import net.minecraft.text.Text;
-import net.minecraft.util.Formatting;
-
-public class SkyblockIdTooltip extends SimpleTooltipAdder {
-
- public SkyblockIdTooltip(int priority) {
- super(priority);
- }
-
- @Override
- public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
- String skyblockId = stack.getSkyblockId();
-
- if (!skyblockId.isEmpty()) {
- lines.add(Text.literal("Skyblock ID: " + skyblockId).formatted(Formatting.DARK_GRAY));
- }
- }
-
- @Override
- public boolean isEnabled() {
- return MinecraftClient.getInstance().options.advancedItemTooltips;
- }
-}