aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/mixin
diff options
context:
space:
mode:
authorAlexey Krainev <xmrvizzy@ya.ru>2021-01-30 06:27:29 +0500
committerAlexey Krainev <xmrvizzy@ya.ru>2021-01-30 06:27:29 +0500
commitc26890daab1b6ccf5ac9b6c5c52f4127fc1fc891 (patch)
tree2450cc98f551b92440ae91593b36f951908c2744 /src/main/java/me/xmrvizzy/skyblocker/mixin
parentb851d1148c19e6daf51ed5228491777f26040442 (diff)
downloadSkyblocker-c26890daab1b6ccf5ac9b6c5c52f4127fc1fc891.tar.gz
Skyblocker-c26890daab1b6ccf5ac9b6c5c52f4127fc1fc891.tar.bz2
Skyblocker-c26890daab1b6ccf5ac9b6c5c52f4127fc1fc891.zip
v1.0.4
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java21
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/ChatScreenMixin.java29
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java33
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java34
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java141
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java60
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java12
7 files changed, 229 insertions, 101 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java
index 28058b0b..159fbcee 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java
@@ -27,22 +27,31 @@ public class ChatHudListenerMixin {
}
if (Utils.isSkyblock) {
- if (SkyblockerConfig.get().locations.dwarvenMines.solvePuzzler && msg.contains("[NPC]") && msg.contains("Puzzler"))
+ if (SkyblockerConfig.get().locations.dwarvenMines.solvePuzzler &&
+ msg.contains("[NPC]") && msg.contains("Puzzler"))
Puzzler.puzzler(msg);
- if (SkyblockerConfig.get().messages.hideAbility && msg.contains("This ability is currently on cooldown for ") || msg.contains("No more charges, next one in "))
+ if (SkyblockerConfig.get().messages.hideAbility &&
+ msg.contains("This ability is currently on cooldown for ") ||
+ msg.contains("No more charges, next one in ") ||
+ msg.contains("This ability is on cooldown for "))
ci.cancel();
- if (SkyblockerConfig.get().messages.hideHeal && msg.contains("You healed ") && msg.contains(" health!") || msg.contains(" healed you for "))
+ if (SkyblockerConfig.get().messages.hideHeal &&
+ msg.contains("You healed ") &&
+ msg.contains(" health!") || msg.contains(" healed you for "))
ci.cancel();
- if (SkyblockerConfig.get().messages.hideAOTE && msg.contains("There are blocks in the way!"))
+ if (SkyblockerConfig.get().messages.hideAOTE &&
+ msg.contains("There are blocks in the way!"))
ci.cancel();
- if (SkyblockerConfig.get().messages.hideImplosion && msg.contains("Your Implosion hit "))
+ if (SkyblockerConfig.get().messages.hideImplosion &&
+ msg.contains("Your Implosion hit "))
ci.cancel();
- if (SkyblockerConfig.get().messages.hideMoltenWave && msg.contains("Your Molten Wave hit "))
+ if (SkyblockerConfig.get().messages.hideMoltenWave &&
+ msg.contains("Your Molten Wave hit "))
ci.cancel();
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatScreenMixin.java
new file mode 100644
index 00000000..e85a64fc
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatScreenMixin.java
@@ -0,0 +1,29 @@
+package me.xmrvizzy.skyblocker.mixin;
+
+import net.minecraft.client.gui.screen.ChatScreen;
+import net.minecraft.client.gui.screen.Screen;
+import net.minecraft.client.gui.widget.TextFieldWidget;
+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.CallbackInfoReturnable;
+
+@Mixin(ChatScreen.class)
+public class ChatScreenMixin extends Screen {
+
+ @Shadow protected TextFieldWidget chatField;
+
+ protected ChatScreenMixin(Text title) {
+ super(title);
+ }
+
+ @Inject(method = "keyPressed", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/MinecraftClient;openScreen(Lnet/minecraft/client/gui/screen/Screen;)V", ordinal = 1), cancellable = true)
+ public void keyPressed(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable<Boolean> cir) {
+ String[] split = this.chatField.getText().trim().toLowerCase().split(" ");
+ if (split.length > 0 && split[0].contentEquals("/skb")) {
+ cir.setReturnValue(true);
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java
new file mode 100644
index 00000000..26012b21
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java
@@ -0,0 +1,33 @@
+package me.xmrvizzy.skyblocker.mixin;
+
+import com.mojang.authlib.GameProfile;
+import com.mojang.brigadier.CommandDispatcher;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.gui.screen.Screen;
+import net.minecraft.client.network.ClientPlayNetworkHandler;
+import net.minecraft.command.CommandSource;
+import net.minecraft.network.ClientConnection;
+import net.minecraft.network.packet.s2c.play.CommandTreeS2CPacket;
+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 static com.mojang.brigadier.builder.LiteralArgumentBuilder.literal;
+
+@Mixin(ClientPlayNetworkHandler.class)
+public class ClientPlayNetworkHandlerMixin {
+
+ @Shadow private CommandDispatcher<CommandSource> commandDispatcher;
+
+ @Inject(method = "<init>", at = @At("RETURN"))
+ private void init(MinecraftClient client, Screen screen, ClientConnection connection, GameProfile profile, CallbackInfo ci) {
+ commandDispatcher.register(literal("skb"));
+ }
+
+ @Inject(method = "onCommandTree", at = @At("RETURN"))
+ private void onCommandTree(CommandTreeS2CPacket packet, CallbackInfo ci) {
+ commandDispatcher.register(literal("skb"));
+ }
+} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java
new file mode 100644
index 00000000..343794b1
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java
@@ -0,0 +1,34 @@
+package me.xmrvizzy.skyblocker.mixin;
+
+import com.mojang.authlib.GameProfile;
+import me.xmrvizzy.skyblocker.skyblock.HotbarSlotLock;
+import me.xmrvizzy.skyblocker.utils.Utils;
+import net.minecraft.client.network.AbstractClientPlayerEntity;
+import net.minecraft.client.network.ClientPlayerEntity;
+import net.minecraft.client.world.ClientWorld;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
+
+@Mixin(ClientPlayerEntity.class)
+public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity {
+
+ public ClientPlayerEntityMixin(ClientWorld world, GameProfile profile) {
+ super(world, profile);
+ }
+
+ @Inject(method = "sendChatMessage", at = @At("HEAD"), cancellable = true)
+ public void sendChatMessage(String message, CallbackInfo ci) {
+ String[] split = message.toLowerCase().split(" ");
+ if (split.length > 0 && split[0].contentEquals("/skb")) {
+ ci.cancel();
+ }
+ }
+
+ @Inject(method = "dropSelectedItem", at = @At("HEAD"), cancellable = true)
+ public void dropSelectedItem(boolean dropEntireStack, CallbackInfoReturnable<Boolean> cir) {
+ if (Utils.isSkyblock) HotbarSlotLock.handleDropSelectedItem(this.inventory.selectedSlot, cir);
+ }
+} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java
index 01c9f0a6..eba58fd0 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java
@@ -1,9 +1,9 @@
package me.xmrvizzy.skyblocker.mixin;
-import com.mojang.blaze3d.systems.RenderSystem;
import me.xmrvizzy.skyblocker.SkyblockerMod;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.skyblock.Attribute;
+import me.xmrvizzy.skyblocker.skyblock.HotbarSlotLock;
import me.xmrvizzy.skyblocker.skyblock.dungeon.DungeonMap;
import me.xmrvizzy.skyblocker.utils.Utils;
import net.fabricmc.api.EnvType;
@@ -13,6 +13,8 @@ import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.gui.hud.InGameHud;
import net.minecraft.client.util.math.MatrixStack;
+import net.minecraft.entity.player.PlayerEntity;
+import net.minecraft.item.ItemStack;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Final;
@@ -23,12 +25,14 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-import java.awt.*;
-
@Environment(EnvType.CLIENT)
@Mixin(InGameHud.class)
public abstract class InGameHudMixin extends DrawableHelper {
- private static final Identifier ICONS = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/icons.png");
+ private static final Identifier SLOT_LOCK = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/slot_lock.png");
+ private static final Identifier BARS = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/bars.png");
+
+ private MatrixStack hotbarMatrices;
+ private int hotbarSlotIndex;
@Shadow
@Final
@@ -48,6 +52,31 @@ public abstract class InGameHudMixin extends DrawableHelper {
return Text.of(msg);
}
+ @Inject(method = "renderHotbar", at = @At("HEAD"))
+ public void renderHotbar(float f, MatrixStack matrices, CallbackInfo ci) {
+ if (Utils.isSkyblock) {
+ hotbarMatrices = matrices;
+ hotbarSlotIndex = 0;
+ }
+ }
+
+ @Inject(method = "renderHotbarItem", at = @At("HEAD"))
+ public void renderHotbarItem(int i, int j, float f, PlayerEntity player, ItemStack item, CallbackInfo ci) {
+ if (Utils.isSkyblock) {
+ if (HotbarSlotLock.isLocked(hotbarSlotIndex)) {
+ this.client.getTextureManager().bindTexture(SLOT_LOCK);
+ this.drawTexture(hotbarMatrices, i, j, 0, 0,16, 16);
+ }
+ hotbarSlotIndex++;
+ }
+ }
+
+ @Inject(method = "renderExperienceBar", at = @At("HEAD"), cancellable = true)
+ private void renderExperienceBar(MatrixStack matrices, int x, CallbackInfo ci) {
+ if (Utils.isSkyblock && SkyblockerConfig.get().general.bars.enableBars)
+ ci.cancel();
+ }
+
@Inject(method = "renderStatusBars", at = @At("HEAD"), cancellable = true)
private void renderStatusBars(MatrixStack matrices, CallbackInfo ci) {
if (Utils.isDungeons && SkyblockerConfig.get().locations.dungeons.enableMap)
@@ -58,7 +87,6 @@ public abstract class InGameHudMixin extends DrawableHelper {
ci.cancel();
renderBars(matrices);
}
-
this.client.getTextureManager().bindTexture(DrawableHelper.GUI_ICONS_TEXTURE);
}
}
@@ -69,70 +97,51 @@ public abstract class InGameHudMixin extends DrawableHelper {
ci.cancel();
}
-
private void renderBars(MatrixStack matrices) {
- this.client.getTextureManager().bindTexture(ICONS);
- this.client.getProfiler().push("skyblockBars");
- {
- int left = this.scaledWidth / 2 - 91;
- int hpWidth = getWidth(Attribute.HEALTH.get(), Attribute.MAX_HEALTH.get());
- int manaWidth = getWidth(Attribute.MANA.get(), Attribute.MAX_MANA.get());
-
- renderBar(matrices, left, hpWidth, SkyblockerConfig.get().general.bars.healthColor);
- renderBar(matrices, left + 71 + 40, manaWidth, SkyblockerConfig.get().general.bars.manaColor);
- }
- this.client.getProfiler().pop();
-
- this.client.getProfiler().push("skyblockTexts");
- {
- int left = this.scaledWidth / 2 - 90;
- String hpText = Attribute.HEALTH.get() + "/" + Attribute.MAX_HEALTH.get();
- String manaText = Attribute.MANA.get() + "/" + Attribute.MAX_MANA.get();
- int hpOffset = (71 - this.getFontRenderer().getWidth(hpText)) / 2;
- int manaOffset = (71 - this.getFontRenderer().getWidth(manaText)) / 2;
-
- renderText(matrices, hpText, left + hpOffset, SkyblockerConfig.get().general.bars.healthColor);
- renderText(matrices, manaText, left + 71 + 40 + manaOffset, SkyblockerConfig.get().general.bars.manaColor);
- }
- this.client.getProfiler().pop();
- }
-
- private void renderBar(MatrixStack matrices, int left, int filled, int color) {
- Color co = new Color(color);
- int top = this.scaledHeight - 36;
-
- RenderSystem.enableBlend();
- RenderSystem.color4f((float) co.getRed() / 255, (float) co.getGreen() / 255, (float) co.getBlue() / 255, 1.0F);
- this.drawTexture(matrices, left, top, 0, 0, 71, 5);
-
- if (filled > 0) {
- this.drawTexture(matrices, left, top, 0, 5, filled, 5);
- }
-
- RenderSystem.disableBlend();
- RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+ int left = this.scaledWidth / 2 - 91;
+ int top = this.scaledHeight - 35;
+
+ int health = (int) ((float)Attribute.HEALTH.get()/(float)Attribute.MAX_HEALTH.get() * 33.0F);
+ if (health > 33) health = 33;
+ int mana = (int) ((float)Attribute.MANA.get()/(float)Attribute.MAX_MANA.get() * 33.0F);
+ if (mana > 33) mana = 33;
+ int xp = (int) (this.client.player.experienceProgress * 33.0F);
+
+ // Icons
+ this.client.getTextureManager().bindTexture(BARS);
+ this.drawTexture(matrices, left, top, 0, 0, 9, 9);
+ this.drawTexture(matrices, left + 47, top, 9, 0, 7, 9);
+ this.drawTexture(matrices, left + 92, top, 16, 0, 9, 9);
+ this.drawTexture(matrices, left + 139, top, 25, 0, 9, 9);
+
+ // Empty Bars
+ this.drawTexture(matrices, left + 10, top + 1, 0, 9, 33, 7);
+ this.drawTexture(matrices, left + 55, top + 1, 0, 9, 33, 7);
+ this.drawTexture(matrices, left + 102, top + 1, 0, 9, 33, 7);
+ this.drawTexture(matrices, left + 149, top + 1, 0, 9, 33, 7);
+
+ // Progress Bars
+ this.drawTexture(matrices, left + 10, top + 1, 0, 16, health, 7);
+ this.drawTexture(matrices, left + 55, top + 1, 0, 23, mana, 7);
+ this.drawTexture(matrices, left + 102, top + 1, 0, 30, 33, 7);
+ this.drawTexture(matrices, left + 149, top + 1, 0, 37, xp, 7);
+
+ // Progress Texts
+ renderText(matrices, Attribute.HEALTH.get(), left + 11, top, 16733525);
+ renderText(matrices, Attribute.MANA.get(), left + 56, top, 5636095);
+ renderText(matrices, Attribute.DEFENCE.get(), left + 103, top, 12106180);
+ renderText(matrices, this.client.player.experienceLevel, left + 150, top, 8453920);
}
- private void renderText(MatrixStack matrices, String str, int left, int color) {
- int top = this.scaledHeight - 42;
- this.getFontRenderer().draw(matrices, str, (float) (left + 1), (float) top, 0);
- this.getFontRenderer().draw(matrices, str, (float) (left - 1), (float) top, 0);
- this.getFontRenderer().draw(matrices, str, (float) left, (float) (top + 1), 0);
- this.getFontRenderer().draw(matrices, str, (float) left, (float) (top - 1), 0);
- this.getFontRenderer().draw(matrices, str, (float) left, (float) top, color);
- }
+ private void renderText(MatrixStack matrices, int value, int left, int top, int color) {
+ String text = Integer.toString(value);
+ int x = left + (33 - this.getFontRenderer().getWidth(text)) / 2;
+ int y = top - 3;
- private int getWidth(int current, int max) {
- int width = 0;
- if (current != 0) {
- if (current > max) {
- width = 71;
- } else {
- width = current * 71 / max;
- }
- } else {
- width = 0;
- }
- return width;
+ this.getFontRenderer().draw(matrices, text, (float) (x + 1), (float) y, 0);
+ this.getFontRenderer().draw(matrices, text, (float) (x - 1), (float) y, 0);
+ this.getFontRenderer().draw(matrices, text, (float) x, (float) (y + 1), 0);
+ this.getFontRenderer().draw(matrices, text, (float) x, (float) (y - 1), 0);
+ this.getFontRenderer().draw(matrices, text, (float) x, (float) y, color);
}
} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java
index 97e7b08d..41a8fd8a 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java
@@ -2,7 +2,6 @@ package me.xmrvizzy.skyblocker.mixin;
import com.mojang.blaze3d.systems.RenderSystem;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-import me.xmrvizzy.skyblocker.skyblock.Attribute;
import me.xmrvizzy.skyblocker.utils.ItemUtils;
import me.xmrvizzy.skyblocker.utils.Utils;
import net.minecraft.client.font.TextRenderer;
@@ -28,38 +27,41 @@ public abstract class ItemRendererMixin {
@Inject(method = "renderGuiItemOverlay(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V", at = @At("HEAD"))
public void renderItemBar(TextRenderer renderer, ItemStack stack, int x, int y, @Nullable String countLabel, CallbackInfo ci) {
- if (Utils.isSkyblock && SkyblockerConfig.get().locations.dwarvenMines.enableDrillFuel && !stack.isEmpty()) {
- if (!stack.hasTag() && !stack.getTag().contains("ExtraAttributes")) return;
- CompoundTag attributes = stack.getTag().getCompound("ExtraAttributes");
- if (!attributes.contains("drill_fuel")) return;
+ if (Utils.isSkyblock && SkyblockerConfig.get().locations.dwarvenMines.enableDrillFuel) {
+ if (!stack.isEmpty()) {
+ CompoundTag tag = stack.getTag();
+ if (tag != null && tag.contains("ExtraAttributes")) {
+ if (tag.getCompound("ExtraAttributes").contains("drill_fuel")) {
+ float current = 3000.0F;
+ float max = 3000.0F;
- float current = 3000.0F;
- float max = 3000.0F;
+ for (String line : ItemUtils.getLore(stack)) {
+ if (line.contains("Fuel: ")) {
+ String clear = Pattern.compile("[^0-9 /]").matcher(line).replaceAll("").trim();
+ String[] split = clear.split("/");
+ current = Integer.parseInt(split[0]);
+ max = Integer.parseInt(split[1]) * 1000;
+ }
+ }
- for (String line : ItemUtils.getLore(stack)) {
- if (line.contains("Fuel: ")) {
- String clear = Pattern.compile("[^0-9 /]").matcher(line).replaceAll("").trim();
- String[] split = clear.split("/");
- current = Integer.parseInt(split[0]);
- max = Integer.parseInt(split[1]) * 1000;
+ RenderSystem.disableDepthTest();
+ RenderSystem.disableTexture();
+ RenderSystem.disableAlphaTest();
+ RenderSystem.disableBlend();
+ Tessellator tessellator = Tessellator.getInstance();
+ BufferBuilder buffer = tessellator.getBuffer();
+ float hue = Math.max(0.0F, 1.0F - (max - current) / max);
+ int width = Math.round(current / max * 13.0F);
+ int rgb = MathHelper.hsvToRgb(hue / 3.0F, 1.0F, 1.0F);
+ this.renderGuiQuad(buffer, x + 2, y + 13, 13, 2, 0,0,0,255);
+ this.renderGuiQuad(buffer, x + 2, y + 13, width, 1, rgb >> 16 & 255, rgb >> 8 & 255, rgb & 255, 255);
+ RenderSystem.enableBlend();
+ RenderSystem.enableAlphaTest();
+ RenderSystem.enableTexture();
+ RenderSystem.enableDepthTest();
+ }
}
}
-
- RenderSystem.disableDepthTest();
- RenderSystem.disableTexture();
- RenderSystem.disableAlphaTest();
- RenderSystem.disableBlend();
- Tessellator tessellator = Tessellator.getInstance();
- BufferBuilder buffer = tessellator.getBuffer();
- float hue = Math.max(0.0F, 1.0F - (max - current) / max);
- int width = Math.round(current / max * 13.0F);
- int rgb = MathHelper.hsvToRgb(hue / 3.0F, 1.0F, 1.0F);
- this.renderGuiQuad(buffer, x + 2, y + 13, 13, 2, 0,0,0,255);
- this.renderGuiQuad(buffer, x + 2, y + 13, width, 1, rgb >> 16 & 255, rgb >> 8 & 255, rgb & 255, 255);
- RenderSystem.enableBlend();
- RenderSystem.enableAlphaTest();
- RenderSystem.enableTexture();
- RenderSystem.enableDepthTest();
}
}
} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java
index 20443eb3..5ef5b0b4 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java
@@ -1,8 +1,13 @@
package me.xmrvizzy.skyblocker.mixin;
import me.xmrvizzy.skyblocker.SkyblockerMod;
+import me.xmrvizzy.skyblocker.skyblock.HotbarSlotLock;
+import me.xmrvizzy.skyblocker.utils.Utils;
import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.network.ClientPlayerEntity;
+import org.jetbrains.annotations.Nullable;
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;
@@ -10,8 +15,15 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(MinecraftClient.class)
public class MinecraftClientMixin {
+ @Shadow @Nullable public ClientPlayerEntity player;
+
@Inject(method = "tick", at = @At("HEAD"))
public void tick(CallbackInfo ci) {
SkyblockerMod.onTick();
}
+
+ @Inject(method = "handleInputEvents", at = @At("HEAD"))
+ public void handleInputEvents(CallbackInfo ci) {
+ if (Utils.isSkyblock) HotbarSlotLock.handleInputEvents(player);
+ }
} \ No newline at end of file