HTTPS
https://git.nageyqma.icu/nageyqma/odin_next.git
SSH
git@git.nageyqma.icu:nageyqma/odin_next.git
HTTPS 链接可直接 git clone;推送代码请使用 SSH。
123456789101112131415161718192021222324252627282930313233343536373839
package com.odtheking.mixin.mixins;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.odtheking.odin.features.impl.skyblock.OverlayType;
import com.odtheking.odin.features.impl.skyblock.PlayerDisplay;
import net.minecraft.client.gui.GuiGraphicsExtractor;
import net.minecraft.client.gui.Hud;
import net.minecraft.world.entity.player.Player;
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;
@Mixin(Hud.class)
public class HUDMixin {
@Inject(method = "extractArmor", at = @At("HEAD"), cancellable = true)
private static void cancelArmorBar(GuiGraphicsExtractor graphics, Player player, int yLineBase, int numHealthRows, int healthRowHeight, int xLeft, CallbackInfo ci) {
if (PlayerDisplay.shouldCancelOverlay(OverlayType.ARMOR)) ci.cancel();
}
@Inject(method = "extractHearts", at = @At("HEAD"), cancellable = true)
private void cancelHealthBar(GuiGraphicsExtractor graphics, Player player, int xLeft, int yLineBase, int healthRowHeight, int heartOffsetIndex, float maxHealth, int currentHealth, int oldHealth, int absorption, boolean blink, CallbackInfo ci) {
if (PlayerDisplay.shouldCancelOverlay(OverlayType.HEARTS)) ci.cancel();
}
@Inject(method = "extractFood", at = @At("HEAD"), cancellable = true)
private void cancelFoodBar(GuiGraphicsExtractor graphics, Player player, int yLineBase, int xRight, CallbackInfo ci) {
if (PlayerDisplay.shouldCancelOverlay(OverlayType.FOOD)) ci.cancel();
}
@ModifyExpressionValue(method = "extractHotbarAndDecorations", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/MultiPlayerGameMode;hasExperience()Z"))
private boolean cancelXPLevelRender(boolean original) {
if (PlayerDisplay.shouldCancelOverlay(OverlayType.XP)) return false;
return original;
}
}