diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-09-11 02:24:37 -0400 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-09-11 02:25:19 -0400 |
commit | 42c7732864cd28873dceaab27a7a65a71ed109f0 (patch) | |
tree | 6012959fa1c2e9ee14d972a89cbddba1232b0925 /src/main/java/me/xmrvizzy/skyblocker/mixin | |
parent | cddd32a81916bffa67a3de0e5754c8068fc2d56e (diff) | |
download | Skyblocker-42c7732864cd28873dceaab27a7a65a71ed109f0.tar.gz Skyblocker-42c7732864cd28873dceaab27a7a65a71ed109f0.tar.bz2 Skyblocker-42c7732864cd28873dceaab27a7a65a71ed109f0.zip |
Dungeon Chest Profit Calculator!
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java index af6f6aa7..916fab03 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java @@ -3,6 +3,7 @@ package me.xmrvizzy.skyblocker.mixin; import me.xmrvizzy.skyblocker.SkyblockerMod; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.skyblock.BackpackPreview; +import me.xmrvizzy.skyblocker.skyblock.dungeon.DungeonChestProfit; import me.xmrvizzy.skyblocker.skyblock.experiment.ChronomatronSolver; import me.xmrvizzy.skyblocker.skyblock.experiment.ExperimentSolver; import me.xmrvizzy.skyblocker.skyblock.experiment.SuperpairsSolver; @@ -16,10 +17,13 @@ import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.inventory.SimpleInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.screen.GenericContainerScreenHandler; +import net.minecraft.screen.ScreenHandlerType; import net.minecraft.screen.slot.Slot; import net.minecraft.screen.slot.SlotActionType; import net.minecraft.text.Text; import org.jetbrains.annotations.Nullable; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -30,6 +34,9 @@ import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; + import java.util.Map; @Mixin(HandledScreen.class) @@ -103,4 +110,17 @@ public abstract class HandledScreenMixin extends Screen { } } } + + @WrapOperation(method = "drawForeground", at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/screen/ingame/HandledScreen;title:Lnet/minecraft/text/Text;", opcode = Opcodes.GETFIELD)) + private Text skyblocker$modifyScreenTitle(HandledScreen<?> handledScreen, Operation<Text> operation) { + Text title = handledScreen.getTitle(); + + if (Utils.isOnSkyblock() && handledScreen.getScreenHandler().getType().equals(ScreenHandlerType.GENERIC_9X6)) { + GenericContainerScreenHandler gcsHandler = (GenericContainerScreenHandler) handledScreen.getScreenHandler(); + + return DungeonChestProfit.getChestProfit(gcsHandler, title, this.client); + } + + return title; + } } |