aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/mixin
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java7
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/DrawContextMixin.java44
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java20
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java8
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java6
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java17
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java3
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudMixin.java26
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/HandledScreenAccessor.java (renamed from src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenAccessor.java)2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/PlayerListHudAccessor.java (renamed from src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudAccessor.java)11
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/RecipeBookWidgetAccessor.java (renamed from src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java)2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/WorldRendererAccessor.java (renamed from src/main/java/me/xmrvizzy/skyblocker/mixin/AccessorWorldRenderer.java)4
12 files changed, 64 insertions, 86 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java
index e48e725e..ea35ebbe 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java
@@ -4,7 +4,6 @@ import com.mojang.authlib.GameProfile;
import me.xmrvizzy.skyblocker.skyblock.HotbarSlotLock;
import me.xmrvizzy.skyblocker.skyblock.rift.HealingMelonIndicator;
import me.xmrvizzy.skyblocker.utils.Utils;
-import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.AbstractClientPlayerEntity;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.world.ClientWorld;
@@ -25,8 +24,8 @@ public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity
if (Utils.isOnSkyblock()) HotbarSlotLock.handleDropSelectedItem(this.getInventory().selectedSlot, cir);
}
- @Inject(method = "updateHealth", at = @At("HEAD"))
- public void skyblocker$updateHealth(float health, CallbackInfo info) {
- HealingMelonIndicator.updateHealth(MinecraftClient.getInstance());
+ @Inject(method = "updateHealth", at = @At("RETURN"))
+ public void skyblocker$updateHealth(CallbackInfo info) {
+ HealingMelonIndicator.updateHealth();
}
} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/DrawContextMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/DrawContextMixin.java
index a8a490b8..e12f645a 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/DrawContextMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/DrawContextMixin.java
@@ -1,18 +1,6 @@
package me.xmrvizzy.skyblocker.mixin;
-import java.awt.Color;
-import java.util.regex.Pattern;
-
-import org.jetbrains.annotations.Nullable;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Final;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
import com.mojang.blaze3d.systems.RenderSystem;
-
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.utils.ItemUtils;
import me.xmrvizzy.skyblocker.utils.Utils;
@@ -23,18 +11,28 @@ import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.util.math.ColorHelper;
+import org.jetbrains.annotations.Nullable;
+import org.spongepowered.asm.mixin.Final;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+import java.awt.*;
+import java.util.regex.Pattern;
@Mixin(DrawContext.class)
public abstract class DrawContextMixin {
- @Shadow @Final private MatrixStack matrices;
-
- @Shadow
- public void fill(RenderLayer layer, int x1, int x2, int y1, int y2, int color) {
- }
-
+ @Shadow
+ @Final
+ private MatrixStack matrices;
+
+ @Shadow
+ public abstract void fill(RenderLayer layer, int x1, int x2, int y1, int y2, int color);
+
@Inject(method = "drawItemInSlot(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V", at = @At("HEAD"))
public void skyblocker$renderItemBar(TextRenderer textRenderer, ItemStack stack, int x, int y, @Nullable String countOverride, CallbackInfo ci) {
-
if (Utils.isOnSkyblock() && SkyblockerConfig.get().locations.dwarvenMines.enableDrillFuel) {
if (!stack.isEmpty()) {
NbtCompound tag = stack.getNbt();
@@ -42,7 +40,7 @@ public abstract class DrawContextMixin {
if (tag.getCompound("ExtraAttributes").contains("drill_fuel")) {
float current = 3000.0F;
float max = 3000.0F;
-
+
for (String line : ItemUtils.getTooltipStrings(stack)) {
if (line.contains("Fuel: ")) {
String clear = Pattern.compile("[^0-9 /]").matcher(line).replaceAll("").trim();
@@ -52,17 +50,17 @@ public abstract class DrawContextMixin {
break;
}
}
-
+
matrices.push();
matrices.translate(0f, 0f, 200f);
RenderSystem.disableDepthTest();
-
+
float hue = Math.max(0.0F, 1.0F - (max - current) / max);
int width = Math.round(current / max * 13.0F);
Color color = Color.getHSBColor(hue / 3.0F, 1.0F, 1.0F);
this.fill(RenderLayer.getGuiOverlay(), x + 2, y + 13, x + 15, y + 15, 0xFF000000);
this.fill(RenderLayer.getGuiOverlay(), x + 2, y + 13, x + 2 + width, y + 14, ColorHelper.Argb.getArgb(color.getAlpha(), color.getRed(), color.getGreen(), color.getBlue()));
-
+
matrices.pop();
RenderSystem.enableDepthTest();
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java
index 761f8a68..d36773b2 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java
@@ -1,34 +1,38 @@
package me.xmrvizzy.skyblocker.mixin;
+import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.utils.Utils;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.FarmlandBlock;
-import net.minecraft.block.ShapeContext;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.shape.VoxelShape;
+import net.minecraft.util.shape.VoxelShapes;
import net.minecraft.world.BlockView;
+import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(FarmlandBlock.class)
public abstract class FarmlandBlockMixin extends Block {
+ @Shadow
+ @Final
+ protected static VoxelShape SHAPE;
+
protected FarmlandBlockMixin(Settings settings) {
super(settings);
}
- @Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true)
- public void skyblocker$onGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) {
- if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.hitbox.oldFarmlandHitbox)
- cir.setReturnValue(Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 16.0, 16.0));
+ @ModifyReturnValue(method = "getOutlineShape", at = @At("RETURN"))
+ private VoxelShape skyblocker$replaceOutlineShape(VoxelShape original) {
+ return SkyblockerConfig.get().general.hitbox.oldFarmlandHitbox && Utils.isOnSkyblock() ? VoxelShapes.fullCube() : original;
}
@SuppressWarnings("deprecation")
@Override
public VoxelShape getCullingShape(BlockState state, BlockView world, BlockPos pos) {
- return Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 15.0, 16.0);
+ return SHAPE;
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java
index 13272323..8a57f752 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java
@@ -34,14 +34,14 @@ import java.util.Map;
@Mixin(HandledScreen.class)
public abstract class HandledScreenMixin extends Screen {
- protected HandledScreenMixin(Text title) {
- super(title);
- }
-
@Shadow
@Nullable
protected Slot focusedSlot;
+ protected HandledScreenMixin(Text title) {
+ super(title);
+ }
+
@Inject(at = @At("HEAD"), method = "keyPressed")
public void skyblocker$keyPressed(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable<Boolean> cir) {
if (this.client != null && this.focusedSlot != null && keyCode != 256 && !this.client.options.inventoryKey.matchesKey(keyCode, scanCode) && WikiLookup.wikiLookup.matchesKey(keyCode, scanCode)) {
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java
index 3e2db3e0..e1a14e4c 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java
@@ -27,7 +27,6 @@ public abstract class InGameHudMixin {
@Unique
private static final Identifier SLOT_LOCK = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/slot_lock.png");
@Unique
-
private final StatusBarTracker statusBarTracker = SkyblockerMod.getInstance().statusBarTracker;
@Unique
private final FancyStatusBars statusBars = new FancyStatusBars();
@@ -38,8 +37,7 @@ public abstract class InGameHudMixin {
private int scaledWidth;
@Shadow
- public void setOverlayMessage(Text message, boolean tinted) {
- }
+ public abstract void setOverlayMessage(Text message, boolean tinted);
@Inject(method = "setOverlayMessage(Lnet/minecraft/text/Text;Z)V", at = @At("HEAD"), cancellable = true)
private void skyblocker$onSetOverlayMessage(Text message, boolean tinted, CallbackInfo ci) {
@@ -76,8 +74,6 @@ public abstract class InGameHudMixin {
if (Utils.isInDungeons() && SkyblockerConfig.get().locations.dungeons.enableMap)
DungeonMap.render(context.getMatrices());
-
- //RenderSystem.setShaderTexture(0, ICONS);
}
@Inject(method = "renderMountHealth", at = @At("HEAD"), cancellable = true)
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java
index 64a1a4fe..729124fd 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java
@@ -1,5 +1,6 @@
package me.xmrvizzy.skyblocker.mixin;
+import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemListWidget;
import me.xmrvizzy.skyblocker.utils.Utils;
@@ -7,21 +8,11 @@ import net.minecraft.client.gui.screen.ingame.InventoryScreen;
import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(InventoryScreen.class)
public abstract class InventoryScreenMixin {
- @Redirect(
- method = "<init>",
- at = @At(
- value = "NEW",
- target = "net/minecraft/client/gui/screen/recipebook/RecipeBookWidget"
- )
- )
- RecipeBookWidget skyblocker$constructor() {
- if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.itemList.enableItemList)
- return new ItemListWidget();
- else
- return new RecipeBookWidget();
+ @ModifyExpressionValue(method = "<init>", at = @At(value = "NEW", target = "net/minecraft/client/gui/screen/recipebook/RecipeBookWidget"))
+ private RecipeBookWidget skyblocker$replaceRecipeBook(RecipeBookWidget original) {
+ return SkyblockerConfig.get().general.itemList.enableItemList && Utils.isOnSkyblock() ? new ItemListWidget() : original;
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java
index 505de202..96a53878 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java
@@ -24,8 +24,7 @@ public abstract class LeverBlockMixin extends WallMountedBlock {
public void skyblocker$onGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) {
if (Utils.isOnSkyblock()) {
VoxelShape shape = OldLever.getShape(state.get(FACE), state.get(FACING));
- if (shape != null)
- cir.setReturnValue(shape);
+ if (shape != null) cir.setReturnValue(shape);
}
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudMixin.java
index ef65190f..0d900167 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudMixin.java
@@ -1,11 +1,5 @@
package me.xmrvizzy.skyblocker.mixin;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.skyblock.tabhud.TabHud;
import me.xmrvizzy.skyblocker.skyblock.tabhud.screens.Screen;
@@ -19,38 +13,36 @@ import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.scoreboard.Scoreboard;
import net.minecraft.scoreboard.ScoreboardObjective;
import net.minecraft.text.Text;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Environment(EnvType.CLIENT)
@Mixin(PlayerListHud.class)
public class PlayerListHudMixin {
-
@Shadow
private Text footer;
@Inject(at = @At("HEAD"), method = "render(Lnet/minecraft/client/gui/DrawContext;ILnet/minecraft/scoreboard/Scoreboard;Lnet/minecraft/scoreboard/ScoreboardObjective;)V", cancellable = true)
- public void skyblocker$renderTabHud(DrawContext context, int scaledW, Scoreboard sb, ScoreboardObjective sbo,
- CallbackInfo info) {
-
- if (!Utils.isOnSkyblock()
- || !SkyblockerConfig.get().general.tabHud.tabHudEnabled
- || TabHud.defaultTgl.isPressed()) {
+ public void skyblocker$renderTabHud(DrawContext context, int w, Scoreboard sb, ScoreboardObjective sbo, CallbackInfo info) {
+ if (!Utils.isOnSkyblock() || !SkyblockerConfig.get().general.tabHud.tabHudEnabled || TabHud.defaultTgl.isPressed()) {
return;
}
- MinecraftClient client = MinecraftClient.getInstance();
- ClientPlayNetworkHandler nwH = client.getNetworkHandler();
+ ClientPlayNetworkHandler nwH = MinecraftClient.getInstance().getNetworkHandler();
if (nwH == null) {
return;
}
- int w = scaledW;
int h = MinecraftClient.getInstance().getWindow().getScaledHeight();
try {
Screen screen = Screen.getCorrect(w, h, footer);
screen.render(context);
info.cancel();
} catch (Exception e) {
- TabHud.LOGGER.error("Drawing default hud. Reason: Screen exception {}", e);
+ TabHud.LOGGER.error("[Skyblocker] Encountered unknown exception while drawing default hud", e);
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenAccessor.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/HandledScreenAccessor.java
index ea497b75..ad35dae6 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenAccessor.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/HandledScreenAccessor.java
@@ -1,4 +1,4 @@
-package me.xmrvizzy.skyblocker.mixin;
+package me.xmrvizzy.skyblocker.mixin.accessor;
import net.minecraft.client.gui.screen.ingame.HandledScreen;
import org.spongepowered.asm.mixin.Mixin;
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudAccessor.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/PlayerListHudAccessor.java
index db329775..7e335d73 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudAccessor.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/PlayerListHudAccessor.java
@@ -1,18 +1,17 @@
-package me.xmrvizzy.skyblocker.mixin;
-
-import java.util.Comparator;
+package me.xmrvizzy.skyblocker.mixin.accessor;
+import net.minecraft.client.gui.hud.PlayerListHud;
+import net.minecraft.client.network.PlayerListEntry;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
-import net.minecraft.client.gui.hud.PlayerListHud;
-import net.minecraft.client.network.PlayerListEntry;
+import java.util.Comparator;
@Mixin(PlayerListHud.class)
public interface PlayerListHudAccessor {
@Accessor("ENTRY_ORDERING")
- public static Comparator<PlayerListEntry> getOrdering() {
+ static Comparator<PlayerListEntry> getOrdering() {
throw new AssertionError();
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/RecipeBookWidgetAccessor.java
index 808b2950..0f20d4e4 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/RecipeBookWidgetAccessor.java
@@ -1,4 +1,4 @@
-package me.xmrvizzy.skyblocker.mixin;
+package me.xmrvizzy.skyblocker.mixin.accessor;
import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget;
import net.minecraft.client.gui.widget.TextFieldWidget;
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/AccessorWorldRenderer.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/WorldRendererAccessor.java
index e9067851..831a3385 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/AccessorWorldRenderer.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/WorldRendererAccessor.java
@@ -1,4 +1,4 @@
-package me.xmrvizzy.skyblocker.mixin;
+package me.xmrvizzy.skyblocker.mixin.accessor;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@@ -7,7 +7,7 @@ import net.minecraft.client.render.Frustum;
import net.minecraft.client.render.WorldRenderer;
@Mixin(WorldRenderer.class)
-public interface AccessorWorldRenderer {
+public interface WorldRendererAccessor {
@Accessor
Frustum getFrustum();
} \ No newline at end of file