Skip to content

Commit fcf969f

Browse files
authored
Alternate Skyblock ID tooltip design (SkyblockerMod#1066)
* Alternate Skyblock ID tooltip design * Tweak injection point
1 parent bd63e40 commit fcf969f

File tree

3 files changed

+22
-34
lines changed

3 files changed

+22
-34
lines changed

src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java

+22
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package de.hysky.skyblocker.mixins;
22

33
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
4+
import com.llamalad7.mixinextras.sugar.Local;
5+
46
import de.hysky.skyblocker.config.SkyblockerConfigManager;
57
import de.hysky.skyblocker.injected.SkyblockerStack;
68
import de.hysky.skyblocker.skyblock.item.PetInfo;
@@ -14,14 +16,20 @@
1416
import net.minecraft.item.ItemStack;
1517
import net.minecraft.item.tooltip.TooltipAppender;
1618
import net.minecraft.text.Text;
19+
import net.minecraft.util.Formatting;
20+
21+
import java.util.List;
22+
1723
import org.jetbrains.annotations.NotNull;
1824
import org.spongepowered.asm.mixin.Mixin;
1925
import org.spongepowered.asm.mixin.Shadow;
2026
import org.spongepowered.asm.mixin.Unique;
2127
import org.spongepowered.asm.mixin.injection.At;
2228
import org.spongepowered.asm.mixin.injection.Inject;
2329
import org.spongepowered.asm.mixin.injection.ModifyVariable;
30+
import org.spongepowered.asm.mixin.injection.Slice;
2431
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
32+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
2533

2634
@Mixin(ItemStack.class)
2735
public abstract class ItemStackMixin implements ComponentHolder, SkyblockerStack {
@@ -63,6 +71,20 @@ public abstract class ItemStackMixin implements ComponentHolder, SkyblockerStack
6371
return Utils.isOnSkyblock() && original instanceof ItemEnchantmentsComponent component ? component.withShowInTooltip(false) : original;
6472
}
6573

74+
@Inject(method = "getTooltip",
75+
slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/registry/DefaultedRegistry;getId(Ljava/lang/Object;)Lnet/minecraft/util/Identifier;")),
76+
at = @At(value = "INVOKE", target = "Ljava/util/List;add(Ljava/lang/Object;)Z", shift = At.Shift.AFTER, ordinal = 0)
77+
)
78+
private void skyblocker$skyblockIdTooltip(CallbackInfoReturnable<List<Text>> cir, @Local List<Text> lines) {
79+
if (Utils.isOnSkyblock()) {
80+
String skyblockId = getSkyblockId();
81+
82+
if (!skyblockId.isEmpty()) {
83+
lines.add(Text.literal("skyblock:" + skyblockId).formatted(Formatting.DARK_GRAY));
84+
}
85+
}
86+
}
87+
6688
/**
6789
* Updates the durability of this item stack every tick when in the inventory.
6890
*/

src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ public class TooltipManager {
2929
new SupercraftReminder(),
3030
ChocolateFactorySolver.INSTANCE,
3131
new ReorderHelper(),
32-
new SkyblockIdTooltip(-1), //Would be great if it was under the minecraft id but there is limitations here...
3332
new StackingEnchantProgressTooltip(0), //Would be best to have after the lore but the tech doesn't exist for that
3433
new NpcPriceTooltip(1),
3534
new BazaarPriceTooltip(2),

src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SkyblockIdTooltip.java

-33
This file was deleted.

0 commit comments

Comments
 (0)