diff options
| author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-12-06 18:49:06 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-06 18:49:06 -0500 |
| commit | fcf969fdae647ac117ab4d6f516c9c76bd12d69d (patch) | |
| tree | 55154c52c8fc649a7a05334ee1840045d28678f3 /src/main/java/de | |
| parent | bd63e40ffa10e49354409f4f37d73b8fca667f08 (diff) | |
| download | Skyblocker-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')
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; - } -} |
